]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_modules.cpp
Improve WriteLine, this should be quite an improvement as it prevents a temporary...
[user/henk/code/inspircd.git] / src / cmd_modules.cpp
index 8b1f2ac3f700002ee3d25b1643be98cb69397336..c2fe71f7033e270ac2b7bba09c8d0f95913e744d 100644 (file)
@@ -33,10 +33,18 @@ char* itab[] = {
        "OnCheckKey", "OnCheckLimit", "OnCheckBan", "OnStats", "OnChangeLocalUserHost", "OnChangeLocalUserGecos", "OnLocalTopicChange",
        "OnPostLocalTopicChange", "OnEvent", "OnRequest", "OnOperCompre", "OnGlobalOper", "OnPostConnect", "OnAddBan", "OnDelBan",
        "OnRawSocketAccept", "OnRawSocketClose", "OnRawSocketWrite", "OnRawSocketRead", "OnChangeLocalUserGECOS", "OnUserRegister",
-       "OnOperCompare", "OnChannelDelete", "OnPostOper", "OnSyncOtherMetaData", "OnSetAway", "OnCancelAway", "OnNamesList", NULL
+       "OnOperCompare", "OnChannelDelete", "OnPostOper", "OnSyncOtherMetaData", "OnSetAway", "OnCancelAway", "OnNamesList",
+       "OnPostCommand", "OnPostJoin", NULL
 };
 
-void cmd_modules::Handle (const char** parameters, int pcnt, userrec *user)
+extern "C" command_t* init_command(InspIRCd* Instance)
+{
+       return new cmd_modules(Instance);
+}
+
+/** Handle /MODULES
+ */
+CmdResult cmd_modules::Handle (const char** parameters, int pcnt, userrec *user)
 {
        for (unsigned int i = 0; i < ServerInstance->Config->module_names.size(); i++)
        {
@@ -74,7 +82,7 @@ void cmd_modules::Handle (const char** parameters, int pcnt, userrec *user)
                                                                if (ServerInstance->Config->implement_lists[i][it])
                                                                {
                                                                        snprintf(data,MAXBUF,"%s=>%c ",itab[it],(ServerInstance->Config->implement_lists[i][it] ? '1' : '0'));
-                                                                       strncat(dlist,data,MAXBUF);
+                                                                       strlcat(dlist,data,MAXBUF);
                                                                }
                                                                it++;
                                                        }
@@ -101,4 +109,6 @@ void cmd_modules::Handle (const char** parameters, int pcnt, userrec *user)
                }
        }
        user->WriteServ("901 %s :End of MODULES list",user->nick);
+
+       return CMD_SUCCESS;
 }