moved privctcp handler and use it for both bots
authorpk910 <philipp@zoelle1.de>
Tue, 18 Oct 2011 21:22:35 +0000 (23:22 +0200)
committerpk910 <philipp@zoelle1.de>
Tue, 18 Oct 2011 21:27:56 +0000 (23:27 +0200)
src/bot_NeonServ.c
src/bot_NeonSpam.c
src/bots.c
src/bots.h
src/event_neonserv_ctcp.c

index ea5b662927348f915cbb44c4e4a1cd8d067a232a..345b635c709f05725de184c6bd11d1d7b9b98e6e 100644 (file)
@@ -32,7 +32,6 @@
 #include "DBHelper.h"
 #include "tools.h"
 #include "timeq.h"
-#include "version.h"
 #include "EventLogger.h"
 #include "cmd_neonserv.h"
 
@@ -506,7 +505,7 @@ void init_NeonServ() {
     bind_part(neonserv_event_part);
     bind_quit(neonserv_event_quit);
     bind_chanctcp(neonserv_event_chanctcp);
-    bind_privctcp(neonserv_event_privctcp);
+    bind_privctcp(general_event_privctcp);
     bind_channotice(neonserv_event_channotice);
     bind_topic(neonserv_event_topic);
     bind_invite(neonserv_event_invite);
index c4e92bc75202bc1eaea4e97fa959bf9d901774a4..19a14b0ac638aa5430559950168ea144f6767867 100644 (file)
@@ -115,6 +115,7 @@ void init_NeonSpam() {
     //register events
     bind_bot_ready(neonspam_bot_ready);
     //bind_join(neonspam_event_join);
+    bind_privctcp(general_event_privctcp);
     
     set_trigger_callback(BOTID, neonspam_trigger_callback);
     
index 6f64c5e1cb0ebfb2c3f99f81288f9955898b2459..bd7f4a68e96588b7e38397d5406882f530f6d7c7 100644 (file)
@@ -22,6 +22,7 @@
 #include "UserNode.h"
 #include "ChanNode.h"
 #include "ChanUser.h"
+#include "version.h"
 
 #include "bot_NeonServ.h"
 #include "bot_NeonSpam.h"
@@ -93,3 +94,43 @@ TIMEQ_CALLBACK(channel_ban_timeout) {
     }
     free(str_banid);
 }
+
+static int general_ctcp(char *buffer, char *command, char *text);
+
+void general_event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text) {
+    char ctcpBuf[MAXLEN];
+    if(general_ctcp(ctcpBuf, command, text)) {
+        struct ClientSocket *bot;
+        for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
+            if(bot->user == target) break;
+        }
+        if(bot)
+            putsock(bot, "NOTICE %s :\001%s\001", user->nick, ctcpBuf);
+    }
+}
+
+static int general_ctcp(char *buffer, char *command, char *text) {
+    if(!stricmp(command, "VERSION")) {
+        sprintf(buffer, "VERSION NeonServ v" NEONSERV_VERSION " by pk910 (%s)", (strcmp(revision, "") ? revision : "-"));
+        return 1;
+    }
+    if(!stricmp(command, "FINGER")) {
+        sprintf(buffer, "FINGER NeonServ v" NEONSERV_VERSION " (%s) build %s lines C code using " COMPILER " (see +netinfo)", (strcmp(revision, "") ? revision : "-"), codelines);
+        return 1;
+    }
+    if(!stricmp(command, "PING")) {
+        sprintf(buffer, "PING %s", (text ? text : "0"));
+        return 1;
+    }
+    if(!stricmp(command, "TIME")) {
+        time_t rawtime;
+        struct tm *timeinfo;
+        char timeBuf[80];
+        time(&rawtime);
+        timeinfo = localtime(&rawtime);
+        strftime(timeBuf, 80, "%c", timeinfo);
+        sprintf(buffer, "TIME %s", timeBuf);
+        return 1;
+    }
+    return 0;
+}
index c0dcd299bcde5587b016d2ef597ac84df9ed4b54..742544b4ea4e43a6a9bef820892f5e75de6a81e8 100644 (file)
@@ -20,6 +20,7 @@
 #include "main.h"
 #include "timeq.h"
 
+struct UserNode;
 struct ChanNode;
 struct ClientSocket;
 
@@ -29,5 +30,6 @@ void free_bots();
 
 struct ClientSocket *getChannelBot(struct ChanNode *chan, int botid);
 TIMEQ_CALLBACK(channel_ban_timeout);
+void general_event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text);
 
 #endif
\ No newline at end of file
index 32d8b8958063324cf86a5e0fe9099e233cf24c15..ec88b8494e0fb1ddd15bcc3f13295a3f0b3838bd 100644 (file)
@@ -25,7 +25,6 @@ struct neonserv_event_ctcp_cache {
 
 static USERAUTH_CALLBACK(neonserv_event_ctcp_nick_lookup);
 static void neonserv_event_ctcp_async1(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *command, char *text);
-static int neonserv_ctcp(char *buffer, char *command, char *text);
 
 static void neonserv_event_chanctcp(struct UserNode *user, struct ChanNode *chan, char *command, char *text) {
     if(!stricmp(command, "ACTION")) return; //always allow CTCP ACTION (/me)
@@ -111,40 +110,3 @@ static void neonserv_event_ctcp_async1(struct ClientSocket *client, struct UserN
     }
 }
 
-static void neonserv_event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text) {
-    char ctcpBuf[MAXLEN];
-    if(neonserv_ctcp(ctcpBuf, command, text)) {
-        struct ClientSocket *bot;
-        for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
-            if(bot->user == target) break;
-        }
-        if(bot)
-            putsock(bot, "NOTICE %s :\001%s\001", user->nick, ctcpBuf);
-    }
-}
-
-static int neonserv_ctcp(char *buffer, char *command, char *text) {
-    if(!stricmp(command, "VERSION")) {
-        sprintf(buffer, "VERSION NeonServ v" NEONSERV_VERSION " by pk910 (%s)", (strcmp(revision, "") ? revision : "-"));
-        return 1;
-    }
-    if(!stricmp(command, "FINGER")) {
-        sprintf(buffer, "FINGER NeonServ v" NEONSERV_VERSION " (%s) build %s lines C code using " COMPILER " (see +netinfo)", (strcmp(revision, "") ? revision : "-"), codelines);
-        return 1;
-    }
-    if(!stricmp(command, "PING")) {
-        sprintf(buffer, "PING %s", (text ? text : "0"));
-        return 1;
-    }
-    if(!stricmp(command, "TIME")) {
-        time_t rawtime;
-        struct tm *timeinfo;
-        char timeBuf[80];
-        time(&rawtime);
-        timeinfo = localtime(&rawtime);
-        strftime(timeBuf, 80, "%c", timeinfo);
-        sprintf(buffer, "TIME %s", timeBuf);
-        return 1;
-    }
-    return 0;
-}