projects
/
ircu2.10.12-pk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clear privileges when deopering.
[ircu2.10.12-pk.git]
/
ircd
/
s_user.c
diff --git
a/ircd/s_user.c
b/ircd/s_user.c
index a2de84f876ed7082fac055601f11ea5edc073f89..1f0e0d92ddd990ff543c0445af741d7d72464555 100644
(file)
--- 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);
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);
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);
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;
}
else {
struct Client *acptr = user->server;
@@
-702,10
+702,6
@@
int check_target_limit(struct Client *sptr, void *target, const char *name,
assert(cli_local(sptr));
targets = cli_targets(sptr);
assert(cli_local(sptr));
targets = cli_targets(sptr);
- /* If user is invited to channel, give him/her a free target */
- if (IsChannelName(name) && IsInvited(sptr, target))
- return 0;
-
/*
* Same target as last time?
*/
/*
* Same target as last time?
*/
@@
-723,6
+719,10
@@
int check_target_limit(struct Client *sptr, void *target, const char *name,
*/
if (!created) {
if (CurrentTime < cli_nexttarget(sptr)) {
*/
if (!created) {
if (CurrentTime < cli_nexttarget(sptr)) {
+ /* If user is invited to channel, give him/her a free target */
+ if (IsChannelName(name) && IsInvited(sptr, target))
+ return 0;
+
if (cli_nexttarget(sptr) - CurrentTime < TARGET_DELAY + 8) {
/*
* No server flooding
if (cli_nexttarget(sptr) - CurrentTime < TARGET_DELAY + 8) {
/*
* No server flooding
@@
-1078,7
+1078,7
@@
int set_user_mode(struct Client *cptr, struct Client *sptr, int parc,
do_host_hiding = 1;
break;
case 'r':
do_host_hiding = 1;
break;
case 'r':
- if (
what == MODE_ADD
) {
+ if (
*(p + 1) && (what == MODE_ADD)
) {
account = *(++p);
SetAccount(sptr);
}
account = *(++p);
SetAccount(sptr);
}
@@
-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))
{
if ((FlagHas(&setflags, FLAG_OPER) || FlagHas(&setflags, FLAG_LOCOP)) &&
!IsAnOper(sptr))
+ {
det_confs_butmask(sptr, CONF_CLIENT & ~CONF_OPERATOR);
det_confs_butmask(sptr, CONF_CLIENT & ~CONF_OPERATOR);
+ client_set_privs(sptr, NULL);
+ }
if (SendServNotice(sptr))
{
if (SendServNotice(sptr))
{