X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/66bb2c5ba5679c878db930aa0ab947d2a2494aca..30f7b947f03d97a3d526bbadb50b9dd71aba4117:/src/proto-p10.c diff --git a/src/proto-p10.c b/src/proto-p10.c index 513f4b4..4783755 100644 --- a/src/proto-p10.c +++ b/src/proto-p10.c @@ -1951,7 +1951,8 @@ AddService(const char *nick, const char *modes, const char *desc, const char *ho if (!hostname) hostname = self->name; make_numeric(self, local_num, numeric); - return AddUser(self, nick, nick, hostname, modes ? modes : "+doik", numeric, desc, now, "AAAAAA"); + /* TODO: Make these modes part of the conf file */ + return AddUser(self, nick, nick, hostname, modes ? modes : "+oik", numeric, desc, now, "AAAAAA"); } struct userNode * @@ -2078,6 +2079,9 @@ DelUser(struct userNode* user, struct userNode *killer, int announce, const char /* mark them as dead, in case anybody cares */ user->dead = 1; + /* remove pending adduser commands */ + wipe_adduser_pending(NULL, user); + /* remove user from all channels */ while (user->channels.used > 0) DelChannelUser(user, user->channels.list[user->channels.used-1]->channel, false, 0); @@ -2236,6 +2240,7 @@ mod_chanmode_parse(struct chanNode *channel, char **modes, unsigned int argc, un case 'Q': do_chan_mode(MODE_NOQUITMSGS); break; case 'T': do_chan_mode(MODE_NOAMSG); break; case 'O': do_chan_mode(MODE_OPERSONLY); break; + case 'Z': do_chan_mode(MODE_SSLONLY); break; case 'z': if (!(flags & MCP_REGISTERED)) { do_chan_mode(MODE_REGISTERED); @@ -2413,8 +2418,7 @@ mod_chanmode_announce(struct userNode *who, struct chanNode *channel, struct mod DO_MODE_CHAR(NOAMSG, 'T'); DO_MODE_CHAR(OPERSONLY, 'O'); DO_MODE_CHAR(REGISTERED, 'z'); - // uncomment this for ssl support - //DO_MODE_CHAR(SSLONLY, 'Z'); + DO_MODE_CHAR(SSLONLY, 'Z'); #undef DO_MODE_CHAR if (change->modes_clear & channel->modes & MODE_KEY) mod_chanmode_append(&chbuf, 'k', channel->key); @@ -2465,8 +2469,7 @@ mod_chanmode_announce(struct userNode *who, struct chanNode *channel, struct mod DO_MODE_CHAR(NOAMSG, 'T'); DO_MODE_CHAR(OPERSONLY, 'O'); DO_MODE_CHAR(REGISTERED, 'z'); - // uncomment this for ssl support - //DO_MODE_CHAR(SSLONLY, 'Z'); + DO_MODE_CHAR(SSLONLY, 'Z'); #undef DO_MODE_CHAR if(change->modes_set & MODE_KEY) mod_chanmode_append(&chbuf, 'k', change->new_key); @@ -2534,8 +2537,7 @@ mod_chanmode_format(struct mod_chanmode *change, char *outbuff) DO_MODE_CHAR(NOAMSG, 'T'); DO_MODE_CHAR(OPERSONLY, 'O'); DO_MODE_CHAR(REGISTERED, 'z'); - // uncomment this for ssl support - //DO_MODE_CHAR(SSLONLY, 'Z'); + DO_MODE_CHAR(SSLONLY, 'Z'); #undef DO_MODE_CHAR } if (change->modes_set) { @@ -2558,8 +2560,7 @@ mod_chanmode_format(struct mod_chanmode *change, char *outbuff) DO_MODE_CHAR(NOAMSG, 'T'); DO_MODE_CHAR(OPERSONLY, 'O'); DO_MODE_CHAR(REGISTERED, 'z'); - // uncomment this for ssl support - //DO_MODE_CHAR(SSLONLY, 'Z'); + DO_MODE_CHAR(SSLONLY, 'Z'); #undef DO_MODE_CHAR switch (change->modes_set & (MODE_KEY|MODE_LIMIT)) { case MODE_KEY|MODE_LIMIT: @@ -2614,6 +2615,7 @@ clear_chanmode(struct chanNode *channel, const char *modes) case 'T': remove |= MODE_NOAMSG; break; case 'O': remove |= MODE_OPERSONLY; break; case 'z': remove |= MODE_REGISTERED; break; + case 'Z': remove |= MODE_SSLONLY; break; } }