X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fs_user.c;h=1f0e0d92ddd990ff543c0445af741d7d72464555;hb=c3e49ba3f999d28a480f8f66cc633d9ea968099f;hp=a989a06d00778160d48901cf8c59506261790fd6;hpb=db5ce1caa14de28c6b333ac3e1484ed068dfd236;p=ircu2.10.12-pk.git diff --git a/ircd/s_user.c b/ircd/s_user.c index a989a06..1f0e0d9 100644 --- a/ircd/s_user.c +++ b/ircd/s_user.c @@ -355,6 +355,16 @@ int register_user(struct Client *cptr, struct Client *sptr) Count_unknownbecomesclient(sptr, UserStats); + /* + * Set user's initial modes + */ + tmpstr = (char*)client_get_default_umode(sptr); + if (tmpstr) { + char *umodev[] = { NULL, NULL, NULL, NULL }; + umodev[2] = tmpstr; + set_user_mode(cptr, sptr, 3, umodev, ALLOWMODES_ANY); + } + SetUser(sptr); cli_handler(sptr) = CLIENT_HANDLER; SetLocalNumNick(sptr); @@ -385,16 +395,6 @@ int register_user(struct Client *cptr, struct Client *sptr) cli_info(sptr), NumNick(cptr) /* two %s's */); IPcheck_connect_succeeded(sptr); - /* - * Set user's initial modes - */ - tmpstr = (char*)client_get_default_umode(sptr); - if (tmpstr) { - char *umodev[] = { NULL, NULL, NULL, NULL }; - umodev[2] = tmpstr; - set_user_mode(cptr, sptr, 1, umodev, ALLOWMODES_ANY); - } - } else { struct Client *acptr = user->server; @@ -1128,7 +1128,10 @@ int set_user_mode(struct Client *cptr, struct Client *sptr, int parc, { if ((FlagHas(&setflags, FLAG_OPER) || FlagHas(&setflags, FLAG_LOCOP)) && !IsAnOper(sptr)) + { det_confs_butmask(sptr, CONF_CLIENT & ~CONF_OPERATOR); + client_set_privs(sptr, NULL); + } if (SendServNotice(sptr)) {