X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fs_user.c;h=2c9a9bce35be8aeaa46866eab9ef0925ba10f38e;hp=9f45018041e994d00f334dcf0687ff8283baa4d5;hb=fa4486fe3e166152a57a42320fd1f2faee37b0c3;hpb=2fec862674d5b33145529ab0397640a2e4d516c7 diff --git a/ircd/s_user.c b/ircd/s_user.c index 9f45018..2c9a9bc 100644 --- a/ircd/s_user.c +++ b/ircd/s_user.c @@ -589,7 +589,8 @@ static const struct UserMode { { FLAG_WEBIRC, 'W' }, { FLAG_SEE_IDLETIME,'t' }, { FLAG_SECURITY_SERV,'D' }, - { FLAG_HIDDENHOST, 'x' } + { FLAG_HIDDENHOST, 'x' }, + { FLAG_NOTCONN, 'Z' } }; /** Length of #userModeList. */ @@ -1318,6 +1319,12 @@ int set_user_mode(struct Client *cptr, struct Client *sptr, int parc, case 'z': /* Formerly SSL mode; we ignore it. */ break; #endif + case 'Z': + if (what == MODE_ADD) + SetNotConn(sptr); + else + ClearNotConn(sptr); + break; default: send_reply(sptr, ERR_UMODEUNKNOWNFLAG, *m); break; @@ -1340,6 +1347,8 @@ int set_user_mode(struct Client *cptr, struct Client *sptr, int parc, ClrFlag(sptr, FLAG_FAKEHOST); if (!FlagHas(&setflags, FLAG_SEE_IDLETIME) && IsSeeIdletime(sptr)) ClrFlag(sptr, FLAG_SEE_IDLETIME); + if (!FlagHas(&setflags, FLAG_NOTCONN) && IsNotConn(sptr)) + ClrFlag(sptr, FLAG_NOTCONN); /* * new umode; servers and privileged opers can set it, local users cannot; * prevents users from /kick'ing or /mode -o'ing