Make IRC message handler 'text' const.
authorMichael Poole <mdpoole@troilus.org>
Fri, 22 Sep 2006 01:35:03 +0000 (01:35 +0000)
committerMichael Poole <mdpoole@troilus.org>
Fri, 22 Sep 2006 01:35:03 +0000 (01:35 +0000)
src/chanserv.c (chanserv_ctcp_check): Make 'text' parameter const.

src/mod-helpserv.c (helpserv_usermsg): Likewise.
  (helpserv_botmsg): Likewise.

src/modcmd.c (svccmd_invoke): Likewise.
  (modcmd_privmsg): Likewise.
  (modcmd_chanmsg): Likewise.

src/modcmd.h (SVCMSG_HOOK): Likewise.

src/proto.h (chanmsg_func_t): Likewise.
  (privmsg_func_t): Likewise.
git-archimport-id: srvx@srvx.net--2006/srvx--devo--1.3--patch-34

ChangeLog
src/chanserv.c
src/mod-helpserv.c
src/modcmd.c
src/modcmd.h
src/proto.h

index 5a982fcebeba1dd430d820db1e5ead7be7039b41..1f70b3f32a46b101d12834514680ea05c8afd351 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,32 @@
 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3
 #
 
+2006-09-22 01:35:03 GMT        Michael Poole <mdpoole@troilus.org>     patch-34
+
+    Summary:
+      Make IRC message handler 'text' const.
+    Revision:
+      srvx--devo--1.3--patch-34
+
+    src/chanserv.c (chanserv_ctcp_check): Make 'text' parameter const.
+    
+    src/mod-helpserv.c (helpserv_usermsg): Likewise.
+      (helpserv_botmsg): Likewise.
+    
+    src/modcmd.c (svccmd_invoke): Likewise.
+      (modcmd_privmsg): Likewise.
+      (modcmd_chanmsg): Likewise.
+    
+    src/modcmd.h (SVCMSG_HOOK): Likewise.
+    
+    src/proto.h (chanmsg_func_t): Likewise.
+      (privmsg_func_t): Likewise.
+
+    modified files:
+     ChangeLog src/chanserv.c src/mod-helpserv.c src/modcmd.c
+     src/modcmd.h src/proto.h
+
+
 2006-09-22 01:23:43 GMT        Michael Poole <mdpoole@troilus.org>     patch-33
 
     Summary:
index 9fe095ee74dd22a54d870dc9747ab05db6370ba2..3ee0aef4ad3c67d96524e11500c66a1e1cc311a3 100644 (file)
@@ -1,5 +1,5 @@
 /* chanserv.c - Channel service bot
- * Copyright 2000-2004 srvx Development Team
+ * Copyright 2000-2006 srvx Development Team
  *
  * This file is part of srvx.
  *
@@ -788,7 +788,7 @@ scan_user_presence(struct userData *uData, struct userNode *user)
 }
 
 static void
-chanserv_ctcp_check(struct userNode *user, struct chanNode *channel, char *text, UNUSED_ARG(struct userNode *bot))
+chanserv_ctcp_check(struct userNode *user, struct chanNode *channel, const char *text, UNUSED_ARG(struct userNode *bot))
 {
     unsigned int eflags, argc;
     char *argv[4];
@@ -805,7 +805,7 @@ chanserv_ctcp_check(struct userNode *user, struct chanNode *channel, char *text,
         return;
     /* We need to enforce against them; do so. */
     eflags = 0;
-    argv[0] = text;
+    argv[0] = (char*)text;
     argv[1] = user->nick;
     argc = 2;
     if(GetUserMode(channel, user))
index 91031f1ebeec2ba6b1197821ea6ce9d8d0db92f7..e8053d541c658f4202e76b401aa20d221695d1da 100644 (file)
@@ -1,5 +1,5 @@
 /* mod-helpserv.c - Support Helper assistant service
- * Copyright 2002-2003 srvx Development Team
+ * Copyright 2002-2003, 2006 srvx Development Team
  *
  * This file is part of srvx.
  *
@@ -967,7 +967,7 @@ static struct helpserv_request * create_request(struct userNode *user, struct he
 }
 
 /* Handle a message from a user to a HelpServ bot. */
