]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/proto-p10.c
svsnick and 1 param auth
[irc/evilnet/x3.git] / src / proto-p10.c
index 035aed28723dd733df038985c45b72cc0083571b..7e85830fc59b30eccd6bc40efec5bd64e01f622e 100644 (file)
@@ -1633,6 +1633,7 @@ static CMD_FUNC(cmd_burst)
     static char exemptlist[MAXLEN], banlist[MAXLEN];
     unsigned int next = 3, res = 1;
     int ctype = 0, echeck = 0, bcheck = 0;
+    struct chanData *cData;
     struct chanNode *cNode;
     struct userNode *un;
     struct modeNode *mNode;
@@ -1716,6 +1717,15 @@ static CMD_FUNC(cmd_burst)
         irc_burst(cNode);
     }
     cNode = AddChannel(argv[1], in_timestamp, modes, banlist, exemptlist);
+    cData = cNode->channel_info;
+
+    if (!cData) {
+        if (cNode->modes & MODE_REGISTERED) {
+            irc_join(opserv, cNode);
+            irc_mode(opserv, cNode, "-z");
+            irc_part(opserv, cNode, "");
+        }
+    }
 
     /* Burst channel members in now. */
     for (user = members, sep = *members, mode = 0; sep; user = end) {
@@ -1795,7 +1805,15 @@ static CMD_FUNC(cmd_mark)
             return 0;
         }
 
-        target->version_reply = strdup(unsplit_string(argv + 3, argc - 3, NULL));
+        char *version = unsplit_string(argv + 3, argc - 3, NULL);
+        if(!version)
+            version = "";
+
+        target->version_reply = strdup(version);
+
+        if(match_ircglob(version, "WebTV;*"))
+            target->no_notice = true; /* webbies cant see notices */
+
         return 1;
     }
     /* unknown type of mark */