summaryrefslogtreecommitdiff
path: root/src/modules/os_info.c
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-09 21:01:05 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-09 21:01:05 +0000
commitd7d01bdc5c667a1fafd95241282b58e03b4caa5b (patch)
treef1482d8734da609923c6d8af6bc8fcb0fc187534 /src/modules/os_info.c
parentd49b3a25fda5f597491e73640dd1e76babc240eb (diff)
Squashed commit: merge next (1.9.1) back to trunk.
SVN users, NOTE: THIS WILL NOT BUILD, NOR SHOULD YOU RUN IT YET. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1953 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/os_info.c')
-rw-r--r--src/modules/os_info.c955
1 files changed, 466 insertions, 489 deletions
diff --git a/src/modules/os_info.c b/src/modules/os_info.c
index 765935496..c7560318d 100644
--- a/src/modules/os_info.c
+++ b/src/modules/os_info.c
@@ -42,16 +42,8 @@
char *OSInfoDBName = NULL;
-int myAddNickInfo(User * u);
-int myAddChanInfo(User * u);
-int myNickInfo(User * u);
-int myChanInfo(User * u);
-
-int mNickHelp(User * u);
-int mChanHelp(User * u);
-void mMainChanHelp(User * u);
-void mMainNickHelp(User * u);
-void m_AddLanguages();
+void mMainChanHelp(User *u);
+void mMainNickHelp(User *u);
int mLoadData();
int mSaveData(int argc, char **argv);
@@ -63,12 +55,239 @@ static Module *me;
/*************************************************************************/
+class CommandNSOInfo : public Command
+{
+ private:
+ CommandResult DoAdd(User *u, std::vector<std::string> &params)
+ {
+ const char *nick = params[1].c_str();
+ const char *info = params.size() > 2 ? params[2].c_str() : NULL;
+ NickAlias *na = NULL;
+
+ if (!info)
+ {
+ this->OnSyntaxError(u);
+ return MOD_CONT;
+ }
+
+ if ((na = findnick(nick))) /* ok we've found the user */
+ {
+ /* Add the module data to the user */
+ na->nc->Extend("os_info", sstrdup(info));
+ me->NoticeLang(s_NickServ, u, OINFO_ADD_SUCCESS, nick);
+
+ }
+ else /* NickCore not found! */
+ notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
+
+ return MOD_CONT;
+ }
+
+ CommandResult DoDel(User *u, std::vector<std::string> &params)
+ {
+ const char *nick = params[1].c_str();
+ NickAlias *na = NULL;
+
+ if ((na = findnick(nick))) /* ok we've found the user */
+ {
+ char *c;
+ if (na->nc->GetExt("os_info", c))
+ {
+ delete [] c;
+ na->nc->Shrink("os_info");
+ }
+
+ me->NoticeLang(s_NickServ, u, OINFO_DEL_SUCCESS, nick);
+
+ }
+ else /* NickCore not found! */
+ notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
+
+ return MOD_CONT;
+ }
+ public:
+ CommandNSOInfo() : Command("OINFO", 2, 3)
+ {
+ }
+
+ CommandResult Execute(User *u, std::vector<std::string> &params)
+ {
+ const char *cmd = params[0].c_str();
+
+ if (!strcasecmp(cmd, "ADD"))
+ return this->DoAdd(u, params);
+ else if (!strcasecmp(cmd, "DEL"))
+ return this->DoDel(u, params);
+ else
+ this->OnSyntaxError(u);
+ return MOD_CONT;
+ }
+
+ bool OnHelp(User *u, const std::string &subcommand)
+ {
+ if (!is_oper(u))
+ return false;
+
+ me->NoticeLang(s_NickServ, u, OINFO_HELP);
+ return true;
+ }
+
+ void OnSyntaxError(User *u)
+ {
+ me->NoticeLang(s_NickServ, u, OINFO_SYNTAX);
+ }
+};
+
+class CommandNSInfo : public Command
+{
+ public:
+ CommandNSInfo() : Command("INFO", 1, 1)
+ {
+ }
+
+ CommandResult Execute(User *u, std::vector<std::string> &params)
+ {
+ const char *nick = params[0].c_str();
+ NickAlias *na = NULL;
+
+ if (is_oper(u)) /* Only show our goodies to opers */
+ {
+ if ((na = findnick(nick))) /* ok we've found the user */
+ {
+ /* If we have any info on this user */
+ char *c;
+ if (na->nc->GetExt("os_info", c))
+ {
+ notice_user(s_NickServ, u, " OperInfo: %s", c);
+ }
+ }
+ }
+ return MOD_CONT;
+ }
+
+ void OnSyntaxError(User *u)
+ {
+ // no-op
+ }
+};
+
+class CommandCSOInfo : public Command
+{
+ private:
+ CommandResult DoAdd(User *u, std::vector<std::string> &params)
+ {
+ const char *chan = params[1].c_str();
+ const char *info = params.size() > 2 ? params[2].c_str() : NULL;
+ ChannelInfo *ci = NULL;
+
+ if (!info)
+ {
+ this->OnSyntaxError(u);
+ return MOD_CONT;
+ }
+
+ if ((ci = cs_findchan(chan)))
+ {
+ /* Add the module data to the channel */
+ ci->Extend("os_info", sstrdup(info));
+ me->NoticeLang(s_ChanServ, u, OCINFO_ADD_SUCCESS, chan);
+ }
+ else
+ notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
+
+ return MOD_CONT;
+ }
+
+ CommandResult DoDel(User *u, std::vector<std::string> &params)
+ {
+ const char *chan = params[1].c_str();
+ ChannelInfo *ci = NULL;
+
+ if ((ci = cs_findchan(chan)))
+ {
+ /* Del the module data from the channel */
+ char *c;
+ if (ci->GetExt("os_info", c))
+ {
+ delete [] c;
+ ci->Shrink("os_info");
+ }
+ me->NoticeLang(s_ChanServ, u, OCINFO_DEL_SUCCESS, chan);
+ }
+ else
+ notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
+
+ return MOD_CONT;
+ }
+ public:
+ CommandCSOInfo : Command("OINFO", 2, 3)
+ {
+ }
+
+ CommandResult Execute(User *u, std::vector<std::string> &params)
+ {
+ const char *cmd = params[0].c_str();
+
+ if (!strcasecmp(cmd, "ADD"))
+ return this->DoAdd(u, params);
+ else if (!strcasecmp(cmd, "DEL"))
+ return this->DoDel(u, params);
+ else
+ this->OnSyntaxError(u);
+ return MOD_CONT;
+ }
+
+ bool OnHelp(User *u, const std::string &subcommand)
+ {
+ if (!is_oper(u))
+ return false;
+
+ me->NoticeLang(s_ChanServ, u, OCINFO_HELP);
+ return true;
+ }
+
+ void OnSyntaxError(User *u)
+ {
+ me->NoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
+ }
+};
+
+class CommandCSInfo : public Command
+{
+ public:
+ CommandCSInfo() : Command("INFO", 1, 1)
+ {
+ }
+
+ CommandResult Execute(User *u, std::vector<std::string> &params)
+ {
+ char *chan = params[0].c_str();
+ ChannelInfo *ci = NULL;
+
+ if (is_oper(u)) /* Only show our goodies to opers */
+ {
+ if ((ci = cs_findchan(chan)))
+ {
+ /* If we have any info on this channel */
+ char *c;
+ if (ci->GetExt("os_info", c))
+ notice_user(s_ChanServ, u, " OperInfo: %s", c);
+ }
+ }
+ return MOD_CONT;
+ }
+
+ void OnSyntaxError(User *u)
+ {
+ // no-op
+ }
+};
+
class OSInfo : public Module
{
public:
OSInfo(const std::string &modname, const std::string &creator) : Module(modname, creator)
{
- Command *c;
EvtHook *hook = NULL;
int status;
@@ -82,19 +301,11 @@ class OSInfo : public Module
if (mLoadConfig())
throw ModuleException("Unable to load config");
- c = createCommand("oInfo", myAddNickInfo, is_oper, -1, -1, -1, -1, -1);
- moduleAddHelp(c, mNickHelp);
- status = this->AddCommand(NICKSERV, c, MOD_HEAD);
+ status = this->AddCommand(NICKSERV, new CommandNSOInfo(), MOD_HEAD);
+ status = this->AddCommand(NICKSERV, new CommandNSInfo(), MOD_TAIL);
- c = createCommand("Info", myNickInfo, NULL, -1, -1, -1, -1, -1);
- status = this->AddCommand(NICKSERV, c, MOD_TAIL);
-
- c = createCommand("oInfo", myAddChanInfo, is_oper, -1, -1, -1, -1, -1);
- moduleAddHelp(c, mChanHelp);
- status = this->AddCommand(CHANSERV, c, MOD_HEAD);
-
- c = createCommand("Info", myChanInfo, NULL, -1, -1, -1, -1, -1);
- status = this->AddCommand(CHANSERV, c, MOD_TAIL);
+ status = this->AddCommand(CHANSERV, new CommandCSOInfo(), MOD_HEAD);
+ status = this->AddCommand(CHANSERV, new CommandCSInfo(), MOD_TAIL);
hook = createEventHook(EVENT_DB_SAVING, mSaveData);
status = this->AddEventHook(hook);
@@ -111,208 +322,208 @@ class OSInfo : public Module
mLoadData();
const char* langtable_en_us[] = {
- /* OINFO_SYNTAX */
- "Syntax: OINFO [ADD|DEL] nick <info>",
- /* OINFO_ADD_SUCCESS */
- "OperInfo line has been added to nick %s",
- /* OINFO_DEL_SUCCESS */
- "OperInfo line has been removed from nick %s",
- /* OCINFO_SYNTAX */
- "Syntax: OINFO [ADD|DEL] chan <info>",
- /* OCINFO_ADD_SUCCESS */
- "OperInfo line has been added to channel %s",
- /* OCINFO_DEL_SUCCESS */
- "OperInfo line has been removed from channel %s",
- /* OINFO_HELP */
- "Syntax: OINFO [ADD|DEL] nick <info>\n"
- "Add or Delete Oper information for the given nick\n"
- "This will show up when any oper /ns info nick's the user.\n"
- "and can be used for 'tagging' users etc....",
- /* OCINFO_HELP */
- "Syntax: OINFO [ADD|DEL] chan <info>\n"
- "Add or Delete Oper information for the given channel\n"
- "This will show up when any oper /cs info's the channel.\n"
- "and can be used for 'tagging' channels etc....",
- /* OINFO_HELP_CMD */
- " OINFO Add / Del an OperInfo line to a nick",
- /* OCINFO_HELP_CMD */
- " OINFO Add / Del an OperInfo line to a channel"
+ /* OINFO_SYNTAX */
+ "Syntax: OINFO [ADD|DEL] nick <info>",
+ /* OINFO_ADD_SUCCESS */
+ "OperInfo line has been added to nick %s",
+ /* OINFO_DEL_SUCCESS */
+ "OperInfo line has been removed from nick %s",
+ /* OCINFO_SYNTAX */
+ "Syntax: OINFO [ADD|DEL] chan <info>",
+ /* OCINFO_ADD_SUCCESS */
+ "OperInfo line has been added to channel %s",
+ /* OCINFO_DEL_SUCCESS */
+ "OperInfo line has been removed from channel %s",
+ /* OINFO_HELP */
+ "Syntax: OINFO [ADD|DEL] nick <info>\n"
+ "Add or Delete Oper information for the given nick\n"
+ "This will show up when any oper /ns info nick's the user.\n"
+ "and can be used for 'tagging' users etc....",
+ /* OCINFO_HELP */
+ "Syntax: OINFO [ADD|DEL] chan <info>\n"
+ "Add or Delete Oper information for the given channel\n"
+ "This will show up when any oper /cs info's the channel.\n"
+ "and can be used for 'tagging' channels etc....",
+ /* OINFO_HELP_CMD */
+ " OINFO Add / Del an OperInfo line to a nick",
+ /* OCINFO_HELP_CMD */
+ " OINFO Add / Del an OperInfo line to a channel"
};
const char* langtable_es[] = {
- /* OINFO_SYNTAX */
- "Sintaxis: OINFO [ADD|DEL] nick <info>",
- /* OINFO_ADD_SUCCESS */
- "Una linea OperInfo ha sido agregada al nick %s",
- /* OINFO_DEL_SUCCESS */
- "La linea OperInfo ha sido removida del nick %s",
- /* OCINFO_SYNTAX */
- "Sintaxis: OINFO [ADD|DEL] chan <info>",
- /* OCINFO_ADD_SUCCESS */
- "Linea OperInfo ha sido agregada al canal %s",
- /* OCINFO_DEL_SUCCESS */
- "La linea OperInfo ha sido removida del canal %s",
- /* OINFO_HELP */
- "Sintaxis: OINFO [ADD|DEL] nick <info>\n"
- "Agrega o elimina informacion para Operadores al nick dado\n"
- "Esto se mostrara cuando cualquier operador haga /ns info nick\n"
- "y puede ser usado para 'marcado' de usuarios, etc....",
- /* OCINFO_HELP */
- "Sintaxis: OINFO [ADD|DEL] chan <info>\n"
- "Agrega o elimina informacion para Operadores al canal dado\n"
- "Esto se mostrara cuando cualquier operador haga /cs info canal\n"
- "y puede ser usado para 'marcado' de canales, etc....",
- /* OINFO_HELP_CMD */
- " OINFO Agrega / Elimina una linea OperInfo al nick",
- /* OCINFO_HELP_CMD */
- " OINFO Agrega / Elimina una linea OperInfo al canal"
+ /* OINFO_SYNTAX */
+ "Sintaxis: OINFO [ADD|DEL] nick <info>",
+ /* OINFO_ADD_SUCCESS */
+ "Una linea OperInfo ha sido agregada al nick %s",
+ /* OINFO_DEL_SUCCESS */
+ "La linea OperInfo ha sido removida del nick %s",
+ /* OCINFO_SYNTAX */
+ "Sintaxis: OINFO [ADD|DEL] chan <info>",
+ /* OCINFO_ADD_SUCCESS */
+ "Linea OperInfo ha sido agregada al canal %s",
+ /* OCINFO_DEL_SUCCESS */
+ "La linea OperInfo ha sido removida del canal %s",
+ /* OINFO_HELP */
+ "Sintaxis: OINFO [ADD|DEL] nick <info>\n"
+ "Agrega o elimina informacion para Operadores al nick dado\n"
+ "Esto se mostrara cuando cualquier operador haga /ns info nick\n"
+ "y puede ser usado para 'marcado' de usuarios, etc....",
+ /* OCINFO_HELP */
+ "Sintaxis: OINFO [ADD|DEL] chan <info>\n"
+ "Agrega o elimina informacion para Operadores al canal dado\n"
+ "Esto se mostrara cuando cualquier operador haga /cs info canal\n"
+ "y puede ser usado para 'marcado' de canales, etc....",
+ /* OINFO_HELP_CMD */
+ " OINFO Agrega / Elimina una linea OperInfo al nick",
+ /* OCINFO_HELP_CMD */
+ " OINFO Agrega / Elimina una linea OperInfo al canal"
};
const char* langtable_nl[] = {
- /* OINFO_SYNTAX */
- "Gebruik: OINFO [ADD|DEL] nick <info>",
- /* OINFO_ADD_SUCCESS */
- "OperInfo regel is toegevoegd aan nick %s",
- /* OINFO_DEL_SUCCESS */
- "OperInfo regel is weggehaald van nick %s",
- /* OCINFO_SYNTAX */
- "Gebruik: OINFO [ADD|DEL] kanaal <info>",
- /* OCINFO_ADD_SUCCESS */
- "OperInfo regel is toegevoegd aan kanaal %s",
- /* OCINFO_DEL_SUCCESS */
- "OperInfo regel is weggehaald van kanaal %s",
- /* OINFO_HELP */
- "Gebruik: OINFO [ADD|DEL] nick <info>\n"
- "Voeg een Oper informatie regel toe aan de gegeven nick, of\n"
- "verwijder deze. Deze regel zal worden weergegeven wanneer\n"
- "een oper /ns info nick doet voor deze gebruiker, en kan worden\n"
- "gebruikt om een gebruiker te 'markeren' etc...",
- /* OCINFO_HELP */
- "Gebruik: OINFO [ADD|DEL] kanaal <info>\n"
- "Voeg een Oper informatie regel toe aan de gegeven kanaal, of\n"
- "verwijder deze. Deze regel zal worden weergegeven wanneer\n"
- "een oper /cs info kanaal doet voor dit kanaal, en kan worden\n"
- "gebruikt om een kanaal te 'markeren' etc...",
- /* OINFO_HELP_CMD */
- " OINFO Voeg een OperInfo regel toe aan een nick of verwijder deze",
- /* OCINFO_HELP_CMD */
- " OINFO Voeg een OperInfo regel toe aan een kanaal of verwijder deze"
+ /* OINFO_SYNTAX */
+ "Gebruik: OINFO [ADD|DEL] nick <info>",
+ /* OINFO_ADD_SUCCESS */
+ "OperInfo regel is toegevoegd aan nick %s",
+ /* OINFO_DEL_SUCCESS */
+ "OperInfo regel is weggehaald van nick %s",
+ /* OCINFO_SYNTAX */
+ "Gebruik: OINFO [ADD|DEL] kanaal <info>",
+ /* OCINFO_ADD_SUCCESS */
+ "OperInfo regel is toegevoegd aan kanaal %s",
+ /* OCINFO_DEL_SUCCESS */
+ "OperInfo regel is weggehaald van kanaal %s",
+ /* OINFO_HELP */
+ "Gebruik: OINFO [ADD|DEL] nick <info>\n"
+ "Voeg een Oper informatie regel toe aan de gegeven nick, of\n"
+ "verwijder deze. Deze regel zal worden weergegeven wanneer\n"
+ "een oper /ns info nick doet voor deze gebruiker, en kan worden\n"
+ "gebruikt om een gebruiker te 'markeren' etc...",
+ /* OCINFO_HELP */
+ "Gebruik: OINFO [ADD|DEL] kanaal <info>\n"
+ "Voeg een Oper informatie regel toe aan de gegeven kanaal, of\n"
+ "verwijder deze. Deze regel zal worden weergegeven wanneer\n"
+ "een oper /cs info kanaal doet voor dit kanaal, en kan worden\n"
+ "gebruikt om een kanaal te 'markeren' etc...",
+ /* OINFO_HELP_CMD */
+ " OINFO Voeg een OperInfo regel toe aan een nick of verwijder deze",
+ /* OCINFO_HELP_CMD */
+ " OINFO Voeg een OperInfo regel toe aan een kanaal of verwijder deze"
};
const char* langtable_de[] = {
- /* OINFO_SYNTAX */
- "Syntax: OINFO [ADD|DEL] Nickname <Information>",
- /* OINFO_ADD_SUCCESS */
- "Eine OperInfo Linie wurde zu den Nicknamen %s hinzugefьgt",
- /* OINFO_DEL_SUCCESS */
- "Die OperInfo Linie wurde von den Nicknamen %s enfernt",
- /* OCINFO_SYNTAX */
- "Syntax: OINFO [ADD|DEL] Channel <Information>",
- /* OCINFO_ADD_SUCCESS */
- "Eine OperInfo Linie wurde zu den Channel %s hinzugefьgt",
- /* OCINFO_DEL_SUCCESS */
- "Die OperInfo Linie wurde von den Channel %s enfernt",
- /* OINFO_HELP */
- "Syntax: OINFO [ADD|DEL] Nickname <Information>\n"
- "Addiert oder lцscht eine OperInfo Linie zu den angegebenen\n"
- "Nicknamen.Sie wird angezeigt wenn ein Oper mit /ns info sich\n"
- "ьber den Nicknamen informiert.",
- /* OCINFO_HELP */
- "Syntax: OINFO [ADD|DEL] chan <info>\n"
- "Addiert oder lцscht eine OperInfo Linie zu den angegebenen\n"
- "Channel.Sie wird angezeigt wenn ein Oper mit /cs info sich\n"
- "ьber den Channel informiert.",
- /* OINFO_HELP_CMD */
- " OINFO Addiert / Lцscht eine OperInfo Linie zu / von einen Nicknamen",
- /* OCINFO_HELP_CMD */
- " OINFO Addiert / Lцscht eine OperInfo Linie zu / von einen Channel"
+ /* OINFO_SYNTAX */
+ "Syntax: OINFO [ADD|DEL] Nickname <Information>",
+ /* OINFO_ADD_SUCCESS */
+ "Eine OperInfo Linie wurde zu den Nicknamen %s hinzugefьgt",
+ /* OINFO_DEL_SUCCESS */
+ "Die OperInfo Linie wurde von den Nicknamen %s enfernt",
+ /* OCINFO_SYNTAX */
+ "Syntax: OINFO [ADD|DEL] Channel <Information>",
+ /* OCINFO_ADD_SUCCESS */
+ "Eine OperInfo Linie wurde zu den Channel %s hinzugefьgt",
+ /* OCINFO_DEL_SUCCESS */
+ "Die OperInfo Linie wurde von den Channel %s enfernt",
+ /* OINFO_HELP */
+ "Syntax: OINFO [ADD|DEL] Nickname <Information>\n"
+ "Addiert oder lцscht eine OperInfo Linie zu den angegebenen\n"
+ "Nicknamen.Sie wird angezeigt wenn ein Oper mit /ns info sich\n"
+ "ьber den Nicknamen informiert.",
+ /* OCINFO_HELP */
+ "Syntax: OINFO [ADD|DEL] chan <info>\n"
+ "Addiert oder lцscht eine OperInfo Linie zu den angegebenen\n"
+ "Channel.Sie wird angezeigt wenn ein Oper mit /cs info sich\n"
+ "ьber den Channel informiert.",
+ /* OINFO_HELP_CMD */
+ " OINFO Addiert / Lцscht eine OperInfo Linie zu / von einen Nicknamen",
+ /* OCINFO_HELP_CMD */
+ " OINFO Addiert / Lцscht eine OperInfo Linie zu / von einen Channel"
};
const char* langtable_pt[] = {
- /* OINFO_SYNTAX */
- "Sintaxe: OINFO [ADD|DEL] nick <informaзгo>",
- /* OINFO_ADD_SUCCESS */
- "A linha OperInfo foi adicionada ao nick %s",
- /* OINFO_DEL_SUCCESS */
- "A linha OperInfo foi removida do nick %s",
- /* OCINFO_SYNTAX */
- "Sintaxe: OINFO [ADD|DEL] canal <informaзгo>",
- /* OCINFO_ADD_SUCCESS */
- "A linha OperInfo foi adicionada ao canal %s",
- /* OCINFO_DEL_SUCCESS */
- "A linha OperInfo foi removida do canal %s",
- /* OINFO_HELP */
- "Sintaxe: OINFO [ADD|DEL] nick <informaзгo>\n"
- "Adiciona ou apaga informaзгo para Operadores ao nick fornecido\n"
- "Isto serб mostrado quando qualquer Operador usar /ns info nick\n"
- "e pode ser usado para 'etiquetar' usuбrios etc...",
- /* OCINFO_HELP */
- "Sintaxe: OINFO [ADD|DEL] canal <informaзгo>\n"
- "Adiciona ou apaga informaзгo para Operadores ao canal fornecido\n"
- "Isto serб mostrado quando qualquer Operador usar /cs info canal\n"
- "e pode ser usado para 'etiquetar' canais etc...",
- /* OINFO_HELP_CMD */
- " OINFO Adiciona ou Apaga a linha OperInfo para um nick",
- /* OCINFO_HELP_CMD */
- " OINFO Adiciona ou Apaga a linha OperInfo para um canal"
+ /* OINFO_SYNTAX */
+ "Sintaxe: OINFO [ADD|DEL] nick <informaзгo>",
+ /* OINFO_ADD_SUCCESS */
+ "A linha OperInfo foi adicionada ao nick %s",
+ /* OINFO_DEL_SUCCESS */
+ "A linha OperInfo foi removida do nick %s",
+ /* OCINFO_SYNTAX */
+ "Sintaxe: OINFO [ADD|DEL] canal <informaзгo>",
+ /* OCINFO_ADD_SUCCESS */
+ "A linha OperInfo foi adicionada ao canal %s",
+ /* OCINFO_DEL_SUCCESS */
+ "A linha OperInfo foi removida do canal %s",
+ /* OINFO_HELP */
+ "Sintaxe: OINFO [ADD|DEL] nick <informaзгo>\n"
+ "Adiciona ou apaga informaзгo para Operadores ao nick fornecido\n"
+ "Isto serб mostrado quando qualquer Operador usar /ns info nick\n"
+ "e pode ser usado para 'etiquetar' usuбrios etc...",
+ /* OCINFO_HELP */
+ "Sintaxe: OINFO [ADD|DEL] canal <informaзгo>\n"
+ "Adiciona ou apaga informaзгo para Operadores ao canal fornecido\n"
+ "Isto serб mostrado quando qualquer Operador usar /cs info canal\n"
+ "e pode ser usado para 'etiquetar' canais etc...",
+ /* OINFO_HELP_CMD */
+ " OINFO Adiciona ou Apaga a linha OperInfo para um nick",
+ /* OCINFO_HELP_CMD */
+ " OINFO Adiciona ou Apaga a linha OperInfo para um canal"
};
const char* langtable_ru[] = {
- /* OINFO_SYNTAX */
- "Синтаксис: OINFO ADD|DEL ник тест",
- /* OINFO_ADD_SUCCESS */
- "Опер-Информация для ника %s добавлена",
- /* OINFO_DEL_SUCCESS */
- "Опер-Информация для ника %s была удалена",
- /* OCINFO_SYNTAX */
- "Синтаксис: OINFO ADD|DEL #канал текст",
- /* OCINFO_ADD_SUCCESS */
- "Опер-Информация для канала %s успешно установлена",
- /* OCINFO_DEL_SUCCESS */
- "Опер-Информация для канала %s была удалена",
- /* OINFO_HELP */
- "Синтаксис: OINFO ADD|DEL ник текст\n"
- "Устанавливает или удаляет Опер-Информацию для указанного ника,\n"
- "которая будет показана любому оператору, запрашивающему INFO ника.\n"
- "Может быть использована для 'пометки' пользователей и т. д...",
- /* OCINFO_HELP */
- "Синтаксис: OINFO ADD|DEL #канал текст\n"
- "Устанавливает или удаляет Опер-Информацию для указанного канала,\n"
- "которая будет показана любому оператору, запрашивающему INFO канала.\n"
- "Может быть использована для 'пометки' каналов и т. д...",
- /* OINFO_HELP_CMD */
- " OINFO Добавляет/Удаляет опер-инфо для ника",
- /* OCINFO_HELP_CMD */
- " OINFO Добавляет/Удаляет опер-инфо для канала"
+ /* OINFO_SYNTAX */
+ "Синтаксис: OINFO ADD|DEL ник тест",
+ /* OINFO_ADD_SUCCESS */
+ "Опер-Информация для ника %s добавлена",
+ /* OINFO_DEL_SUCCESS */
+ "Опер-Информация для ника %s была удалена",
+ /* OCINFO_SYNTAX */
+ "Синтаксис: OINFO ADD|DEL #канал текст",
+ /* OCINFO_ADD_SUCCESS */
+ "Опер-Информация для канала %s успешно установлена",
+ /* OCINFO_DEL_SUCCESS */
+ "Опер-Информация для канала %s была удалена",
+ /* OINFO_HELP */
+ "Синтаксис: OINFO ADD|DEL ник текст\n"
+ "Устанавливает или удаляет Опер-Информацию для указанного ника,\n"
+ "которая будет показана любому оператору, запрашивающему INFO ника.\n"
+ "Может быть использована для 'пометки' пользователей и т. д...",
+ /* OCINFO_HELP */
+ "Синтаксис: OINFO ADD|DEL #канал текст\n"
+ "Устанавливает или удаляет Опер-Информацию для указанного канала,\n"
+ "которая будет показана любому оператору, запрашивающему INFO канала.\n"
+ "Может быть использована для 'пометки' каналов и т. д...",
+ /* OINFO_HELP_CMD */
+ " OINFO Добавляет/Удаляет опер-инфо для ника",
+ /* OCINFO_HELP_CMD */
+ " OINFO Добавляет/Удаляет опер-инфо для канала"
};
const char* langtable_it[] = {
- /* OINFO_SYNTAX */
- "Sintassi: OINFO [ADD|DEL] nick <info>",
- /* OINFO_ADD_SUCCESS */
- "Linea OperInfo aggiunta al nick %s",
- /* OINFO_DEL_SUCCESS */
- "Linea OperInfo rimossa dal nick %s",
- /* OCINFO_SYNTAX */
- "Sintassi: OINFO [ADD|DEL] chan <info>",
- /* OCINFO_ADD_SUCCESS */
- "Linea OperInfo aggiunta al canale %s",
- /* OCINFO_DEL_SUCCESS */
- "Linea OperInfo rimossa dal canale %s",
- /* OINFO_HELP */
- "Sintassi: OINFO [ADD|DEL] nick <info>\n"
- "Aggiunge o rimuove informazioni Oper per il nick specificato\n"
- "Queste vengono mostrate quando un oper esegue il comando /ns info <nick>\n"
- "e possono essere utilizzate per 'marchiare' gli utenti ecc...",
- /* OCINFO_HELP */
- "Sintassi: OINFO [ADD|DEL] chan <info>\n"
- "Aggiunge o rimuove informazioni Oper per il canale specificato\n"
- "Queste vengono mostrate quando un oper esegue il comando /cs info <canale>\n"
- "e possono essere utilizzate per 'marchiare' i canali ecc...",
- /* OINFO_HELP_CMD */
- " OINFO Aggiunge/Rimuove una linea OperInfo ad/da un nick",
- /* OCINFO_HELP_CMD */
- " OINFO Aggiunge/Rimuove una linea OperInfo ad/da un canale"
+ /* OINFO_SYNTAX */
+ "Sintassi: OINFO [ADD|DEL] nick <info>",
+ /* OINFO_ADD_SUCCESS */
+ "Linea OperInfo aggiunta al nick %s",
+ /* OINFO_DEL_SUCCESS */
+ "Linea OperInfo rimossa dal nick %s",
+ /* OCINFO_SYNTAX */
+ "Sintassi: OINFO [ADD|DEL] chan <info>",
+ /* OCINFO_ADD_SUCCESS */
+ "Linea OperInfo aggiunta al canale %s",
+ /* OCINFO_DEL_SUCCESS */
+ "Linea OperInfo rimossa dal canale %s",
+ /* OINFO_HELP */
+ "Sintassi: OINFO [ADD|DEL] nick <info>\n"
+ "Aggiunge o rimuove informazioni Oper per il nick specificato\n"
+ "Queste vengono mostrate quando un oper esegue il comando /ns info <nick>\n"
+ "e possono essere utilizzate per 'marchiare' gli utenti ecc...",
+ /* OCINFO_HELP */
+ "Sintassi: OINFO [ADD|DEL] chan <info>\n"
+ "Aggiunge o rimuove informazioni Oper per il canale specificato\n"
+ "Queste vengono mostrate quando un oper esegue il comando /cs info <canale>\n"
+ "e possono essere utilizzate per 'marchiare' i canali ecc...",
+ /* OINFO_HELP_CMD */
+ " OINFO Aggiunge/Rimuove una linea OperInfo ad/da un nick",
+ /* OCINFO_HELP_CMD */
+ " OINFO Aggiunge/Rimuove una linea OperInfo ad/da un canale"
};
this->InsertLanguage(LANG_EN_US, LANG_NUM_STRINGS, langtable_en_us);
@@ -328,7 +539,7 @@ class OSInfo : public Module
{
char *av[1];
- for (int i = 0; i < 1024; i++)
+ for (int i = 0; i < 1024; ++i)
{
/* Remove the nick Cores */
for (NickCore *nc = nclists[i]; nc; nc = nc->next)
@@ -350,226 +561,6 @@ class OSInfo : public Module
}
};
-
-
-
-/*************************************************************************/
-
-/**
- * Provide the user interface to add/remove/update oper information
- * about a nick.
- * We are going to assume that anyone who gets this far is an oper;
- * the createCommand should have handled this checking for us and its
- * tedious / a waste to do it twice.
- * @param u The user who executed this command
- * @return MOD_CONT if we want to process other commands in this command
- * stack, MOD_STOP if we dont
- **/
-int myAddNickInfo(User * u)
-{
- char *text = NULL;
- char *cmd = NULL;
- char *nick = NULL;
- char *info = NULL;
- NickAlias *na = NULL;
-
- /* Get the last buffer anope recived */
- text = moduleGetLastBuffer();
- if (text) {
- cmd = myStrGetToken(text, ' ', 0);
- nick = myStrGetToken(text, ' ', 1);
- info = myStrGetTokenRemainder(text, ' ', 2);
- if (cmd && nick) {
- if (strcasecmp(cmd, "ADD") == 0) {
- /* Syntax error, again! */
- if (info) {
- /* ok we've found the user */
- if ((na = findnick(nick))) {
- /* Add the module data to the user */
- na->nc->Extend("os_info", sstrdup(info));
- me->NoticeLang(s_NickServ, u, OINFO_ADD_SUCCESS, nick);
- /* NickCore not found! */
- } else {
- notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED,
- nick);
- }
- delete [] info;
- }
- } else if (strcasecmp(cmd, "DEL") == 0) {
- /* ok we've found the user */
- if ((na = findnick(nick)))
- {
- char *c;
- if (na->nc->GetExt("os_info", c))
- {
- delete [] c;
- na->nc->Shrink("os_info");
- }
-
- me->NoticeLang(s_NickServ, u, OINFO_DEL_SUCCESS, nick);
- /* NickCore not found! */
- } else {
- notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED,
- nick);
- }
- /* another syntax error! */
- } else {
- me->NoticeLang(s_NickServ, u, OINFO_SYNTAX);
- }
- delete [] cmd;
- delete [] nick;
- /* Syntax error */
- } else if (cmd) {
- me->NoticeLang(s_NickServ, u, OINFO_SYNTAX);
- delete [] cmd;
- /* Syntax error */
- } else {
- me->NoticeLang(s_NickServ, u, OINFO_SYNTAX);
- }
- }
- return MOD_CONT;
-}
-
-/**
- * Provide the user interface to add/remove/update oper information
- * about a channel.
- * We are going to assume that anyone who gets this far is an oper;
- * the createCommand should have handled this checking for us and
- * its tedious / a waste to do it twice.
- * @param u The user who executed this command
- * @return MOD_CONT if we want to process other commands in this command
- * stack, MOD_STOP if we dont
- **/
-int myAddChanInfo(User * u)
-{
- char *text = NULL;
- char *cmd = NULL;
- char *chan = NULL;
- char *info = NULL;
- ChannelInfo *ci = NULL;
-
- /* Get the last buffer anope recived */
- text = moduleGetLastBuffer();
- if (text) {
- cmd = myStrGetToken(text, ' ', 0);
- chan = myStrGetToken(text, ' ', 1);
- info = myStrGetTokenRemainder(text, ' ', 2);
- if (cmd && chan) {
- if (strcasecmp(cmd, "ADD") == 0) {
- if (info) {
- if ((ci = cs_findchan(chan))) {
- /* Add the module data to the channel */
- ci->Extend("os_info", sstrdup(info));
- me->NoticeLang(s_ChanServ, u, OCINFO_ADD_SUCCESS, chan);
- /* ChanInfo */
- } else {
- notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED,
- chan);
- }
- delete [] info;
- }
- } else if (strcasecmp(cmd, "DEL") == 0) {
- if ((ci = cs_findchan(chan))) {
- /* Del the module data from the channel */
- char *c;
- if (ci->GetExt("os_info", c))
- {
- delete [] c;
- ci->Shrink("os_info");
- }
- me->NoticeLang(s_ChanServ, u, OCINFO_DEL_SUCCESS, chan);
- /* ChanInfo */
- } else {
- notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED,
- chan);
- }
- /* another syntax error! */
- } else {
- me->NoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
- }
- delete [] cmd;
- delete [] chan;
- /* Syntax error */
- } else if (cmd) {
- me->NoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
- delete [] cmd;
- /* Syntax error */
- } else {
- me->NoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
- }
- }
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/**
- * Called after a user does a /msg nickserv info [nick]
- * @param u The user who requested info
- * @return MOD_CONT to continue processing commands or MOD_STOP to stop
- **/
-int myNickInfo(User * u)
-{
- char *text = NULL;
- char *nick = NULL;
- NickAlias *na = NULL;
-
- /* Only show our goodies to opers */
- if (is_oper(u)) {
- /* Get the last buffer anope recived */
- text = moduleGetLastBuffer();
- if (text) {
- nick = myStrGetToken(text, ' ', 0);
- if (nick) {
- /* ok we've found the user */
- if ((na = findnick(nick))) {
- /* If we have any info on this user */
- char *c;
- if (na->nc->GetExt("os_info", c))
- {
- notice_user(s_NickServ, u, " OperInfo: %s", c);
- }
- }
- delete [] nick;
- }
- }
- }
- return MOD_CONT;
-}
-
-/**
- * Called after a user does a /msg chanserv info chan
- * @param u The user who requested info
- * @return MOD_CONT to continue processing commands or MOD_STOP to stop
- **/
-int myChanInfo(User * u)
-{
- char *text = NULL;
- char *chan = NULL;
- ChannelInfo *ci = NULL;
-
- /* Only show our goodies to opers */
- if (is_oper(u)) {
- /* Get the last buffer anope recived */
- text = moduleGetLastBuffer();
- if (text) {
- chan = myStrGetToken(text, ' ', 0);
- if (chan) {
- if ((ci = cs_findchan(chan))) {
- /* If we have any info on this channel */
- char *c;
- if (ci->GetExt("os_info", c))
- {
- notice_user(s_ChanServ, u, " OperInfo: %s", c);
- }
- }
- delete [] chan;
- }
- }
- }
- return MOD_CONT;
-}
-
/*************************************************************************/
/**
@@ -591,30 +582,36 @@ int mLoadData()
/* will _never_ be this big thanks to the 512 limit of a message */
char buffer[2000];
- if ((in = fopen(OSInfoDBName, "r")) == NULL) {
+ if (!(in = fopen(OSInfoDBName, "r")))
+ {
alog("os_info: WARNING: can not open the database file! (it might not exist, this is not fatal)");
ret = 1;
- } else {
- while (fgets(buffer, 1500, in)) {
+ }
+ else
+ {
+ while (fgets(buffer, 1500, in))
+ {
type = myStrGetToken(buffer, ' ', 0);
name = myStrGetToken(buffer, ' ', 1);
info = myStrGetTokenRemainder(buffer, ' ', 2);
- if (type) {
- if (name) {
- if (info) {
+ if (type)
+ {
+ if (name)
+ {
+ if (info)
+ {
len = strlen(info);
/* Take the \n from the end of the line */
info[len - 1] = '\0';
- if (stricmp(type, "C") == 0) {
+ if (!stricmp(type, "C"))
+ {
if ((ci = cs_findchan(name)))
- {
ci->Extend("os_info", strdup("info"));
- }
- } else if (stricmp(type, "N") == 0) {
+ }
+ else if (!stricmp(type, "N"))
+ {
if ((na = findnick(name)))
- {
na->nc->Extend("os_info", strdup(info));
- }
}
delete [] info;
}
@@ -642,41 +639,44 @@ int mSaveData(int argc, char **argv)
int ret = 0;
FILE *out;
- if (argc >= 1) {
- if (!stricmp(argv[0], EVENT_START)) {
- if ((out = fopen(OSInfoDBName, "w")) == NULL) {
+ if (argc >= 1)
+ {
+ if (!stricmp(argv[0], EVENT_START))
+ {
+ if (!(out = fopen(OSInfoDBName, "w")))
+ {
alog("os_info: ERROR: can not open the database file!");
- ircdproto->SendGlobops(s_OperServ,
- "os_info: ERROR: can not open the database file!");
+ ircdproto->SendGlobops(s_OperServ, "os_info: ERROR: can not open the database file!");
ret = 1;
- } else {
- for (i = 0; i < 1024; i++) {
- for (nc = nclists[i]; nc; nc = nc->next) {
+ }
+ else
+ {
+ for (i = 0; i < 1024; ++i)
+ {
+ for (nc = nclists[i]; nc; nc = nc->next)
+ {
/* If we have any info on this user */
char *c;
if (nc->GetExt("os_info", c))
- {
fprintf(out, "N %s %s\n", nc->display, c);
- }
}
}
-
- for (i = 0; i < 256; i++) {
- for (ci = chanlists[i]; ci; ci = ci->next) {
+ for (i = 0; i < 256; ++i)
+ {
+ for (ci = chanlists[i]; ci; ci = ci->next)
+ {
/* If we have any info on this channel */
char *c;
if (ci->GetExt("os_info", c))
- {
fprintf(out, "C %s %s\n", ci->name, c);
- }
}
}
fclose(out);
}
- } else {
- ret = 0;
}
+ else
+ ret = 0;
}
return ret;
@@ -719,12 +719,12 @@ int mLoadConfig()
int mEventReload(int argc, char **argv)
{
int ret = 0;
- if (argc >= 1) {
- if (!stricmp(argv[0], EVENT_START)) {
+ if (argc >= 1)
+ {
+ if (!stricmp(argv[0], EVENT_START))
+ {
alog("os_info: Reloading configuration directives...");
ret = mLoadConfig();
- } else {
- /* Nothing for now */
}
}
@@ -736,43 +736,20 @@ int mEventReload(int argc, char **argv)
/*************************************************************************/
-int mNickHelp(User * u)
-{
- if (is_oper(u)) {
- me->NoticeLang(s_NickServ, u, OINFO_HELP);
- } else {
- notice_lang(s_NickServ, u, NO_HELP_AVAILABLE, "OINFO");
- }
- return MOD_CONT;
-}
-
-int mChanHelp(User * u)
-{
- if (is_oper(u)) {
- me->NoticeLang(s_ChanServ, u, OCINFO_HELP);
- } else {
- notice_lang(s_ChanServ, u, NO_HELP_AVAILABLE, "OINFO");
- }
- return MOD_CONT;
-}
-
/* This help will be added to the main NickServ list */
-void mMainNickHelp(User * u)
+void mMainNickHelp(User *u)
{
- if (is_oper(u)) {
+ if (is_oper(u))
me->NoticeLang(s_Ni