diff options
author | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-08-22 09:28:08 +0000 |
---|---|---|
committer | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-08-22 09:28:08 +0000 |
commit | d933cd62cb7b88620aa6de431a41e565f96cf056 (patch) | |
tree | 52208b5dbe510d0cfa652acbd3f51ef6b0866256 /src/protocol/plexus3.c | |
parent | d222e75a6dc2a6eb5c48ce6f7a121286b5da7142 (diff) |
BUILD : 1.7.15 (1139) BUGS : N/A NOTES : Applied pelxus3 fixs from ThaPrince
git-svn-id: svn://svn.anope.org/anope/trunk@1139 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@862 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/protocol/plexus3.c')
-rw-r--r-- | src/protocol/plexus3.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/protocol/plexus3.c b/src/protocol/plexus3.c index 8a51b5221..016a12dbf 100644 --- a/src/protocol/plexus3.c +++ b/src/protocol/plexus3.c @@ -45,9 +45,9 @@ IRCDVar myIrcd[] = { "+a", /* Mode to set for chan admin */ "-a", /* Mode to unset for chan admin */ "+rd", /* Mode On Reg */ - "N", /* Mode on ID for Roots */ - NULL, /* Mode on ID for Admins */ - NULL, /* Mode on ID for Opers */ + "N", /* Mode on ID for Roots */ + NULL, /* Mode on ID for Admins */ + NULL, /* Mode on ID for Opers */ "-r+d", /* Mode on UnReg */ "+d", /* Mode on Nick Change */ 1, /* Supports SGlines */ @@ -1559,18 +1559,18 @@ void plexus_cmd_svid_umode3 (User * u, char *ts) { char modes[512]; - int len; - strncpy(modes,ircd->modeonreg,512); - len = strlen(ircd->modeonreg); + + strlcpy(modes, "+r", sizeof(modes)); + if(ircd->rootmodeonid && is_services_root(u)) { - strncat(modes,ircd->rootmodeonid,512-len); + strlcat(modes, ircd->rootmodeonid, sizeof(modes)); } else if(ircd->adminmodeonid && is_services_admin(u)) { - strncat(modes,ircd->adminmodeonid,512-len); + strlcat(modes, ircd->adminmodeonid, sizeof(modes)); } else if(ircd->opermodeonid && is_services_oper(u)) { - strncat(modes,ircd->opermodeonid,512-len); + strlcat(modes, ircd->opermodeonid, sizeof(modes)); } if (u->svid != u->timestamp) { - strncat(modes,"d",1); + strlcat(modes, "d", sizeof(modes)); common_svsmode (u, modes, ts); } else { common_svsmode (u, modes, NULL); |