1
0
mirror of https://github.com/anope/anope.git synced 2026-07-04 06:13:11 +02:00

BUILD : 1.7.14 (1069) BUGS : N/A NOTES : Added support for ircd modules to set extra modes based on services access (plexus needs this)

git-svn-id: svn://svn.anope.org/anope/trunk@1069 31f1291d-b8d6-0310-a050-a5561fc1590b


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@793 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b
2006-06-22 17:04:21 +00:00
parent 6690784bff
commit cff6e7eb1a
24 changed files with 105 additions and 10 deletions
+3
View File
@@ -3,6 +3,9 @@ Anope Version S V N
Provided by Anope Dev. <dev@anope.org> - 2006
06/14 A Indication in the version string if we're running on win32. [ #00]
06/20 A Added support for Visual Studio 2005. [#408]
06/22 A Ability for ircd modules to set extra modes on id. [ #00]
06/22 A Support startup flag. [ #00]
06/21 A Module version check. [ #00]
04/08 F Fixed Charybdis support on win32. [#487]
04/08 F Fixed thread stuff on windows. [#488]
04/08 F Fixed SGLine stuff on inspircd (not supported). [#489]
+3
View File
@@ -286,6 +286,9 @@ struct ircdvars_ {
char *adminset; /* Mode to set for admin */
char *adminunset; /* Mode to unset for admin */
char *modeonreg; /* Mode on Register */
char *rootmodeonid; /* Mode on ID for ROOTS */
char *adminmodeonid; /* Mode on ID for ADMINS */
char *opermodeonid; /* Mode on ID for OPERS */
char *modeonunreg; /* Mode on Unregister */
char *modeonnick; /* Mode on nick change */
int sgline; /* Supports SGline */
+13 -2
View File
@@ -94,6 +94,8 @@ int do_group(User * u)
char *pass = strtok(NULL, " ");
int i;
char tsbuf[16];
char modes[512];
int len;
if (NSEmailReg && (findrequestnick(u->nick))) {
notice_lang(s_NickServ, u, NICK_REQUESTED);
@@ -229,10 +231,19 @@ int do_group(User * u)
snprintf(tsbuf, sizeof(tsbuf), "%lu",
(unsigned long int) u->timestamp);
if (ircd->modeonreg) {
len = strlen(ircd->modeonreg);
strncpy(modes,ircd->modeonreg,512);
if(ircd->rootmodeonid && (u->na->nc->flags & NI_SERVICES_ROOT)) {
strncat(modes,ircd->rootmodeonid,512-len);
} else if(ircd->adminmodeonid && (u->na->nc->flags & NI_SERVICES_ADMIN)) {
strncat(modes,ircd->adminmodeonid,512-len);
} else if(ircd->opermodeonid && (u->na->nc->flags & NI_SERVICES_OPER)) {
strncat(modes,ircd->opermodeonid,512-len);
}
if (ircd->tsonmode) {
common_svsmode(u, ircd->modeonreg, tsbuf);
common_svsmode(u, modes, tsbuf);
} else {
common_svsmode(u, ircd->modeonreg, NULL);
common_svsmode(u, modes, NULL);
}
}
+13 -2
View File
@@ -79,6 +79,8 @@ int do_identify(User * u)
NickRequest *nr;
int res;
char tsbuf[16];
char modes[512];
int len;
if (!pass) {
syntax_error(s_NickServ, u, "IDENTIFY", NICK_IDENTIFY_SYNTAX);
@@ -121,10 +123,19 @@ int do_identify(User * u)
(unsigned long int) u->timestamp);
if (ircd->modeonreg) {
len = strlen(ircd->modeonreg);
strncpy(modes,ircd->modeonreg,512);
if(ircd->rootmodeonid && (u->na->nc->flags & NI_SERVICES_ROOT)) {
strncat(modes,ircd->rootmodeonid,512-len);
} else if(ircd->adminmodeonid && (u->na->nc->flags & NI_SERVICES_ADMIN)) {
strncat(modes,ircd->adminmodeonid,512-len);
} else if(ircd->opermodeonid && (u->na->nc->flags & NI_SERVICES_OPER)) {
strncat(modes,ircd->opermodeonid,512-len);
}
if (ircd->tsonmode) {
common_svsmode(u, ircd->modeonreg, tsbuf);
common_svsmode(u, modes, tsbuf);
} else {
common_svsmode(u, ircd->modeonreg, "");
common_svsmode(u, modes, "");
}
}
send_event(EVENT_NICK_IDENTIFY, 1, u->nick);
+14 -4
View File
@@ -253,9 +253,9 @@ int do_confirm(User * u)
char *email = NULL;
int forced = 0;
User *utmp = NULL;
#ifdef USE_ENCRYPTION
char modes[512];
int len;
#endif
nr = findrequestnick(u->nick);
if (NSEmailReg) {
@@ -383,12 +383,22 @@ int do_confirm(User * u)
#endif
u->lastnickreg = time(NULL);
if (ircd->modeonreg) {
len = strlen(ircd->modeonreg);
strncpy(modes,ircd->modeonreg,512);
if(ircd->rootmodeonid && (u->na->nc->flags & NI_SERVICES_ROOT)) {
strncat(modes,ircd->rootmodeonid,512-len);
} else if(ircd->adminmodeonid && (u->na->nc->flags & NI_SERVICES_ADMIN)) {
strncat(modes,ircd->adminmodeonid,512-len);
} else if(ircd->opermodeonid && (u->na->nc->flags & NI_SERVICES_OPER)) {
strncat(modes,ircd->opermodeonid,512-len);
}
if (ircd->tsonmode) {
snprintf(tsbuf, sizeof(tsbuf), "%lu",
(unsigned long int) u->timestamp);
common_svsmode(u, ircd->modeonreg, tsbuf);
common_svsmode(u, modes, tsbuf);
} else {
common_svsmode(u, ircd->modeonreg, NULL);
common_svsmode(u, modes, NULL);
}
}
+3 -1
View File
@@ -586,7 +586,9 @@ int loadModule(Module * m, User * u)
if (func) {
version = (int (*)())ano_modsym(m->handle,"getAnopeBuildVersion");
if(version && version() >= VERSION_BUILD ) {
alog("Module %s compiled against anope revision %d, this is %d",m->name,version(),VERSION_BUILD);
if(debug) {
alog("Module %s compiled against anope revision %d, this is %d",m->name,version(),VERSION_BUILD);
}
} else {
ano_modclose(m->handle);
ano_modclearerr();
+3
View File
@@ -49,6 +49,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for channel admin */
NULL, /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* 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 */
+3
View File
@@ -48,6 +48,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to unset for chan admin */
NULL, /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
NULL, /* Mode on UnReg */
NULL, /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to unset for chan admin */
"+rd", /* Mode On Reg */
NULL, /* 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 */
0, /* Supports SGlines */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for admin */
NULL, /* Mode to unset for admin */
NULL, /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
NULL, /* Mode on UnReg */
NULL, /* Mode on Nick Change */
0, /* Supports SGlines */
+3
View File
@@ -66,6 +66,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+r", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r", /* Mode on UnReg */
"-r", /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -45,6 +45,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to unset for chan admin */
"+R", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-R", /* Mode on UnReg */
"-R", /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -45,6 +45,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for chan admin */
"-a", /* Mode to unset for chan admin */
"+rd", /* Mode On Reg */
NULL, /* 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 */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for chan admin */
"-a", /* Mode to unset for chan admin */
"+r", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r", /* Mode on UnReg */
NULL, /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-rd", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -49,6 +49,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to unset for chan admin */
NULL, /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
NULL, /* Mode on UnReg */
NULL, /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -51,6 +51,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+e", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-e", /* Mode on UnReg */
"-e", /* Mode on Nick Change */
0, /* Supports SGlines */
+3
View File
@@ -49,6 +49,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to unset for chan admin */
"+rd", /* Mode On Reg */
NULL, /* 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 */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
NULL, /* Mode to set for chan admin */
NULL, /* Mode to remove for chan admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r+d", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
0, /* Supports SGlines */
+3
View File
@@ -47,6 +47,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* 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 */
+3
View File
@@ -49,6 +49,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r+d", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
0, /* Supports SGlines */
+3
View File
@@ -49,6 +49,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r+d", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
1, /* Supports SGlines */
+3
View File
@@ -48,6 +48,9 @@ IRCDVar myIrcd[] = {
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r+d", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
1, /* Supports SGlines */
+5 -1
View File
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="14"
VERSION_EXTRA=""
VERSION_BUILD="1068"
VERSION_BUILD="1069"
# $Log$
#
# BUILD : 1.7.14 (1069)
# BUGS : N/A
# NOTES : Added support for ircd modules to set extra modes based on services access (plexus needs this)
#
# BUILD : 1.7.14 (1068)
# BUGS : N/A
# NOTES : Added -nothird and -support command line options