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

Cleanup of internals of new opertype stuff by Adam. Removes OS OPER and OS ADMIN, changes OS STAFF to be more helpful in their place.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2319 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
rburchell
2009-06-11 10:16:35 +00:00
parent a68b5efe27
commit 8fa6752858
26 changed files with 57 additions and 1695 deletions
+1 -11
View File
@@ -1116,17 +1116,7 @@ operserv
* The core modules to load for OperServ. This is a space separated list that corresponds
* to the base names of the modules for OperServ. This directive is optional, but highly recommended.
*/
modules = "os_help os_global os_stats os_oper os_admin os_staff os_mode os_kick os_clearmodes os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_news os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo"
/*
* Specifies the Services "super-users". The super-users, or "roots" as in Unix terminology, are
* the only users who can add or delete Services Admins.
*
* You can specify more than one nick by separating each one by a space.
*
* This is commented out by default; make sure you insert the correct nicks before uncommenting it.
*/
#servicesroot = "CyberBotX w00t"
modules = "os_help os_global os_stats os_staff os_mode os_kick os_clearmodes os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_news os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo"
/*
* If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant
-6
View File
@@ -346,8 +346,6 @@ E bool GlobalOnCycle;
E bool AnonymousGlobal;
E char *GlobalOnCycleMessage;
E char *GlobalOnCycleUP;
E char **ServicesRoots;
E int RootNumber;
E bool LogMaxUsers;
E bool SuperAdmin;
E bool LogBot;
@@ -731,8 +729,6 @@ E int is_on_access(User * u, NickCore * nc);
/**** operserv.c ****/
E SList akills, sglines, sqlines, szlines;
E SList servadmins;
E SList servopers;
E int DefConModesSet;
E uint32 DefConModesOn;
@@ -744,8 +740,6 @@ E void os_init();
E void load_os_dbase();
E void save_os_dbase();
E void os_remove_nick(NickCore *nc);
E int add_akill(User *u, const char *mask, const char *by, const time_t expires, const char *reason);
E int check_akill(const char *nick, const char *username, const char *host, const char *vhost, const char *ip);
E void expire_akills();
+3 -3
View File
@@ -1135,10 +1135,10 @@ typedef struct ircd_modes_ {
#define NI_HIDE_QUIT 0x00000200 /* Don't show last quit message in INFO */
#define NI_KILL_QUICK 0x00000400 /* Kill in 20 seconds instead of 60 */
#define NI_KILL_IMMED 0x00000800 /* Kill immediately instead of in 60 sec */
#define NI_SERVICES_OPER 0x00001000 /* User is a Services operator */
#define NI_SERVICES_ADMIN 0x00002000 /* User is a Services admin */
//#define NI_SERVICES_OPER 0x00001000 /* No longer used */
//#define NI_SERVICES_ADMIN 0x00002000 /* No longer used */
#define NI_ENCRYPTEDPW 0x00004000 /* Nickname password is encrypted */
#define NI_SERVICES_ROOT 0x00008000 /* User is a Services root */
//#define NI_SERVICES_ROOT 0x00008000 /* No longer used */
#define NI_MEMO_MAIL 0x00010000 /* User gets email on memo */
#define NI_HIDE_STATUS 0x00020000 /* Don't show services access status */
#define NI_SUSPENDED 0x00040000 /* Nickname is suspended */
-66
View File
@@ -2650,72 +2650,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick newnick
OPER_SVSNICK_NEWNICK
The nick %s is now being changed to %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | llista]
OPER_ADMIN_SKELETON
Els serveis estan en Mode skeleton; la comanda ADMIN no esta disponible.
OPER_ADMIN_EXISTS
%s ja esta present a la llista d'administradors de serveis.
OPER_ADMIN_REACHED_LIMIT
Ho sento, sols pots tenir %d administradors de serveis.
OPER_ADMIN_ADDED
%s afegit a la llista d'administradors de serveis.
OPER_ADMIN_NOT_FOUND
%s no trobat a la llista d'administradors de serveis.
OPER_ADMIN_NO_MATCH
No existeixen instàncies similars a la llista d'administradors de serveis.
OPER_ADMIN_DELETED
%s esborrat de la llista d'administradors de serveis.
OPER_ADMIN_DELETED_ONE
1 instància esborrada de la llista d'administradors de serveis.
OPER_ADMIN_DELETED_SEVERAL
%d instàncies esborrades de la llista d'administradors de serveis.
OPER_ADMIN_LIST_EMPTY
La llista d'administradors de serveis esta buida.
OPER_ADMIN_LIST_HEADER
Llista d'administradors de serveis:
Num Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
La llista d'administradors de serveis ha estat netegada.
OPER_ADMIN_MOVED
%s has been moved to Services Administrators list.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | llista]
OPER_OPER_SKELETON
Els serveis estan en Mode skeleton; la comanda OPER no esta disponible.
OPER_OPER_EXISTS
%s ja existeix a la llista d'operadors de serveis.
OPER_OPER_REACHED_LIMIT
Ho sento, sols pots tenir %d operadors de serveis.
OPER_OPER_ADDED
%s afegit a la llista d'operadors de serveis.
OPER_OPER_NOT_FOUND
%s no trobat a la llista d'operadors de serveis.
OPER_OPER_NO_MATCH
No existeixen instàncies similars a la llista d'operadors de serveis.
OPER_OPER_DELETED
%s esborrat de la llista d'operadors de serveis.
OPER_OPER_DELETED_ONE
1 instància esborrada de la llista d'operadors de serveis.
OPER_OPER_DELETED_SEVERAL
%d instàncies esborrades de la llista d'operadors de serveis.
OPER_OPER_LIST_EMPTY
La llista d'administradors de serveis esta buida.
OPER_OPER_LIST_HEADER
Llista d'operadors de serveis:
Num Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
La llista d'operadors de serveis ha estat netegada.
OPER_OPER_MOVED
%s has been moved to Services Operators list.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2616,72 +2616,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK Nickname Neuer-Nickname
OPER_SVSNICK_NEWNICK
Der Nickname %s wird jetzt zu %s geändert.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [Nickname | entry-liste]
OPER_ADMIN_SKELETON
Services sind im Basis-Modus. Das ADMIN-Befehl ist nicht verfügbar.
OPER_ADMIN_EXISTS
%s existiert bereits auf der Services Administratoren-Liste.
OPER_ADMIN_REACHED_LIMIT
Du kannst nur %d Services Administratoren haben.
OPER_ADMIN_ADDED
%s wurde zur Liste der Services Administratoren hinzugefügt.
OPER_ADMIN_NOT_FOUND
%s wurde nicht auf der Liste der Services Administratoren gefunden.
OPER_ADMIN_NO_MATCH
Keine entsprechenden Einträge in der Services Administratoren-Liste gefunden.
OPER_ADMIN_DELETED
%s wurde aus der Services Administratoren-Liste entfernt.
OPER_ADMIN_DELETED_ONE
Es wurde 1 Eintrag aus der Services Administratoren-Liste entfernt.
OPER_ADMIN_DELETED_SEVERAL
Es wurden %d Einträge aus der Services Administratoren-Liste entfernt.
OPER_ADMIN_LIST_EMPTY
Die Services Administratoren-Liste ist leer.
OPER_ADMIN_LIST_HEADER
Services Administratoren-Liste:
Nummer Nickname
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Die Liste der Services Administratoren wurde geleert.
OPER_ADMIN_MOVED
%s wurde zu der Services Administratoren-Liste verschoben.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [Nickname | entry-liste]
OPER_OPER_SKELETON
Services sind im Basis-Modus. Das OPER-Befehl ist nicht verfügbar.
OPER_OPER_EXISTS
%s existiert bereits auf der Services Operatoren-Liste.
OPER_OPER_REACHED_LIMIT
Du kannst nur %d Services Operatoren haben.
OPER_OPER_ADDED
%s wurde zur der Services Operatoren-Liste hinzugefügt.
OPER_OPER_NOT_FOUND
%s wurde nicht auf der Services Operatoren-Liste gefunden.
OPER_OPER_NO_MATCH
Keine entsprechenden Einträge in der Services Operatoren-Liste gefunden.
OPER_OPER_DELETED
%s wurde aus der Services Operatoren-Liste entfernt.
OPER_OPER_DELETED_ONE
Es wurde 1 Eintrag aus der Services Operatoren-Liste entfernt.
OPER_OPER_DELETED_SEVERAL
Es wurden %d Einträge aus der Services Operatoren-Liste entfernt.
OPER_OPER_LIST_EMPTY
Die Services Operatoren-Liste ist leer.
OPER_OPER_LIST_HEADER
Services Operatoren-Liste:
Nummer Nickname
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Die Liste der Services Operatoren wurde geleert.
OPER_OPER_MOVED
%s wurde zu der Services Operatoren-Liste verschoben.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2568,72 +2568,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick newnick
OPER_SVSNICK_NEWNICK
The nick %s is now being changed to %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | entry-list]
OPER_ADMIN_SKELETON
Services is in skeleton mode; the ADMIN command is unavailable.
OPER_ADMIN_EXISTS
%s already exists on Services admin list.
OPER_ADMIN_REACHED_LIMIT
Sorry, you can only have %d Services admins.
OPER_ADMIN_ADDED
%s added to Services admin list.
OPER_ADMIN_NOT_FOUND
%s not found on Services admin list.
OPER_ADMIN_NO_MATCH
No matching entries on Services admin list.
OPER_ADMIN_DELETED
%s deleted from Services admin list.
OPER_ADMIN_DELETED_ONE
Deleted 1 entry from Services admin list.
OPER_ADMIN_DELETED_SEVERAL
Deleted %d entries from Services admin list.
OPER_ADMIN_LIST_EMPTY
Services admin list is empty.
OPER_ADMIN_LIST_HEADER
Services admin list:
Num Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Services admin list has been cleared.
OPER_ADMIN_MOVED
%s has been moved to Services Administrators list.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | entry-list]
OPER_OPER_SKELETON
Services is in skeleton mode; the OPER command is unavailable.
OPER_OPER_EXISTS
%s already exists on Services operator list.
OPER_OPER_REACHED_LIMIT
Sorry, you can only have %d Services operators.
OPER_OPER_ADDED
%s added to Services operator list.
OPER_OPER_NOT_FOUND
%s not found on Services operator list.
OPER_OPER_NO_MATCH
No matching entries on Services operator list.
OPER_OPER_DELETED
%s deleted from Services operator list.
OPER_OPER_DELETED_ONE
Deleted 1 entry from Services operator list.
OPER_OPER_DELETED_SEVERAL
Deleted %d entries from Services operator list.
OPER_OPER_LIST_EMPTY
Services operator list is empty.
OPER_OPER_LIST_HEADER
Services operator list:
Num Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Services operator list has been cleared.
OPER_OPER_MOVED
%s has been moved to Services Operators list.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2621,72 +2621,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick nuevonick
OPER_SVSNICK_NEWNICK
El nick %s esta siendo cambiado a %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | lista]
OPER_ADMIN_SKELETON
Los Servicios estan en modo skeleton; El comando ADMIN no esta disponible.
OPER_ADMIN_EXISTS
%s ya esta presente en la lista de administradores de Servicios.
OPER_ADMIN_REACHED_LIMIT
Lo siento, solo puedes tener %d administradores de Servicios.
OPER_ADMIN_ADDED
%s añadido a la lista de administradores de Servicios.
OPER_ADMIN_NOT_FOUND
%s no encontrado en la lista de administradores de Servicios.
OPER_ADMIN_NO_MATCH
No existen instancias similares en la lista de administradores de Servicios.
OPER_ADMIN_DELETED
%s borrado de la lista de administradores de Servicios.
OPER_ADMIN_DELETED_ONE
1 Instancia borrada de la lista de administradores de Servicios.
OPER_ADMIN_DELETED_SEVERAL
%d instancias borradas de la lista de administradores de Servicios.
OPER_ADMIN_LIST_EMPTY
La lista de administradores de Servicios esta vacia.
OPER_ADMIN_LIST_HEADER
Lista de administradores de Servicios:
Num Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
La lista de administradores de Servicios ha sido limpiada.
OPER_ADMIN_MOVED
%s ha sido movido a la lista de Administradores de Servicios.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | lista]
OPER_OPER_SKELETON
Los Servicios estan en modo skeleton; El comando OPER no esta disponible.
OPER_OPER_EXISTS
%s ya existe en la lista de operadores de Servicios.
OPER_OPER_REACHED_LIMIT
Lo siento, solo puedes tener %d operadores de Servicios.
OPER_OPER_ADDED
%s añadido a la lista de operadores de Servicios.
OPER_OPER_NOT_FOUND
%s no encontrado en la lista de operadores de Servicios.
OPER_OPER_NO_MATCH
No existen instancias similares en la lista de operadores de Servicios.
OPER_OPER_DELETED
%s borrado de la lista de operadores de Servicios.
OPER_OPER_DELETED_ONE
1 Instancia borrada de la lista de operadores de Servicios.
OPER_OPER_DELETED_SEVERAL
%d instancias borradas de la lista de operadores de Servicios.
OPER_OPER_LIST_EMPTY
La lista de administradores de Servicios esta vacia.
OPER_OPER_LIST_HEADER
Lista de operadores de Servicios:
Num Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
La lista de operadores de Servicios ha sido limpiada.
OPER_OPER_MOVED
%s ha sido movido a la lista de Operadores de Servicios.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2674,72 +2674,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK pseudo nouveau-pseudo
OPER_SVSNICK_NEWNICK
Le pseudo de %s a été changé en %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [pseudo | entry-list]
OPER_ADMIN_SKELETON
Les services sont en mode skeleton, la commande ADMIN n'est pas disponible.
OPER_ADMIN_EXISTS
%s est déjà sur la liste des Services admins.
OPER_ADMIN_REACHED_LIMIT
Vous ne pouvez avoir que %d Services admins.
OPER_ADMIN_ADDED
%s a été ajouté à la liste des Services admins.
OPER_ADMIN_NOT_FOUND
%s est introuvable sur la liste des Services admins.
OPER_ADMIN_NO_MATCH
Aucune entrée correspondante sur la liste des Services admins.
OPER_ADMIN_DELETED
%s a été supprimé de la liste des Services admins.
OPER_ADMIN_DELETED_ONE
1 entrée a été supprimée de la liste des Services admins.
OPER_ADMIN_DELETED_SEVERAL
%d entrées ont été supprimées de la liste des Services admins.
OPER_ADMIN_LIST_EMPTY
La liste des Services admins est vide.
OPER_ADMIN_LIST_HEADER
Liste des Services admins:
Num Pseudo
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
La liste des Services admins a été vidée.
OPER_ADMIN_MOVED
%s a été retiré de la liste des services admins.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [pseudo | entry-list]
OPER_OPER_SKELETON
Les services sont en mode skeleton, la commande OPER n'est pas disponible.
OPER_OPER_EXISTS
%s est déjà sur la liste des Services oper.
OPER_OPER_REACHED_LIMIT
Vous ne pouvez avoir que %d Services oper.
OPER_OPER_ADDED
%s a été ajouté à la liste des Services oper.
OPER_OPER_NOT_FOUND
%s est introuvable sur la liste des Services oper.
OPER_OPER_NO_MATCH
Aucune entrée correspondante sur la liste des Services oper.
OPER_OPER_DELETED
%s a été supprimé de la liste des Services oper.
OPER_OPER_DELETED_ONE
1 entrée a été supprimée de la liste des Services oper.
OPER_OPER_DELETED_SEVERAL
%d entrées ont été supprimées de la liste des Services oper.
OPER_OPER_LIST_EMPTY
La liste des Services oper est vide.
OPER_OPER_LIST_HEADER
Liste des Services oper:
Num Pseudo
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
La liste des Services oper a été vidée.
OPER_OPER_MOVED
%s a été bougé dans la liste des services oper.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2653,72 +2653,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick newnick
OPER_SVSNICK_NEWNICK
The nick %s is now being changed to %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | entry-list]
OPER_ADMIN_SKELETON
Ïé õðçñåóßåò åßíáé óå skeleton mode; Ç åíôïëÞ ADMIN äåí åßíáé äéáèÝóéìç.
OPER_ADMIN_EXISTS
Ï/ç %s õðÜñ÷åé Þäç óôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_REACHED_LIMIT
Óõãíþìç, ìðïñåßò íá Ý÷åéò óôçí ëßóôá ôùí õðçñåóéþí ìüíï %d.
OPER_ADMIN_ADDED
%s ðñïóèÝèçêå óôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_NOT_FOUND
%s äåí âñÝèçêå óôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_NO_MATCH
Äåí âñÝèçêáí èÝóåéò óôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_DELETED
%s äéáãñÜöçêå áðü ôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_DELETED_ONE
ÄéáãñÜöçêå 1 èÝóç áðü ôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_DELETED_SEVERAL
ÄéáãñÜöçêáí %d èÝóåéò áðü ôçí ëßóôá ôùí õðçñåóéþí.
OPER_ADMIN_LIST_EMPTY
Ç ëßóôá ôùí õðçñåóéþí åßíáé Üäåéá.
OPER_ADMIN_LIST_HEADER
Ç ëßóôá ôùí õðçñåóéþí åßíáé ïé åîÞò:
Íïýì Øåõä
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Ç ëßóôá ôùí õðçñåóéþí êáèáñßóôçêå.
OPER_ADMIN_MOVED
%s has been moved to Services Administrators list.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | entry-list]
OPER_OPER_SKELETON
Ïé õðçñåóßåò åßíáé óå skeleton mode; Ç åíôïëÞ OPER äåí åßíáé äéáèÝóéìç.
OPER_OPER_EXISTS
%s õðÜñ÷åé Þäç óôçí ëßóôá ôùí õðçñåóéþí ùò operator.
OPER_OPER_REACHED_LIMIT
Óõãíþìç, ìðïñåßò ìüíï íá Ý÷åéò óôçí ëßóôá õðçñåóéþí %d operators.
OPER_OPER_ADDED
%s ðñïóèÝèçêå óôçí ëßóôá ôùí õðçñåóéþí ùò operator.
OPER_OPER_NOT_FOUND
%s äåí âñÝèçêå óôçí ëßóôá ôùí õðçñåóéþí áõôëïò ï operator.
OPER_OPER_NO_MATCH
Äåí âñÝèçêáí èÝóåéò óôçí ëßóôá ôùí õðçñåóéþí ïé opers.
OPER_OPER_DELETED
%s äéáãñÜöçêå áðü ôçí ëßóôá ôùí operators.
OPER_OPER_DELETED_ONE
ÄéáãñÜöçêå 1 èÝóç áðü ôçí ëßóôá ôùí operators.
OPER_OPER_DELETED_SEVERAL
ÄéáãñÜöçêáí %d èÝóåéò áðü ôçí ëßóôá ôùí operators.
OPER_OPER_LIST_EMPTY
Ç ëßóôá ôùí operators åßíáé Üäåéá.
OPER_OPER_LIST_HEADER
Ç ëßóôá ôùí operators åßíáé:
Íïõ Øåõä
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Ç ëßóôá ôùí operators êáèáñßóôçêå.
OPER_OPER_MOVED
%s has been moved to Services Operators list.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2611,72 +2611,6 @@ OPER_SVSNICK_SYNTAX
OPER_SVSNICK_NEWNICK
A nicked %s meg lett változtatva erre: %s.
# ADMIN válaszok
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | bejegyzések]
OPER_ADMIN_SKELETON
Szervíz most skeleton módban fut, az ADMIN parancs nem elérhetõ
OPER_ADMIN_EXISTS
%s már szerepel a szervíz admin litában.
OPER_ADMIN_REACHED_LIMIT
Csak %d szervíz admin lehet a listán.
OPER_ADMIN_ADDED
%s hozzáadva szervíz admin listához.
OPER_ADMIN_NOT_FOUND
%s nem található szervíz admin listán.
OPER_ADMIN_NO_MATCH
Nincs ilyen a szervíz admin listán.
OPER_ADMIN_DELETED
%s törölve a szervíz admin listáról.
OPER_ADMIN_DELETED_ONE
Töröltve 1 bejegyzés a szervíz admin listáról.
OPER_ADMIN_DELETED_SEVERAL
Töröltve %d bejegyzés a szervíz admin listáról.
OPER_ADMIN_LIST_EMPTY
Szervíz admin lista üres.
OPER_ADMIN_LIST_HEADER
Szerviz admin lista:
Szám Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Szervíz admin lista törölve.
OPER_ADMIN_MOVED
%s has been moved to Services Administrators list.
# OPER válaszok
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | bejegyzések]
OPER_OPER_SKELETON
Szervíz most skeleton módban fut, az OPER parancs nem elérhetõ.
OPER_OPER_EXISTS
%s már szerepel a szervíz operátor listán.
OPER_OPER_REACHED_LIMIT
Csak %d szervíz operátor lehet a listán.
OPER_OPER_ADDED
%s hozzáadva a szervíz operátor listához.
OPER_OPER_NOT_FOUND
%s nem található a szervíz operátor listán.
OPER_OPER_NO_MATCH
Nincs ilyen bejegyzés a szervíz operátor listán.
OPER_OPER_DELETED
%s törölve szervíz operátor listáról.
OPER_OPER_DELETED_ONE
Törölve 1 bejegyzés a szervíz operátor listáról.
OPER_OPER_DELETED_SEVERAL
Törölve %d bejegyzés a szervíz operátor listától.
OPER_OPER_LIST_EMPTY
Szervíz operátor lista üres.
OPER_OPER_LIST_HEADER
Szervíz operátor lista:
Szám Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Szervíz operátor lista törölve.
OPER_OPER_MOVED
%s has been moved to Services Operators list.
# AKILL válaszok
OPER_AKILL_SYNTAX
AKILL {ADD | DEL | LIST | VIEW | CLEAR} [[+lejárat] {maszk | sorszám} [indok]]
-66
View File
@@ -2580,72 +2580,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick nuovonick
OPER_SVSNICK_NEWNICK
Il nick %s viene ora cambiato in %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | numero-lista]
OPER_ADMIN_SKELETON
I Services sono in modalità "scheletro"; il comando ADMIN non è disponibile.
OPER_ADMIN_EXISTS
%s è già presente nella lista dei Services admin.
OPER_ADMIN_REACHED_LIMIT
Spiacente, puoi avere un massimo di %d Services admin.
OPER_ADMIN_ADDED
%s aggiunto alla lista dei Services admin.
OPER_ADMIN_NOT_FOUND
%s non trovato nella lista dei Services admin.
OPER_ADMIN_NO_MATCH
Nessun record corrispondente nella lista dei Services admin.
OPER_ADMIN_DELETED
%s eliminato dalla lista dei Services admin.
OPER_ADMIN_DELETED_ONE
Eliminato 1 record dalla lista dei Services admin.
OPER_ADMIN_DELETED_SEVERAL
Eliminati %d record dalla lista dei Services admin.
OPER_ADMIN_LIST_EMPTY
La lista dei Services admin è vuota.
OPER_ADMIN_LIST_HEADER
Lista dei Services admin:
Num Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
La lista dei Services admin è stata svuotata.
OPER_ADMIN_MOVED
%s è stato spostato nella lista dei Services admin.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | numero-lista]
OPER_OPER_SKELETON
I Services sono in modalità "scheletro"; il comando ADMIN non è disponibile.
OPER_OPER_EXISTS
%s è già presente nella lista dei Services oper.
OPER_OPER_REACHED_LIMIT
Spiacente, puoi avere un massimo di %d Services oper.
OPER_OPER_ADDED
%s aggiunto alla lista dei Services oper.
OPER_OPER_NOT_FOUND
%s non trovato nella lista dei Services oper.
OPER_OPER_NO_MATCH
Nessun record corrispondente nella lista dei Services oper.
OPER_OPER_DELETED
%s eliminato dalla lista dei Services oper.
OPER_OPER_DELETED_ONE
Eliminato 1 record dalla lista dei Services oper.
OPER_OPER_DELETED_SEVERAL
Eliminati %d record dalla lista dei Services oper.
OPER_OPER_LIST_EMPTY
La lista dei Services oper è vuota.
OPER_OPER_LIST_HEADER
Lista dei Services oper:
Num Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
La lista dei Services oper è stata svuotata.
OPER_OPER_MOVED
%s è stato spostato nella lista dei Services oper.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2619,72 +2619,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick nieuwe nick
OPER_SVSNICK_NEWNICK
De nick %s wordt nu veranderd in %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | toeganslijst]
OPER_ADMIN_SKELETON
Services is in skelet mode; het ADMIN commando is niet beschikbaar.
OPER_ADMIN_EXISTS
%s bestaat al op de Services admin lijst.
OPER_ADMIN_REACHED_LIMIT
Sorry, je kan maar %d Services admins hebben.
OPER_ADMIN_ADDED
%s toegevoegd aan de Services admin lijst.
OPER_ADMIN_NOT_FOUND
%s niet gevonden op de Services admin lijst.
OPER_ADMIN_NO_MATCH
Geen overkeenkomsten op de Services admin lijst.
OPER_ADMIN_DELETED
%s verwijderd van de Services admin lijst.
OPER_ADMIN_DELETED_ONE
1 admin verwijderd van de Services admin lijst.
OPER_ADMIN_DELETED_SEVERAL
%d admins verwijderd van de Services admin lijst.
OPER_ADMIN_LIST_EMPTY
Services admin lijst is leeg.
OPER_ADMIN_LIST_HEADER
Services admin lijst:
Nr Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Services admin lijst is leeggemaakt.
OPER_ADMIN_MOVED
%s is verplaatst naar de Services admin lijst.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | toegangslijst]
OPER_OPER_SKELETON
Services is in skelet mode; het OPER commando is onbeschikbaar.
OPER_OPER_EXISTS
%s bestaat al op de Services operator lijst.
OPER_OPER_REACHED_LIMIT
Sorry, je kan maar %d Services operators hebben.
OPER_OPER_ADDED
%s toegevoegd aan Services operator lijst.
OPER_OPER_NOT_FOUND
%s niet gevonden op Services operator lijst.
OPER_OPER_NO_MATCH
Geen overeenkomsten op Services operator lijst.
OPER_OPER_DELETED
%s verwijderd van Services operator lijst.
OPER_OPER_DELETED_ONE
1 operator verwijderd van Services operator lijst.
OPER_OPER_DELETED_SEVERAL
%d operators verwijderd van Services operator lijst.
OPER_OPER_LIST_EMPTY
Services operator lijst is leeg.
OPER_OPER_LIST_HEADER
Services operator lijst:
Nr Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Services operator lijst is leeggemaakt.
OPER_OPER_MOVED
%s is verplaatst naar de Services operator lijst.
# AKILL responses
OPER_AKILL_SYNTAX
-94
View File
@@ -3434,100 +3434,6 @@ OPER_SVSNICK_SYNTAX
OPER_SVSNICK_NEWNICK
Nick %s zostaje zmieniony na %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | pozycja]
OPER_ADMIN_SKELETON
Serwisy s± w trybie szkieletowym, komenda ADMIN nie jest dostêpna.
OPER_ADMIN_EXISTS
%s ju¿ istnieje na li¶cie administratorów serwisów.
OPER_ADMIN_REACHED_LIMIT
Mo¿esz mieæ tylko %d administratorów serwisów.
OPER_ADMIN_ADDED
%s dodano do listy administratorów serwisów.
OPER_ADMIN_NOT_FOUND
%s nie znaleziono na li¶cie administratorów serwisów.
OPER_ADMIN_NO_MATCH
Nie znaleziono pasuj±cych wpisów na li¶cie administratorów serwisów.
OPER_ADMIN_DELETED
%s usuniêto z listy administratorów serwisów.
OPER_ADMIN_DELETED_ONE
Usuniêto 1 wpis z listy administratorów serwisów.
OPER_ADMIN_DELETED_SEVERAL
Usuniêto %d wpisy(ów) z listy administratorów serwisów.
OPER_ADMIN_LIST_EMPTY
Lista administratorów serwisów jest pusta.
OPER_ADMIN_LIST_HEADER
Lista administratorów serwisów:
Nr Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Lista administratorów serwisów zosta³a wyczyszczona.
OPER_ADMIN_MOVED
%s przeniesiono na listê administratorów serwisów.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | pozycja]
OPER_OPER_SKELETON
Serwisy s± w trybie szkieletowym, komenda OPER nie jest dostêpna.
OPER_OPER_EXISTS
%s ju¿ istnieje na li¶cie operatorów serwisów.
OPER_OPER_REACHED_LIMIT
Mo¿esz mieæ tylko %d operatorów serwisów.
OPER_OPER_ADDED
%s dodano do listy operatorów serwisów.
OPER_OPER_NOT_FOUND
%s nie znaleziono na li¶cie operatorów serwisów.
OPER_OPER_NO_MATCH
Nie znaleziono pasuj±cych wpisów na li¶cie operatorów serwisów.
OPER_OPER_DELETED
%s usuniêto z listy operatorów serwisów.
OPER_OPER_DELETED_ONE
Usuniêto 1 wpis z listy operatorów serwisów.
OPER_OPER_DELETED_SEVERAL
Usuniêto %d wpisy(ów) z listy operatorów serwisów.
OPER_OPER_LIST_EMPTY
Lista operatorów serwisów jest pusta.
OPER_OPER_LIST_HEADER
Lista operatorów serwisów:
Nr Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Lista operatorów serwisów zosta³a wyczyszczona.
OPER_OPER_MOVED
%s przeniesiono na listê operatorów serwisów.
# AKILL responses
OPER_AKILL_SYNTAX
AKILL {ADD | DEL | LIST | VIEW | CLEAR} [[+czas-trwania] {maska | pozycja} [powód]]
-66
View File
@@ -2591,72 +2591,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick novonick
OPER_SVSNICK_NEWNICK
O nick %s está sendo alterado para %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | lista]
OPER_ADMIN_SKELETON
Services estão no modo esqueleto; o comando ADMIN não está disponível.
OPER_ADMIN_EXISTS
%s já está na lista de Administradores dos Services.
OPER_ADMIN_REACHED_LIMIT
Desculpe, você pode ter apenas %d Administradores dos Services.
OPER_ADMIN_ADDED
%s adicionado à lista de Administradores dos Services.
OPER_ADMIN_NOT_FOUND
%s não encontrado na lista de Administradores dos Services.
OPER_ADMIN_NO_MATCH
Nenhum resultado encontrado na lista de Administradores dos Services.
OPER_ADMIN_DELETED
%s removido da lista de Administradores dos Services.
OPER_ADMIN_DELETED_ONE
Removida 1 entrada da lista de Administradores dos Services.
OPER_ADMIN_DELETED_SEVERAL
Removidas %d entradas da lista de Administradores dos Services.
OPER_ADMIN_LIST_EMPTY
A lista de Administradores dos Services está vazia.
OPER_ADMIN_LIST_HEADER
Lista de Administradores dos Services:
Núm Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Lista de Administradores dos Services foi apagada.
OPER_ADMIN_MOVED
%s foi movido para a lista de Administradores dos Services.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | lista]
OPER_OPER_SKELETON
Services estão no modo esqueleto; o comando OPER não está disponível.
OPER_OPER_EXISTS
%s já está na lista de Operadores dos Services.
OPER_OPER_REACHED_LIMIT
Desculpe, você pode ter apenas %d Operadores dos Services.
OPER_OPER_ADDED
%s adicionado à lista de Operadores dos Services.
OPER_OPER_NOT_FOUND
%s não encontrado na lista de Operadores dos Services.
OPER_OPER_NO_MATCH
Nenhum resultado equivalente na lista de Operadores dos Services.
OPER_OPER_DELETED
%s removido da lista de Operadores dos Services.
OPER_OPER_DELETED_ONE
Removida 1 entrada da lista de Operadores dos Services.
OPER_OPER_DELETED_SEVERAL
Removidas %d entradas da lista de Operadores dos Services.
OPER_OPER_LIST_EMPTY
A lista de Operadores dos Services está vazia.
OPER_OPER_LIST_HEADER
Lista de Operadores dos Services:
Núm Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
A lista de Operadores dos Services foi apagada.
OPER_OPER_MOVED
%s foi movido para a lista de Operadores dos Services.
# AKILL responses
OPER_AKILL_SYNTAX
-66
View File
@@ -2565,72 +2565,6 @@ OPER_SVSNICK_SYNTAX
OPER_SVSNICK_NEWNICK
Íèê ïîëüçîâàòåëÿ %s áûë èçìåíåí íà %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [íèê | íîìåð_çàïèñè]
OPER_ADMIN_SKELETON
Ñåðâèñû ðàáîòàþò â skeleton-ðåæèìå, êîìàíäà ADMIN íåäîñòóïíà.
OPER_ADMIN_EXISTS
Íèê %s óæå ïðèñóòñòâóåò â ñïèñêå Àäìèíèñòðàòîðîâ ñåðâèñîâ.
OPER_ADMIN_REACHED_LIMIT
Êîëè÷åñòâî çàïèñåé â ñïèñêå Àäìèíèñòðàòîðîâ ñåðâèñîâ íå ìîæåò ïðåâûøàòü %d.
OPER_ADMIN_ADDED
Ïîëüçîâàòåëü %s óñïåøíî äîáàâëåí â ñïèñîê Àäìèíèñòðàòîðîâ ñåðâèñîâ.
OPER_ADMIN_NOT_FOUND
Ïîëüçîâàòåëü %s â ñïèñêå Àäìèíèñòðàòîðîâ ñåðâèñîâ íå îáíàðóæåí.
OPER_ADMIN_NO_MATCH
Ñîâïàäàþùèõ çàïèñåé íå îáíàðóæåíî.
OPER_ADMIN_DELETED
Ïîëüçîâàòåëü %s óñïåøíî óäàëåí èç ñïèñêà Àäìèíèñòðàòîðîâ ñåðâèñîâ.
OPER_ADMIN_DELETED_ONE
Óäàëåíà 1 çàïèñü èç ñïèñêà Àäìèíèñòðàòîðîâ ñåðâèñîâ.
OPER_ADMIN_DELETED_SEVERAL
Óäàëåíî %d çàïèñåé èç ñïèñêà Àäìèíèñòðàòîðîâ ñåðâèñîâ.
OPER_ADMIN_LIST_EMPTY
Ñïèñîê Àäìèíèñòðàòîðîâ ñåðâèñîâ ïóñò.
OPER_ADMIN_LIST_HEADER
Ñïèñîê Àäìèíèñòðàòîðîâ ñåðâèñîâ:
No. Íèê
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Ñïèñîê Àäìèíèñòðàòîðîâ ñåðâèñîâ ïîëíîñòüþ î÷èùåí.
OPER_ADMIN_MOVED
Ïîëüçîâàòåëü %s óñïåøíî ïåðåìåùåí â ñïèñîê Àäìèíèñòðàòîðîâ ñåðâèñîâ.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [íèê | íîìåð_çàïèñè]
OPER_OPER_SKELETON
Ñåðâèñû ðàáîòàþò â skeleton-ðåæèìå, êîìàíäà OPER íåäîñòóïíà.
OPER_OPER_EXISTS
Íèê %s óæå ïðèñóòñòâóåò â ñïèñêå Îïåðàòîðîâ ñåðâèñîâ.
OPER_OPER_REACHED_LIMIT
Êîëè÷åñòâî çàïèñåé â ñïèñêå Îïåðàòîðîâ ñåðâèñîâ íå ìîæåò ïðåâûøàòü %d.
OPER_OPER_ADDED
Ïîëüçîâàòåëü %s óñïåøíî äîáàâëåí â ñïèñîê Îïåðàòîðîâ ñåðâèñîâ.
OPER_OPER_NOT_FOUND
Ïîëüçîâàòåëü %s â ñïèñêå Îïåðàòîðîâ ñåðâèñîâ íå îáíàðóæåí.
OPER_OPER_NO_MATCH
Ñîâïàäàþùèõ çàïèñåé íå îáíàðóæåíî.
OPER_OPER_DELETED
Ïîëüçîâàòåëü %s óñïåøíî óäàëåí èç ñïèñêà Îïåðàòîðîâ ñåðâèñîâ.
OPER_OPER_DELETED_ONE
Óäàëåíà 1 çàïèñü èç ñïèñêà Îïåðàòîðîâ ñåðâèñîâ.
OPER_OPER_DELETED_SEVERAL
Óäàëåíî %d çàïèñåé èç ñïèñêà Îïåðàòîðîâ ñåðâèñîâ.
OPER_OPER_LIST_EMPTY
Ñïèñîê Îïåðàòîðîâ ñåðâèñîâ ïóñò.
OPER_OPER_LIST_HEADER
Ñïèñîê Îïåðàòîðîâ ñåðâèñîâ:
No. Íèê
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Ñïèñîê Îïåðàòîðîâ ñåðâèñîâ ïîëíîñòüþ î÷èùåí.
OPER_OPER_MOVED
%s áûë ïåðåìåùåí â ñïèñîê Îïåðàòîðîâ Ñåðâèñîâ.
# AKILL responses
OPER_AKILL_SYNTAX
AKILL {ADD|DEL|LIST|VIEW|CLEAR} [[+âðåìÿ_èñòå÷åíèÿ] {ìàñêà | íîìåð_çàïèñè} [ïðè÷èíà]]
-66
View File
@@ -2647,72 +2647,6 @@ OPER_SVSNICK_SYNTAX
SVSNICK nick newnick
OPER_SVSNICK_NEWNICK
The nick %s is now being changed to %s.
# ADMIN responses
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [nick | kayýt-listesi]
OPER_ADMIN_SKELETON
Servisler iskelet modunda(skeleton); ADMIN komutu devre dýþý.
OPER_ADMIN_EXISTS
%s zaten Servis adminleri listesinde.
OPER_ADMIN_REACHED_LIMIT
Sadece %d tane servis admini olabilir.
OPER_ADMIN_ADDED
%s Servis adminleri listesine eklendi.
OPER_ADMIN_NOT_FOUND
%s Servisler admin listesinde bulunamadý.
OPER_ADMIN_NO_MATCH
Servis adminleri listesinde uyuþan kayýt yok.
OPER_ADMIN_DELETED
%s servis adminleri listesinden silindi.
OPER_ADMIN_DELETED_ONE
Servis adminleri listesinden 1 kayýt silindi.
OPER_ADMIN_DELETED_SEVERAL
Servis adminleri listesinden %d kayýt silindi.
OPER_ADMIN_LIST_EMPTY
Servis adminleri listesi boþ.
OPER_ADMIN_LIST_HEADER
Servis adminleri listesi:
Num Nick
OPER_ADMIN_LIST_FORMAT
%3d %s
OPER_ADMIN_CLEAR
Servis adminleri listesi temizlendi.
OPER_ADMIN_MOVED
%s has been moved to Services Administrators list.
# OPER responses
OPER_OPER_SYNTAX
OPER {ADD|DEL|LIST|CLEAR} [nick | kayýt-listesi]
OPER_OPER_SKELETON
Servisler iskelet modunda(skeleton); OPER komutu devre dýþý.
OPER_OPER_EXISTS
%s zaten servis operatörleri listesinde.
OPER_OPER_REACHED_LIMIT
Sadece %d tane servis operatörü olabilir.
OPER_OPER_ADDED
%s servis operatörleri listesine eklendi.
OPER_OPER_NOT_FOUND
%s servis operatörleri listesinde bulunamadý.
OPER_OPER_NO_MATCH
Servis operatörleri listesinde uyuþan kayýt bulunamadý.
OPER_OPER_DELETED
%s servis operatörleri listesinden silindi.
OPER_OPER_DELETED_ONE
Servis operatörleri listesinden 1 kayýt silindi.
OPER_OPER_DELETED_SEVERAL
Servis operatörleri listesinden %d kayýt silindi.
OPER_OPER_LIST_EMPTY
Servis operatörleri listesi boþ.
OPER_OPER_LIST_HEADER
Servis operatörleri listesi:
Num Nick
OPER_OPER_LIST_FORMAT
%3d %s
OPER_OPER_CLEAR
Servis operatörleri listesi temizlendi.
OPER_OPER_MOVED
%s has been moved to Services Operators list.
# AKILL responses
OPER_AKILL_SYNTAX
+13 -25
View File
@@ -151,9 +151,6 @@ bool AnonymousGlobal;
bool RestrictOperNicks;
char *GlobalOnCycleMessage;
char *GlobalOnCycleUP;
static char *ServicesRoot;
char **ServicesRoots;
int RootNumber;
bool SuperAdmin;
bool LogBot;
bool LogMaxUsers;
@@ -896,7 +893,6 @@ int ServerConfig::Read(bool bail)
{"operserv", "newsdatabase", "news.db", new ValueContainerChar(&NewsDBName), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "exceptiondatabase", "exception.db", new ValueContainerChar(&ExceptionDBName), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "modules", "", new ValueContainerChar(&OperCoreModules), DT_CHARPTR, NoValidation},
{"operserv", "servicesroot", "", new ValueContainerChar(&ServicesRoot), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "superadmin", "no", new ValueContainerBool(&SuperAdmin), DT_BOOLEAN, NoValidation},
{"operserv", "logmaxusers", "no", new ValueContainerBool(&LogMaxUsers), DT_BOOLEAN, NoValidation},
{"operserv", "autokillexpiry", "0", new ValueContainerTime(&AutokillExpiry), DT_TIME, ValidateNotZero},
@@ -1617,7 +1613,20 @@ int read_config(int reload)
int retval = 1;
char *s;
int defconCount = 0;
std::list<std::pair<std::string, std::string> >::iterator it;
NickCore *nc;
std::string nick;
/* Clear current opers for reload */
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
nick = it->first;
if ((nc = findcore(nick.c_str())))
nc->ot = NULL;
}
svsopers_in_config.clear();
retval = serverConfig.Read(reload ? false : true);
if (!retval) return 0; // Temporary until most of the below is modified to use the new parser -- CyberBotX
@@ -1747,27 +1756,6 @@ int read_config(int reload)
}
}
/* Services Root building */
if (ServicesRoot && !reload) { /* Check to prevent segmentation fault if it's missing */
RootNumber = 0;
s = strtok(ServicesRoot, " ");
do {
if (s) {
RootNumber++;
ServicesRoots =
static_cast<char **>(realloc(ServicesRoots, sizeof(char *) * RootNumber));
ServicesRoots[RootNumber - 1] = sstrdup(s);
}
} while ((s = strtok(NULL, " ")));
}
if (!RootNumber) {
error(0, "No ServicesRoot defined");
retval = 0;
}
/* Ulines */
if (UlineServers) {
+5 -30
View File
@@ -35,6 +35,7 @@ class CommandNSGroup : public Command
char tsbuf[16];
char modes[512];
int len;
std::list<std::pair<std::string, std::string> >::iterator it;
if (NSEmailReg && findrequestnick(u->nick))
{
@@ -61,25 +62,11 @@ class CommandNSGroup : public Command
if (RestrictOperNicks)
{
for (i = 0; i < RootNumber; ++i)
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
if (stristr(u->nick, ServicesRoots[i]) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
}
}
for (i = 0; i < servadmins.count && (nc = static_cast<NickCore *>(servadmins.list[i])); ++i)
{
if (stristr(u->nick, nc->display) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
}
}
for (i = 0; i < servopers.count && (nc = static_cast<NickCore *>(servopers.list[i])); ++i)
{
if (stristr(u->nick, nc->display) && !is_oper(u))
const std::string nick = it->first;
if (stristr(u->nick, const_cast<char *>(it->first.c_str())) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
@@ -141,18 +128,6 @@ class CommandNSGroup : public Command
na->time_registered = na->last_seen = time(NULL);
na->status = static_cast<int16>(NS_IDENTIFIED | NS_RECOGNIZED);
if (!(na->nc->flags & NI_SERVICES_ROOT))
{
for (i = 0; i < RootNumber; ++i)
{
if (!stricmp(ServicesRoots[i], u->nick))
{
na->nc->flags |= NI_SERVICES_ROOT;
break;
}
}
}
u->nc = na->nc;
FOREACH_MOD(I_OnNickGroup, OnNickGroup(u, target));
+5 -26
View File
@@ -44,14 +44,6 @@ class CommandNSConfirm : public Command
na->status = static_cast<int16>(NS_IDENTIFIED | NS_RECOGNIZED);
na->nc->flags |= NSDefFlags;
for (i = 0; i < RootNumber; ++i)
{
if (!stricmp(ServicesRoots[i], nr->nick))
{
na->nc->flags |= NI_SERVICES_ROOT;
break;
}
}
na->nc->memos.memomax = MSMaxMemos;
@@ -225,6 +217,7 @@ class CommandNSRegister : public CommandNSConfirm
'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
};
std::list<std::pair<std::string, std::string> >::iterator it;
if (readonly)
{
@@ -269,25 +262,11 @@ class CommandNSRegister : public CommandNSConfirm
if (RestrictOperNicks)
{
for (i = 0; i < RootNumber; ++i)
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
if (stristr(u->nick, ServicesRoots[i]) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
}
}
for (i = 0; i < servadmins.count && (nc = static_cast<NickCore *>(servadmins.list[i])); ++i)
{
if (stristr(u->nick, nc->display) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
}
}
for (i = 0; i < servopers.count && (nc = static_cast<NickCore *>(servopers.list[i])); ++i)
{
if (stristr(u->nick, nc->display) && !is_oper(u))
const std::string nick = it->first;
if (stristr(u->nick, const_cast<char *>(it->first.c_str())) && !is_oper(u))
{
notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick);
return MOD_CONT;
-270
View File
@@ -1,270 +0,0 @@
/* OperServ core functions
*
* (C) 2003-2009 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int admin_list_callback(SList *slist, int number, void *item, va_list args);
int admin_list(int number, NickCore *nc, User *u, int *sent_header);
class CommandOSAdmin : public Command
{
private:
CommandReturn DoAdd(User *u, std::vector<std::string> &params)
{
NickAlias *na;
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
int res = 0;
if (!nick)
{
this->OnSyntaxError(u);
return MOD_CONT;
}
if (!(na = findnick(nick)))
{
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return MOD_CONT;
}
if (na->status & NS_FORBIDDEN)
{
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return MOD_CONT;
}
if (na->nc->flags & NI_SERVICES_ADMIN || slist_indexof(&servadmins, na->nc) != -1)
{
notice_lang(s_OperServ, u, OPER_ADMIN_EXISTS, nick);
return MOD_CONT;
}
res = slist_add(&servadmins, na->nc);
if (res == -2)
{
notice_lang(s_OperServ, u, OPER_ADMIN_REACHED_LIMIT, nick);
return MOD_CONT;
}
else
{
if (na->nc->flags & NI_SERVICES_OPER && (res = slist_indexof(&servopers, na->nc)) != -1)
{
slist_delete(&servopers, res);
na->nc->flags |= NI_SERVICES_ADMIN;
notice_lang(s_OperServ, u, OPER_ADMIN_MOVED, nick);
}
else
{
na->nc->flags |= NI_SERVICES_ADMIN;
notice_lang(s_OperServ, u, OPER_ADMIN_ADDED, nick);
}
}
if (readonly)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
return MOD_CONT;
}
CommandReturn DoDel(User *u, std::vector<std::string> &params)
{
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
NickAlias *na;
int res = 0;
if (!nick)
{
this->OnSyntaxError(u);
return MOD_CONT;
}
if (!servadmins.count)
{
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_EMPTY);
return MOD_CONT;
}
if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick))
{
/* Deleting a range */
res = slist_delete_range(&servadmins, nick, NULL);
if (!res)
{
notice_lang(s_OperServ, u, OPER_ADMIN_NO_MATCH);
return MOD_CONT;
}
else if (res == 1)
notice_lang(s_OperServ, u, OPER_ADMIN_DELETED_ONE);
else
notice_lang(s_OperServ, u, OPER_ADMIN_DELETED_SEVERAL, res);
}
else
{
if (!(na = findnick(nick)))
{
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return MOD_CONT;
}
if (na->status & NS_FORBIDDEN)
{
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return MOD_CONT;
}
if (!(na->nc->flags & NI_SERVICES_ADMIN) || (res = slist_indexof(&servadmins, na->nc)) == -1)
{
notice_lang(s_OperServ, u, OPER_ADMIN_NOT_FOUND, nick);
return MOD_CONT;
}
slist_delete(&servadmins, res);
notice_lang(s_OperServ, u, OPER_ADMIN_DELETED, nick);
}
if (readonly)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
return MOD_CONT;
}
CommandReturn DoList(User *u, std::vector<std::string> &params)
{
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
int sent_header = 0, res = 0;
if (!servadmins.count)
{
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_EMPTY);
return MOD_CONT;
}
if (!nick || (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)))
{
res = slist_enum(&servadmins, nick, &admin_list_callback, u, &sent_header);
if (!res)
{
notice_lang(s_OperServ, u, OPER_ADMIN_NO_MATCH);
return MOD_CONT;
}
else
notice_lang(s_OperServ, u, END_OF_ANY_LIST, "Admin");
}
else
{
int i;
for (i = 0; i < servadmins.count; ++i) {
if (!stricmp(nick, (static_cast<NickCore *>(servadmins.list[i]))->display) || Anope::Match((static_cast<NickCore *>(servadmins.list[i]))->display, nick, false))
admin_list(i + 1, static_cast<NickCore *>(servadmins.list[i]), u, &sent_header);
}
if (!sent_header)
notice_lang(s_OperServ, u, OPER_ADMIN_NO_MATCH);
else
notice_lang(s_OperServ, u, END_OF_ANY_LIST, "Admin");
}
return MOD_CONT;
}
CommandReturn DoClear(User *u, std::vector<std::string> &params)
{
if (!servadmins.count)
{
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_EMPTY);
return MOD_CONT;
}
slist_clear(&servadmins, 1);
notice_lang(s_OperServ, u, OPER_ADMIN_CLEAR);
return MOD_CONT;
}
public:
CommandOSAdmin() : Command("ADMIN", 1, 2, "operserv/admin")
{
}
CommandReturn Execute(User *u, std::vector<std::string> &params)
{
const char *cmd = params[0].c_str();
if (!stricmp(cmd, "ADD"))
return this->DoAdd(u, params);
else if (!stricmp(cmd, "DEL"))
return this->DoDel(u, params);
else if (!stricmp(cmd, "LIST"))
return this->DoList(u, params);
else if (!stricmp(cmd, "CLEAR"))
return this->DoClear(u, params);
else
this->OnSyntaxError(u);
return MOD_CONT;
}
bool OnHelp(User *u, const std::string &subcommand)
{
notice_help(s_OperServ, u, OPER_HELP_ADMIN, s_NickServ);
return true;
}
void OnSyntaxError(User *u)
{
syntax_error(s_OperServ, u, "ADMIN", OPER_ADMIN_SYNTAX);
}
};
class OSAdmin : public Module
{
public:
OSAdmin(const std::string &modname, const std::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetVersion("$Id$");
this->SetType(CORE);
this->AddCommand(OPERSERV, new CommandOSAdmin(), MOD_UNIQUE);
}
void OperServHelp(User *u)
{
notice_lang(s_OperServ, u, OPER_HELP_CMD_ADMIN);
}
};
int admin_list_callback(SList *slist, int number, void *item, va_list args)
{
User *u = va_arg(args, User *);
int *sent_header = va_arg(args, int *);
return admin_list(number, static_cast<NickCore *>(item), u, sent_header);
}
int admin_list(int number, NickCore *nc, User *u, int *sent_header)
{
if (!nc)
return 0;
if (!*sent_header)
{
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_HEADER);
*sent_header = 1;
}
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_FORMAT, number, nc->display);
return 1;
}
MODULE_INIT("os_admin", OSAdmin)
-273
View File
@@ -1,273 +0,0 @@
/* OperServ core functions
*
* (C) 2003-2009 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int oper_list_callback(SList *slist, int number, void *item, va_list args);
int oper_list(int number, NickCore *nc, User *u, int *sent_header);
class CommandOSOper : public Command
{
private:
CommandReturn DoAdd(User *u, std::vector<std::string> &params)
{
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
NickAlias *na;
int res = 0;
if (!nick)
{
this->OnSyntaxError(u);
return MOD_CONT;
}
if (!(na = findnick(nick)))
{
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return MOD_CONT;
}
if (na->status & NS_FORBIDDEN)
{
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return MOD_CONT;
}
if (na->nc->flags & NI_SERVICES_OPER || slist_indexof(&servopers, na->nc) != -1)
{
notice_lang(s_OperServ, u, OPER_OPER_EXISTS, nick);
return MOD_CONT;
}
res = slist_add(&servopers, na->nc);
if (res == -2)
{
notice_lang(s_OperServ, u, OPER_OPER_REACHED_LIMIT, nick);
return MOD_CONT;
}
else
{
if (na->nc->flags & NI_SERVICES_ADMIN && (res = slist_indexof(&servadmins, na->nc)) != -1)
{
slist_delete(&servadmins, res);
na->nc->flags |= NI_SERVICES_OPER;
notice_lang(s_OperServ, u, OPER_OPER_MOVED, nick);
}
else
{
na->nc->flags |= NI_SERVICES_OPER;
notice_lang(s_OperServ, u, OPER_OPER_ADDED, nick);
}
}
if (readonly)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
return MOD_CONT;
}
CommandReturn DoDel(User *u, std::vector<std::string> &params)
{
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
NickAlias *na;
int res = 0;
if (!nick)
{
this->OnSyntaxError(u);
return MOD_CONT;
}
if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick))
{
/* Deleting a range */
res = slist_delete_range(&servopers, nick, NULL);
if (res == 0)
{
notice_lang(s_OperServ, u, OPER_OPER_NO_MATCH);
return MOD_CONT;
}
else if (res == 1)
notice_lang(s_OperServ, u, OPER_OPER_DELETED_ONE);
else
notice_lang(s_OperServ, u, OPER_OPER_DELETED_SEVERAL, res);
}
else
{
if (!(na = findnick(nick)))
{
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return MOD_CONT;
}
if (na->status & NS_FORBIDDEN)
{
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return MOD_CONT;
}
if (!(na->nc->flags & NI_SERVICES_OPER) || (res = slist_indexof(&servopers, na->nc)) == -1)
{
notice_lang(s_OperServ, u, OPER_OPER_NOT_FOUND, nick);
return MOD_CONT;
}
slist_delete(&servopers, res);
notice_lang(s_OperServ, u, OPER_OPER_DELETED, nick);
}
if (readonly)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
return MOD_CONT;
}
CommandReturn DoList(User *u, std::vector<std::string> &params)
{
int sent_header = 0;
const char *nick = params.size() > 1 ? params[1].c_str() : NULL;
int res = 0;
if (!is_oper(u))
{
notice_lang(s_OperServ, u, ACCESS_DENIED);
return MOD_CONT;
}
if (!servopers.count)
{
notice_lang(s_OperServ, u, OPER_OPER_LIST_EMPTY);
return MOD_CONT;
}
if (!nick || (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)))
{
int res = slist_enum(&servopers, nick, &oper_list_callback, u, &sent_header);
if (!res)
{
notice_lang(s_OperServ, u, OPER_OPER_NO_MATCH);
return MOD_CONT;
}
else
notice_lang(s_OperServ, u, END_OF_ANY_LIST, "Oper");
}
else
{
int i;
for (i = 0; i < servopers.count; ++i)
{
if (!stricmp(nick, (static_cast<NickCore *>(servopers.list[i]))->display) || Anope::Match((static_cast<NickCore *>(servopers.list[i]))->display, nick, false))
oper_list(i + 1, static_cast<NickCore *>(servopers.list[i]), u, &sent_header);
}
if (!sent_header)
notice_lang(s_OperServ, u, OPER_OPER_NO_MATCH);
else
notice_lang(s_OperServ, u, END_OF_ANY_LIST, "Oper");
}
return MOD_CONT;
}
CommandReturn DoClear(User *u, std::vector<std::string> &params)
{
if (!servopers.count)
{
notice_lang(s_OperServ, u, OPER_OPER_LIST_EMPTY);
return MOD_CONT;
}
slist_clear(&servopers, 1);
notice_lang(s_OperServ, u, OPER_OPER_CLEAR);
return MOD_CONT;
}
public:
CommandOSOper() : Command("OPER", 1, 2, "operserv/oper")
{
}
CommandReturn Execute(User *u, std::vector<std::string> &params)
{
const char *cmd = params[0].c_str();
if (!stricmp(cmd, "ADD"))
return this->DoAdd(u, params);
else if (!stricmp(cmd, "DEL"))
return this->DoDel(u, params);
else if (!stricmp(cmd, "LIST"))
return this->DoList(u, params);
else if (!stricmp(cmd, "CLEAR"))
return this->DoClear(u, params);
else
this->OnSyntaxError(u);
return MOD_CONT;
}
bool OnHelp(User *u, const std::string &subcommand)
{
notice_help(s_OperServ, u, OPER_HELP_OPER, s_NickServ);
return true;
}
void OnSyntaxError(User *u)
{
syntax_error(s_OperServ, u, "OPER", OPER_OPER_SYNTAX);
}
};
class OSOper : public Module
{
public:
OSOper(const std::string &modname, const std::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetVersion("$Id$");
this->SetType(CORE);
this->AddCommand(OPERSERV, new CommandOSOper(), MOD_UNIQUE);
}
void OperServHelp(User *u)
{
notice_lang(s_OperServ, u, OPER_HELP_CMD_OPER);
}
};
/* Lists an oper entry, prefixing it with the header if needed */
int oper_list(int number, NickCore *nc, User *u, int *sent_header)
{
if (!nc)
return 0;
if (!*sent_header)
{
notice_lang(s_OperServ, u, OPER_OPER_LIST_HEADER);
*sent_header = 1;
}
notice_lang(s_OperServ, u, OPER_OPER_LIST_FORMAT, number, nc->display);
return 1;
}
/* Callback for enumeration purposes */
int oper_list_callback(SList *slist, int number, void *item, va_list args)
{
User *u = va_arg(args, User *);
int *sent_header = va_arg(args, int *);
return oper_list(number, static_cast<NickCore *>(item), u, sent_header);
}
MODULE_INIT("os_oper", OSOper)
+13 -62
View File
@@ -27,42 +27,43 @@ class CommandOSStaff : public Command
CommandReturn Execute(User *u, std::vector<std::string> &params)
{
int idx = 0;
User *au = NULL;
NickCore *nc;
NickAlias *na;
int found;
int i;
std::list<std::pair<std::string, std::string> >::iterator it;
notice_lang(s_OperServ, u, OPER_STAFF_LIST_HEADER);
slist_enum(&servopers, NULL, &opers_list_callback, u, "OPER");
slist_enum(&servadmins, NULL, &opers_list_callback, u, "ADMN");
for (idx = 0; idx < RootNumber; ++idx)
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
found = 0;
if ((au = finduser(ServicesRoots[idx]))) /* see if user is online */
const std::string nick = it->first;
const std::string type = it->second;
if ((au = finduser(nick.c_str())))
{
found = 1;
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, '*', "ROOT", ServicesRoots[idx]);
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, '*', type.c_str(), nick.c_str());
}
else if ((nc = findcore(ServicesRoots[idx])))
else if ((nc = findcore(nick.c_str())))
{
for (i = 0; i < nc->aliases.count; ++i) /* check all aliases */
for (i = 0; i < nc->aliases.count; i++)
{
na = static_cast<NickAlias *>(nc->aliases.list[i]);
if ((au = finduser(na->nick))) /* see if user is online */
if ((au = finduser(na->nick)))
{
found = 1;
notice_lang(s_OperServ, u, OPER_STAFF_AFORMAT, '*', "ROOT", ServicesRoots[idx], na->nick);
notice_lang(s_OperServ, u, OPER_STAFF_AFORMAT, '*', type.c_str(), nick.c_str(), u->nick);
}
}
}
if (!found)
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, ' ', "ROOT", ServicesRoots[idx]);
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, ' ', type.c_str(), nick.c_str());
}
notice_lang(s_OperServ, u, END_OF_ANY_LIST, "Staff");
return MOD_CONT;
}
@@ -91,54 +92,4 @@ class OSStaff : public Module
}
};
/**
* Function for the enumerator to call
**/
int opers_list_callback(SList *slist, int number, void *item, va_list args)
{
User *u = va_arg(args, User *);
char *level = va_arg(args, char *);
return opers_list(number, static_cast<NickCore *>(item), u, level);
}
/**
* Display an Opers list Entry
**/
int opers_list(int number, NickCore *nc, User *u, char *level)
{
User *au = NULL;
NickAlias *na;
int found;
int i;
if (!nc)
return 0;
found = 0;
if ((au = finduser(nc->display))) /* see if user is online */
{
found = 1;
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, '*', level, nc->display);
}
else
{
for (i = 0; i < nc->aliases.count; ++i) /* check all aliases */
{
na = static_cast<NickAlias *>(nc->aliases.list[i]);
if ((au = finduser(na->nick))) /* see if user is online */
{
found = 1;
notice_lang(s_OperServ, u, OPER_STAFF_AFORMAT, '*', level, nc->display, na->nick);
}
}
}
if (!found)
notice_lang(s_OperServ, u, OPER_STAFF_FORMAT, ' ', level, nc->display);
return 1;
}
MODULE_INIT("os_staff", OSStaff)
+10 -8
View File
@@ -243,14 +243,16 @@ int m_stats(const char *source, int ac, const char **av)
if (u && !is_oper(u) && HideStatsO) {
ircdproto->SendNumeric(ServerName, 219, source, "%c :End of /STATS report.", *av[0] ? *av[0] : '*');
} else {
for (i = 0; i < RootNumber; i++)
ircdproto->SendNumeric(ServerName, 243, source, "O * * %s Root 0", ServicesRoots[i]);
for (i = 0; i < servadmins.count && (nc = static_cast<NickCore *>(servadmins.list[i]));
i++)
ircdproto->SendNumeric(ServerName, 243, source, "O * * %s Admin 0", nc->display);
for (i = 0; i < servopers.count && (nc = static_cast<NickCore *>(servopers.list[i]));
i++)
ircdproto->SendNumeric(ServerName, 243, source, "O * * %s Oper 0", nc->display);
std::list<std::pair<std::string, std::string> >::iterator it;
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
const std::string nick = it->first;
const std::string type = it->second;
if ((nc = findcore(it->first.c_str())))
ircdproto->SendNumeric(ServerName, 243, source, "O * * %s %s 0", it->first.c_str(), it->second.c_str());
}
ircdproto->SendNumeric(ServerName, 219, source, "%c :End of /STATS report.", *av[0] ? *av[0] : '*');
}
+7 -8
View File
@@ -818,9 +818,9 @@ void my_memo_lang(User *u, char *name, int z, int number, ...)
void req_send_memos(User *u, char *vIdent, char *vHost)
{
int i;
int z = 2;
char host[50];
char host[BUFSIZE];
std::list<std::pair<std::string, std::string> >::iterator it;
if (checkDefCon(DEFCON_NO_NEW_MEMOS))
return;
@@ -832,12 +832,11 @@ void req_send_memos(User *u, char *vIdent, char *vHost)
if (HSRequestMemoOper == 1)
{
for (i = 0; i < servopers.count; ++i)
my_memo_lang(u, (static_cast<NickCore *>(servopers.list[i]))->display, z, LNG_REQUEST_MEMO, host);
for (i = 0; i < servadmins.count; ++i)
my_memo_lang(u, (static_cast<NickCore *>(servadmins.list[i]))->display, z, LNG_REQUEST_MEMO, host);
for (i = 0; i < RootNumber; ++i)
my_memo_lang(u, ServicesRoots[i], z, LNG_REQUEST_MEMO, host);
for (it = svsopers_in_config.begin(); it != svsopers_in_config.end(); it++)
{
const std::string nick = it->first;
my_memo_lang(u, const_cast<char *>(nick.c_str()), z, LNG_REQUEST_MEMO, host);
}
}
if (HSRequestMemoSetters == 1)
{
-14
View File
@@ -355,13 +355,6 @@ void load_ns_dbase()
nc->flags &= ~NI_KILL_IMMED;
SAFE(read_int16(&nc->language, f));
/* Add services opers and admins to the appropriate list, but
only if the database version is more than 10. */
if (nc->flags & NI_SERVICES_ADMIN)
slist_add(&servadmins, nc);
if (nc->flags & NI_SERVICES_OPER)
slist_add(&servopers, nc);
uint16 accesscount;
SAFE(read_int16(&accesscount, f));
if (accesscount)
@@ -441,8 +434,6 @@ void load_ns_dbase()
na->last_realname = sstrdup("");
}
na->nc->flags &= ~NI_SERVICES_ROOT;
*nalast = na;
nalast = &na->next;
na->prev = naprev;
@@ -470,10 +461,6 @@ void load_ns_dbase()
continue;
}
/* Add the Services root flag if needed. */
for (j = 0; j < RootNumber; j++)
if (!stricmp(ServicesRoots[j], na->nick))
na->nc->flags |= NI_SERVICES_ROOT;
}
}
}
@@ -1121,7 +1108,6 @@ static int delcore(NickCore * nc)
int i;
/* (Hopefully complete) cleanup */
cs_remove_nick(nc);
os_remove_nick(nc);
/* Remove the core from the list */
if (nc->next)
-73
View File
@@ -17,22 +17,11 @@
/*************************************************************************/
/* List of Services administrators */
SList servadmins;
/* List of Services operators */
SList servopers;
/* AKILL, SGLINE, SQLINE and SZLINE lists */
SList akills, sglines, sqlines, szlines;
/*************************************************************************/
static int compare_adminlist_entries(SList * slist, void *item1,
void *item2);
static int compare_operlist_entries(SList * slist, void *item1,
void *item2);
static void free_adminlist_entry(SList * slist, void *item);
static void free_operlist_entry(SList * slist, void *item);
static int is_akill_entry_equal(SList * slist, void *item1, void *item2);
static void free_akill_entry(SList * slist, void *item);
static int is_sgline_entry_equal(SList * slist, void *item1, void *item2);
@@ -60,13 +49,8 @@ void moduleAddOperServCmds();
/* Options for the lists */
SListOpts akopts = { 0, NULL, &is_akill_entry_equal, &free_akill_entry };
SListOpts saopts = { SLISTF_SORT, &compare_adminlist_entries, NULL,
&free_adminlist_entry
};
SListOpts sgopts = { 0, NULL, &is_sgline_entry_equal, &free_sgline_entry };
SListOpts soopts =
{ SLISTF_SORT, &compare_operlist_entries, NULL, &free_operlist_entry };
SListOpts sqopts =
{ SLISTF_SORT, NULL, &is_sqline_entry_equal, &free_sqline_entry };
SListOpts szopts = { 0, NULL, &is_szline_entry_equal, &free_szline_entry };
@@ -87,12 +71,6 @@ void os_init()
{
moduleAddOperServCmds();
/* Initialization of the lists */
slist_init(&servadmins);
servadmins.opts = &saopts;
slist_init(&servopers);
servopers.opts = &soopts;
slist_init(&akills);
akills.opts = &akopts;
@@ -332,15 +310,6 @@ void save_os_dbase()
#undef SAFE
/*************************************************************************/
/* Removes the nick structure from OperServ lists. */
void os_remove_nick(NickCore * nc)
{
slist_remove(&servadmins, nc);
slist_remove(&servopers, nc);
}
/*************************************************************************/
/*********************** OperServ command functions **********************/
@@ -1204,48 +1173,6 @@ static int is_szline_entry_equal(SList * slist, void *item1, void *item2)
/*************************************************************************/
/* Callback function used to sort the admin list */
static int compare_adminlist_entries(SList * slist, void *item1,
void *item2)
{
NickCore *nc1 = static_cast<NickCore *>(item1), *nc2 = static_cast<NickCore *>(item2);
if (!nc1 || !nc2)
return -1; /* To tell to continue */
return stricmp(nc1->display, nc2->display);
}
/* Callback function used when an admin list entry is deleted */
static void free_adminlist_entry(SList * slist, void *item)
{
NickCore *nc = static_cast<NickCore *>(item);
nc->flags &= ~NI_SERVICES_ADMIN;
}
/*************************************************************************/
/* Callback function used to sort the oper list */
static int compare_operlist_entries(SList * slist, void *item1,
void *item2)
{
NickCore *nc1 = static_cast<NickCore *>(item1), *nc2 = static_cast<NickCore *>(item2);
if (!nc1 || !nc2)
return -1; /* To tell to continue */
return stricmp(nc1->display, nc2->display);
}
/* Callback function used when an oper list entry is deleted */
static void free_operlist_entry(SList * slist, void *item)
{
NickCore *nc = static_cast<NickCore *>(item);
nc->flags &= ~NI_SERVICES_OPER;
}
/*************************************************************************/
/**
* Returns 1 if the passed level is part of the CURRENT defcon, else 0 is returned
**/