-static void helpserv_usermsg(struct userNode *user, struct helpserv_bot *hs, char *text) {
+static void helpserv_usermsg(struct userNode *user, struct helpserv_bot *hs, const char *text) {
     const int from_opserv = 0; /* for helpserv_notice */
     struct helpserv_request *req=NULL, *newest=NULL;
     struct helpserv_reqlist *reqlist, *hand_reqlist;
@@ -1091,11 +1091,12 @@ static void helpserv_usermsg(struct userNode *user, struct helpserv_bot *hs, cha
 }
 
 /* Handle messages direct to a HelpServ bot. */
-static void helpserv_botmsg(struct userNode *user, struct userNode *target, char *text, UNUSED_ARG(int server_qualified)) {
+static void helpserv_botmsg(struct userNode *user, struct userNode *target, const char *text, UNUSED_ARG(int server_qualified)) {
     struct helpserv_bot *hs;
     struct helpserv_cmd *cmd;
     struct helpserv_user *hs_user;
     char *argv[MAXNUMPARAMS];
+    char tmpline[MAXLEN];
     int argc, argv_shift;
     const int from_opserv = 0; /* for helpserv_notice */
 
@@ -1113,7 +1114,8 @@ static void helpserv_botmsg(struct userNode *user, struct userNode *target, char
     }
 
     argv_shift = 1;
-    argc = split_line(text, false, ArrayLength(argv)-argv_shift, argv+argv_shift);
+    safestrncpy(tmpline, text, sizeof(tmpline));
+    argc = split_line(tmpline, false, ArrayLength(argv)-argv_shift, argv+argv_shift);
     if (!argc)
         return;
 
@@ -1133,8 +1135,8 @@ static void helpserv_botmsg(struct userNode *user, struct userNode *target, char
     if (!cmd->func) {
         helpserv_notice(user, "HSMSG_INTERNAL_COMMAND", argv[argv_shift]);
     } else if (cmd->func(user, hs, 0, argc, argv+argv_shift)) {
-        unsplit_string(argv+argv_shift, argc, text);
-        log_audit(HS_LOG, LOG_COMMAND, user, hs->helpserv, hs->helpchan->name, 0, text);
+        unsplit_string(argv+argv_shift, argc, tmpline);
+        log_audit(HS_LOG, LOG_COMMAND, user, hs->helpserv, hs->helpchan->name, 0, tmpline);
     }
 }
 
index 2ae4db59e59005b6c8149b079ffed66ce3aa8802..2e833002ddd5b10e4c310b71917b796fd95d58a2 100644 (file)
@@ -1,5 +1,5 @@
 /* modcmd.c - Generalized module command support
- * Copyright 2002-2004 srvx Development Team
+ * Copyright 2002-2006 srvx Development Team
  *
  * This file is part of srvx.
  *
@@ -795,9 +795,10 @@ svccmd_send_help_2(struct userNode *user, struct service *service, const char *t
 }
 
 static int
-svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *channel, char *text, int server_qualified) {
+svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *channel, const char *text, int server_qualified) {
     unsigned int argc;
     char *argv[MAXNUMPARAMS];
+    char tmpline[MAXLEN];
 
     if (!*text)
         return 0;
@@ -815,12 +816,13 @@ svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *c
             return 0;
         }
     }
-    argc = split_line(text, false, ArrayLength(argv), argv);
+    safestrncpy(tmpline, text, sizeof(tmpline));
+    argc = split_line(tmpline, false, ArrayLength(argv), argv);
     return argc ? svccmd_invoke_argv(user, service, channel, argc, argv, server_qualified) : 0;
 }
 
 void
-modcmd_privmsg(struct userNode *user, struct userNode *bot, char *text, int server_qualified) {
+modcmd_privmsg(struct userNode *user, struct userNode *bot, const char *text, int server_qualified) {
     struct service *service;
 
     if (!(service = dict_find(services, bot->nick, NULL))) {
@@ -885,7 +887,7 @@ modcmd_privmsg(struct userNode *user, struct userNode *bot, char *text, int serv
 }
 
 void
-modcmd_chanmsg(struct userNode *user, struct chanNode *chan, char *text, struct userNode *bot) {
+modcmd_chanmsg(struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot) {
     struct service *service;
     if (!(service = dict_find(services, bot->nick, NULL))) return;
     svccmd_invoke(user, service, chan, text, 0);
index c9dbee963821776a7aecdcb6b481752d0835782d..3523356799f6502f5269e158913078efb1ab3b94 100644 (file)
@@ -1,5 +1,5 @@
 /* modcmd.h - Generalized module command support
- * Copyright 2002-2004 srvx Development Team
+ * Copyright 2002-2006 srvx Development Team
  *
  * This file is part of srvx.
  *
@@ -32,7 +32,7 @@ struct modcmd;
 
 #define MODCMD_FUNC(NAME) int NAME(struct userNode *user, UNUSED_ARG(struct chanNode *channel), UNUSED_ARG(unsigned int argc), UNUSED_ARG(char **argv), UNUSED_ARG(struct svccmd *cmd))
 typedef MODCMD_FUNC(modcmd_func_t);
-#define SVCMSG_HOOK(NAME) int NAME(struct userNode *user, struct userNode *target, char *text, int server_qualified);
+#define SVCMSG_HOOK(NAME) int NAME(struct userNode *user, struct userNode *target, const char *text, int server_qualified);
 typedef SVCMSG_HOOK(svcmsg_hook_t);
 
 DECLARE_LIST(svccmd_list, struct svccmd*);
index 16d546d716866ae1df3ea6a72fc4faa88d0995d1..8f6bb0b31efc19d4cabb14e56e3cd073df7a77e3 100644 (file)
@@ -1,5 +1,5 @@
 /* proto.h - IRC protocol output
- * Copyright 2000-2004 srvx Development Team
+ * Copyright 2000-2006 srvx Development Team
  *
  * This file is part of srvx.
  *
@@ -94,12 +94,12 @@ void init_parse(void);
 int parse_line(char *line, int recursive);
 
 /* Callback notifications for protocol support. */
-typedef void (*chanmsg_func_t) (struct userNode *user, struct chanNode *chan, char *text, struct userNode *bot);
+typedef void (*chanmsg_func_t) (struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot);
 void reg_chanmsg_func(unsigned char prefix, struct userNode *service, chanmsg_func_t handler);
 void reg_allchanmsg_func(struct userNode *service, chanmsg_func_t handler);
 struct userNode *get_chanmsg_bot(unsigned char prefix);
 
-typedef void (*privmsg_func_t) (struct userNode *user, struct userNode *target, char *text, int server_qualified);
+typedef void (*privmsg_func_t) (struct userNode *user, struct userNode *target, const char *text, int server_qualified);
 void reg_privmsg_func(struct userNode *user, privmsg_func_t handler);
 void reg_notice_func(struct userNode *user, privmsg_func_t handler);
 void unreg_privmsg_func(struct userNode *user, privmsg_func_t handler);