X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/6d58d26f6e5754a4f0651ddd12de6726dd5135bb..964a842d8f29eb5767e64d2028a36cc40ccec911:/src/proto-p10.c diff --git a/src/proto-p10.c b/src/proto-p10.c index 035aed2..7e85830 100644 --- a/src/proto-p10.c +++ b/src/proto-p10.c @@ -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 */