giveownership fix; handle_join +ov "fix"; revert OSMSG_FLOOD_MODERATE
[srvx.git] / src / chanserv.c
index 36871b4450c3670d449521599f4cc7df46892c3c..a2e6dd12a38de3b11449ea569c58ded4eb162016 100644 (file)
@@ -5301,6 +5301,7 @@ static CHANSERV_FUNC(cmd_giveownership)
             }
             owner = curr_user;
         }
+        curr_user = owner;
     }
     if(!(new_owner_hi = modcmd_get_handle_info(user, argv[1])))
         return 0;
@@ -5795,6 +5796,8 @@ handle_join(struct modeNode *mNode)
     {
         if(modes)
         {
+            if(modes & MODE_CHANOP)
+                modes &= ~MODE_VOICE;
             change.args[0].mode = modes;
             change.args[0].member = mNode;
             mod_chanmode_announce(chanserv, channel, &change);