added possibility for no channel trigger (Bot doesn't react in the channel)
authorpk910 <philipp@zoelle1.de>
Wed, 26 Oct 2011 00:23:01 +0000 (02:23 +0200)
committerpk910 <philipp@zoelle1.de>
Wed, 26 Oct 2011 00:23:01 +0000 (02:23 +0200)
src/modcmd.c

index 3f51761a0f30bbf5e3e47abdc3b82027fcffe0ba..0b4bec706183183cc49c7949d79c630def867099 100644 (file)
@@ -103,7 +103,7 @@ static char* get_channel_trigger(int botid, struct ChanNode *chan) {
         return 0;
     }
     trigger->botid = botid;
-    trigger->trigger = strdup(triggerStr);
+    trigger->trigger = (triggerStr[0] ? strdup(triggerStr) : NULL);
     trigger->next = chan->trigger;
     chan->trigger = trigger;
     return trigger->trigger;
@@ -422,7 +422,7 @@ static void got_chanmsg(struct UserNode *user, struct ChanNode *chan, char *mess
         if(isUserOnChan(client->user, chan) && (client->flags & SOCKET_FLAG_PREFERRED) && !FD_ISSET(client->botid, &fds)) {
             FD_SET(client->botid, &fds);
             trigger = get_channel_trigger(client->botid, chan);
-            if(stricmplen(message, trigger, strlen(trigger)) == 0) {
+            if(trigger && stricmplen(message, trigger, strlen(trigger)) == 0) {
                 handle_command(client, user, chan, message + strlen(trigger));
             }
         }
@@ -431,7 +431,7 @@ static void got_chanmsg(struct UserNode *user, struct ChanNode *chan, char *mess
         if(isUserOnChan(client->user, chan) && !FD_ISSET(client->botid, &fds)) {
             FD_SET(client->botid, &fds);
             trigger = get_channel_trigger(client->botid, chan);
-            if(stricmplen(message, trigger, strlen(trigger)) == 0) {
+            if(trigger && stricmplen(message, trigger, strlen(trigger)) == 0) {
                 handle_command(client, user, chan, message + strlen(trigger));
             }
         }