diff --git a/Changes b/Changes index 6452a1793..1bd359a56 100644 --- a/Changes +++ b/Changes @@ -53,6 +53,7 @@ Provided by Trystan - 2006 06/15 F NS Resend delay. [ #00] 07/02 F Fixed module version stuff. [#531] 07/14 F Another version fix. [#545] +07/15 F Fixed max param count for SJOINs. [#549] 07/14 A Added anope_cmd_action() and new param for EVENT_PART_CHANNEL. [#550] Anope Version 1.7.14 diff --git a/include/extern.h b/include/extern.h index bc0cc42ec..d64e113e3 100644 --- a/include/extern.h +++ b/include/extern.h @@ -746,6 +746,7 @@ E int nofork; E int forceload; E int nothird; E int noexpire; +E int protocoldebug; #ifdef USE_RDB E int do_mysql; @@ -810,6 +811,7 @@ E int match_wild_nocase(const char *pattern, const char *str); E int dotime(const char *s); E char *duration(NickAlias * na, char *buf, int bufsize, time_t seconds); E char *expire_left(NickAlias * na, char *buf, int len, time_t expires); +E void protocol_debug(char *source, char *cmd, int argc, char **argv); typedef int (*range_callback_t) (User * u, int num, va_list args); E int process_numlist(const char *numstr, int *count_ret, diff --git a/src/channels.c b/src/channels.c index bce64bd4c..ca47792ad 100644 --- a/src/channels.c +++ b/src/channels.c @@ -747,7 +747,7 @@ void do_sjoin(const char *source, int ac, char **av) } /* Double check to avoid unknown modes that need parameters */ - if (ac >= 4 && ac <= 6) { + if (ac >= 4) { c = findchan(av[1]); if (ircd->chansqline) { if (!c) diff --git a/src/init.c b/src/init.c index e83cab176..748b6c054 100644 --- a/src/init.c +++ b/src/init.c @@ -323,6 +323,8 @@ static int parse_options(int ac, char **av) forceload = 1; } else if (strcmp(s, "nothird") == 0) { nothird = 1; + } else if (strcmp(s, "protocoldebug") == 0) { + protocoldebug = 1; } else if (strcmp(s, "support") == 0) { nofork = 1; debug++; diff --git a/src/main.c b/src/main.c index c3ed705db..524bf3a88 100644 --- a/src/main.c +++ b/src/main.c @@ -44,6 +44,7 @@ int nofork = 0; /* -nofork */ int forceload = 0; /* -forceload */ int nothird = 0; /* -nothrid */ int noexpire = 0; /* -noexpire */ +int protocoldebug = 0; /* -protocoldebug */ #ifdef USE_RDB int do_mysql = 0; /* use mysql ? */ diff --git a/src/misc.c b/src/misc.c index 855de4725..3592f7f65 100644 --- a/src/misc.c +++ b/src/misc.c @@ -751,6 +751,28 @@ char *myStrSubString(const char *src, int start, int end) /*************************************************************************/ +void protocol_debug(char *source, char *cmd, int argc, char **argv) +{ + int i; + + if (protocoldebug) { + if (source) + alog("debug: Source %s", source); + if (cmd) + alog("debug: Token %s", cmd); + if (argc) { + for (i = 0; i < argc; i++) { + alog("debug: av[%d] = %s", i, argv[i]); + } + } else { + alog("debug: av[0] = NULL"); + } + } + return; +} + +/*************************************************************************/ + /** * Clean up the buffer for extra spaces * @param str to clean up diff --git a/src/process.c b/src/process.c index 92dcc8931..f002d9f85 100644 --- a/src/process.c +++ b/src/process.c @@ -232,6 +232,11 @@ void process() s = buf + strlen(buf); strscpy(cmd, buf, sizeof(cmd)); ac = split_buf(s, &av, 1); + + if (protocoldebug) { + protocol_debug(source, cmd, ac, av); + } + if (mod_current_buffer) { free(mod_current_buffer); } diff --git a/version.log b/version.log index 8239a3d55..4ca702685 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="14" VERSION_EXTRA="" -VERSION_BUILD="1088" +VERSION_BUILD="1089" # $Log$ # +# BUILD : 1.7.14 (1089) +# BUGS : 549 +# NOTES : applied trystan's patch for the SJOIN issue. +# # BUILD : 1.7.14 (1088) # BUGS : # NOTES : applied trystan's patch for 491.