srvx-commits Mailing List for srvx IRC Services (Page 4)
Brought to you by:
entrope
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(80) |
Sep
(51) |
Oct
(94) |
Nov
(132) |
Dec
(85) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(163) |
Feb
(96) |
Mar
(70) |
Apr
(182) |
May
(173) |
Jun
(73) |
Jul
(101) |
Aug
(101) |
Sep
(71) |
Oct
(76) |
Nov
(58) |
Dec
(60) |
2003 |
Jan
(61) |
Feb
(14) |
Mar
(3) |
Apr
|
May
(7) |
Jun
(22) |
Jul
(81) |
Aug
(41) |
Sep
(34) |
Oct
(41) |
Nov
(16) |
Dec
(28) |
2004 |
Jan
(7) |
Feb
|
Mar
(3) |
Apr
(15) |
May
(11) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
(4) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2005 |
Jan
(13) |
Feb
(6) |
Mar
(1) |
Apr
|
May
(2) |
Jun
(1) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2009 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
(2) |
Feb
(3) |
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(3) |
Oct
(2) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2025 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael P. <md...@tr...> - 2005-01-04 19:36:29
|
Revision: srvx--devo--1.3--patch-1 Archive: sr...@sr...--2005-srvx Creator: Michael Poole <md...@tr...> Date: Tue Jan 4 14:35:57 EST 2005 Standard-date: 2005-01-04 19:35:57 GMT New-files: .arch-ids/ChangeLog.id .arch-ids/UPGRADE.id ChangeLog UPGRADE Removed-files: .arch-ids/ChangeLog.id ChangeLog Modified-files: FAQ INSTALL Makefile.am TODO languages/de/chanserv.help languages/de/global.help languages/de/modcmd.help languages/de/nickserv.help languages/de/strings.db languages/en_UK/chanserv.help languages/en_UK/strings.db src/chanserv.help New-patches: sr...@sr...--2005-srvx/srvx--devo--1.3--patch-1 Summary: Rotate ChangeLog for new repository; clarify documentation files Keywords: Rotate ChangeLog to show changes for sr...@sr...--2005-srvx repo. Fix various file permissions to 664 instead of 620. Update FAQ and TODO. Add UPGRADE file to arch and to distribution. * removed files .arch-ids/ChangeLog.id ChangeLog * added files .arch-ids/ChangeLog.id .arch-ids/UPGRADE.id ChangeLog UPGRADE {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2005-srvx/patch-log/patch-1 * file metadata changed ./INSTALL --permissions 620 => --permissions 664 ./languages/de/chanserv.help --permissions 620 => --permissions 664 ./languages/de/global.help --permissions 620 => --permissions 664 ./languages/de/modcmd.help --permissions 620 => --permissions 664 ./languages/de/nickserv.help --permissions 620 => --permissions 664 ./languages/de/strings.db --permissions 620 => --permissions 664 ./languages/en_UK/chanserv.help --permissions 620 => --permissions 664 ./languages/en_UK/strings.db --permissions 620 => --permissions 664 ./src/chanserv.help --permissions 620 => --permissions 664 * modified files --- orig/FAQ +++ mod/FAQ @@ -5,7 +5,8 @@ OpServ respectively. Q1) How do I set up srvx? -A1) Read the README and INSTALL files, especially INSTALL. +A1) Read the README and INSTALL files, especially INSTALL. If you are +upgrading from srvx-1.2, read UPGRADE. Q2) How do I set up my IRC server so srvx talks to it? A2) That depends on which IRC server you use. Check its @@ -50,3 +51,9 @@ module; for example, "./configure --enable-modules=memoserv". Then see the comment near the start of src/mod-memoserv.c for configuration options. + +Q8) How do I enable both HelpServ and MemoServ? In addition to the +configuration steps above, you must mention both when you run the +configure script. For example, run it using "./configure +--enable-modules=memoserv,helpserv". (You may add the snoop and/or +sockcheck modules as well; separate the module names with commas.) --- orig/Makefile.am +++ mod/Makefile.am @@ -1,4 +1,4 @@ -EXTRA_DIST = FAQ srvx.conf.example sockcheck.conf.example +EXTRA_DIST = FAQ UPGRADE srvx.conf.example sockcheck.conf.example SUBDIRS = @MY_SUBDIRS@ DIST_SUBDIRS = src rx --- orig/TODO +++ mod/TODO @@ -18,3 +18,6 @@ [FEATREQ] Suspension durations and/or comments when suspending user access to a channel [FEATREQ] support "unregistered": ?ctrace print mode +s unregistered + +- rewrite memory allocation calls to use wrapper macros, and add + optional debugging for the stubs to tag size and/or type. |
From: Albert <sou...@gm...> - 2004-12-14 23:14:33
|
Hello, Where can I find or get a Helpserv on my channel? Thanks |
From: Michael P. <md...@tr...> - 2004-11-10 01:26:23
|
Revision: srvx--devo--1.3--patch-83 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Tue Nov 9 20:25:53 EST 2004 Standard-date: 2004-11-10 01:25:53 GMT Modified-files: ChangeLog src/proto-p10.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-83 Summary: Fix nick length check in is_valid_nick(). Keywords: The for() loop in is_valid_nick() leaves 'nick' as an empty string, which is obviosly shorter than the nick length limit. Fix that. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-83 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,20 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-11-10 01:25:53 GMT Michael Poole <md...@tr...> patch-83 + + Summary: + Fix nick length check in is_valid_nick(). + Revision: + srvx--devo--1.3--patch-83 + + The for() loop in is_valid_nick() leaves 'nick' as an empty string, + which is obviosly shorter than the nick length limit. Fix that. + + modified files: + ChangeLog src/proto-p10.c + + 2004-10-16 21:14:11 GMT Michael Poole <md...@tr...> patch-82 Summary: --- orig/src/proto-p10.c +++ mod/src/proto-p10.c @@ -1847,12 +1847,13 @@ int is_valid_nick(const char *nick) { + unsigned int ii; /* IRC has some of The Most Fucked-Up ideas about character sets * in the world.. */ if (!isalpha(*nick) && !strchr("{|}~[\\]^_`", *nick)) return 0; - for (++nick; *nick; ++nick) - if (!isalnum(*nick) && !strchr("{|}~[\\]^-_`", *nick)) + for (ii = 0; nick[ii]; ++ii) + if (!isalnum(nick[ii]) && !strchr("{|}~[\\]^-_`", nick[ii])) return 0; if (strlen(nick) > nicklen) return 0; |
From: Michael P. <md...@tr...> - 2004-10-16 21:14:41
|
Revision: srvx--devo--1.3--patch-82 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Sat Oct 16 17:14:11 EDT 2004 Standard-date: 2004-10-16 21:14:11 GMT Modified-files: ChangeLog src/tools.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-82 Summary: Fix glob matching against IPs Keywords: Do not require the first character in an IP glob to be a digit. If an IP-looking glob does not match, fall through to the other host matching rules, in case the IP-looking glob really matches their hostname. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-82 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,21 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-10-16 21:14:11 GMT Michael Poole <md...@tr...> patch-82 + + Summary: + Fix glob matching against IPs + Revision: + srvx--devo--1.3--patch-82 + + Do not require the first character in an IP glob to be a digit. If an + IP-looking glob does not match, fall through to the other host matching + rules, in case the IP-looking glob really matches their hostname. + + modified files: + ChangeLog src/tools.c + + 2004-09-15 04:14:14 GMT adam <ad...@ga...> patch-81 Summary: --- orig/src/tools.c +++ mod/src/tools.c @@ -334,22 +334,22 @@ if (!match_ircglob(user->ident, glob)) return 0; glob = marker + 1; - /* Now check the host part */ - if (isdigit(*glob) && !glob[strspn(glob, "0123456789./*?")]) { - /* Looks like an IP-based mask */ - return match_ircglob(inet_ntoa(user->ip), glob); - } else { - /* The host part of the mask isn't IP-based */ - if (IsFakeHost(user) && match_ircglob(user->fakehost, glob)) + /* If it might be an IP glob, test that. */ + if (!glob[strspn(glob, "0123456789./*?")] + && match_ircglob(inet_ntoa(user->ip), glob)) + return 1; + /* Check for a fakehost match. */ + if (IsFakeHost(user) && match_ircglob(user->fakehost, glob)) + return 1; + /* Check for an account match. */ + if (hidden_host_suffix && user->handle_info) { + char hidden_host[HOSTLEN+1]; + snprintf(hidden_host, sizeof(hidden_host), "%s.%s", user->handle_info->handle, hidden_host_suffix); + if (match_ircglob(hidden_host, glob)) return 1; - if (hidden_host_suffix && user->handle_info) { - char hidden_host[HOSTLEN+1]; - snprintf(hidden_host, sizeof(hidden_host), "%s.%s", user->handle_info->handle, hidden_host_suffix); - if (match_ircglob(hidden_host, glob)) - return 1; - } - return match_ircglob(user->hostname, glob); } + /* None of the above; could only be a hostname match. */ + return match_ircglob(user->hostname, glob); } int |
From: adam <ad...@ga...> - 2004-09-15 04:14:28
|
Revision: srvx--devo--1.3--patch-81 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Tue Sep 14 21:14:14 PDT 2004 Standard-date: 2004-09-15 04:14:14 GMT Modified-files: ChangeLog src/chanserv.c srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-81 Summary: Consolidate use_registered_mode into off_channel and expand overall functionality Keywords: * srvx.conf's off_channel setting now allows us to turn on all of the features of out-of-channel services without activating the channel setting to have chanserv part |
From: Michael P. <md...@tr...> - 2004-09-13 13:12:09
|
Revision: srvx--devo--1.3--patch-80 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Mon Sep 13 09:11:38 EDT 2004 Standard-date: 2004-09-13 13:11:38 GMT Modified-files: ChangeLog src/chanserv.c srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-80 Summary: ChanServ bugfixes for +z and addbans in suspended channels Keywords: If ChanServ should use MODE_REGISTERED, update that when moving channels. Do not check for bans against an auth'ing user in suspended channels. Change the example entries for off_channel and use_registered_mode to make the enabled/on values more obvious. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-80 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,24 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-09-13 13:11:38 GMT Michael Poole <md...@tr...> patch-80 + + Summary: + ChanServ bugfixes for +z and addbans in suspended channels + Revision: + srvx--devo--1.3--patch-80 + + If ChanServ should use MODE_REGISTERED, update that when moving channels. + + Do not check for bans against an auth'ing user in suspended channels. + + Change the example entries for off_channel and use_registered_mode to + make the enabled/on values more obvious. + + modified files: + ChangeLog src/chanserv.c srvx.conf.example + + 2004-09-08 23:36:51 GMT Michael Poole <md...@tr...> patch-79 Summary: --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -1845,6 +1845,7 @@ static CHANSERV_FUNC(cmd_move) { + struct mod_chanmode change; struct chanNode *target; struct modeNode *mn; struct userData *uData; @@ -1886,6 +1887,7 @@ } } + mod_chanmode_init(&change); if(!(target = GetChannel(argv[1]))) { target = AddChannel(argv[1], now, NULL, NULL); @@ -1905,14 +1907,23 @@ } else if(!IsSuspended(channel->channel_info)) { - struct mod_chanmode change; - mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; change.args[0].u.member = AddChannelUser(chanserv, target); mod_chanmode_announce(chanserv, target, &change); } + if(chanserv_conf.use_registered_mode) + { + /* Clear MODE_REGISTERED from old channel, add it to new. */ + change.argc = 0; + change.modes_clear = MODE_REGISTERED; + mod_chanmode_announce(chanserv, channel, &change); + change.modes_clear = 0; + change.modes_set = MODE_REGISTERED; + mod_chanmode_announce(chanserv, target, &change); + } + /* Move the channel_info to the target channel; it shouldn't be necessary to clear timeq callbacks for the old channel. */ @@ -6023,7 +6034,8 @@ struct banData *ban; if((user->channels.list[ii]->modes & (MODE_CHANOP|MODE_VOICE)) - || !channel->channel_info) + || !channel->channel_info + || IsSuspended(channel->channel_info)) continue; for(jj = 0; jj < channel->banlist.used; ++jj) if(user_matches_glob(user, channel->banlist.list[jj]->ban, 1)) --- orig/srvx.conf.example +++ mod/srvx.conf.example @@ -193,10 +193,10 @@ // "modes" "+iok"; // Does your ircd have off-channel services support? // Bahamut does; ircu2.10.11 does not. - "off_channel" "no"; + "off_channel" "off"; // Does your ircd have a mode for registered channels? // Bahamut does; ircu2.10.11 does not. - "use_registered_mode" "no"; + "use_registered_mode" "off"; // how long should a person be unseen before resending infoline? "info_delay" "120"; // maximum greeting length |
From: Michael P. <md...@tr...> - 2004-09-08 23:42:47
|
Revision: srvx--devo--1.3--patch-79 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Wed Sep 8 19:36:51 EDT 2004 Standard-date: 2004-09-08 23:36:51 GMT Modified-files: ChangeLog src/chanserv.c src/opserv.c srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-79 Summary: Implement item #1011114, #997053 Keywords: * Adjust the default max_greetlen to 200 (since greetings are now unconditionally capped at one line of output). * Allow DNRs to be shown for accounts that currently do not exist. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-79 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,22 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-09-08 23:36:51 GMT Michael Poole <md...@tr...> patch-79 + + Summary: + Implement item #1011114, #997053 + Revision: + srvx--devo--1.3--patch-79 + + * Adjust the default max_greetlen to 200 (since greetings are now + unconditionally capped at one line of output). + + * Allow DNRs to be shown for accounts that currently do not exist. + + modified files: + ChangeLog src/chanserv.c src/opserv.c srvx.conf.example + + 2004-09-06 13:35:59 GMT Michael Poole <md...@tr...> patch-78 Summary: --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -1481,14 +1481,14 @@ } static struct dnrList -chanserv_find_dnrs(const char *chan_name, struct handle_info *handle) +chanserv_find_dnrs(const char *chan_name, const char *handle) { struct dnrList list; dict_iterator_t it; struct do_not_register *dnr; dnrList_init(&list); - if(handle && (dnr = dict_find(handle_dnrs, handle->handle, NULL))) + if(handle && (dnr = dict_find(handle_dnrs, handle, NULL))) dnrList_append(&list, dnr); if(chan_name && (dnr = dict_find(plain_dnrs, chan_name, NULL))) dnrList_append(&list, dnr); @@ -1500,7 +1500,7 @@ } static unsigned int -chanserv_show_dnrs(struct userNode *user, struct svccmd *cmd, const char *chan_name, struct handle_info *handle) +chanserv_show_dnrs(struct userNode *user, struct svccmd *cmd, const char *chan_name, const char *handle) { struct dnrList list; struct do_not_register *dnr; @@ -1615,7 +1615,7 @@ reply("CSMSG_DNR_SEARCH_RESULTS"); if(*target == '*') - matches = chanserv_show_dnrs(user, cmd, NULL, get_handle_info(target + 1)); + matches = chanserv_show_dnrs(user, cmd, NULL, target + 1); else matches = chanserv_show_dnrs(user, cmd, target, NULL); if(!matches) @@ -1737,7 +1737,7 @@ if(!IsHelping(user)) reply("CSMSG_DNR_CHANNEL", chan_name); else - chanserv_show_dnrs(user, cmd, chan_name, handle); + chanserv_show_dnrs(user, cmd, chan_name, handle->handle); return 0; } @@ -1880,7 +1880,7 @@ if(!IsHelping(user)) reply("CSMSG_DNR_CHANNEL_MOVE", argv[1]); else - chanserv_show_dnrs(user, cmd, argv[1], uData->handle); + chanserv_show_dnrs(user, cmd, argv[1], uData->handle->handle); return 0; } } @@ -5481,7 +5481,7 @@ if(!IsHelping(user)) reply("CSMSG_DNR_ACCOUNT", new_owner_hi->handle); else - chanserv_show_dnrs(user, cmd, NULL, new_owner_hi); + chanserv_show_dnrs(user, cmd, NULL, new_owner_hi->handle); return 0; } if(new_owner->access >= UL_COOWNER) @@ -6356,7 +6356,7 @@ str = database_get_data(conf_node, KEY_INFO_DELAY, RECDB_QSTRING); chanserv_conf.info_delay = str ? ParseInterval(str) : 180; str = database_get_data(conf_node, KEY_MAX_GREETLEN, RECDB_QSTRING); - chanserv_conf.greeting_length = str ? atoi(str) : 120; + chanserv_conf.greeting_length = str ? atoi(str) : 200; str = database_get_data(conf_node, KEY_ADJUST_THRESHOLD, RECDB_QSTRING); chanserv_conf.adjust_threshold = str ? atoi(str) : 15; str = database_get_data(conf_node, KEY_ADJUST_DELAY, RECDB_QSTRING); @@ -7287,7 +7287,7 @@ next_refresh = (now + chanserv_conf.refresh_period - 1) / chanserv_conf.refresh_period * chanserv_conf.refresh_period; timeq_add(next_refresh, chanserv_refresh_topics, NULL); } - + reg_exit_func(chanserv_db_cleanup); message_register_table(msgtab); } --- orig/src/opserv.c +++ mod/src/opserv.c @@ -1160,10 +1160,8 @@ if (argv[1][0] == '*') target = GetUserN(argv[1]+1); else - target = GetUserH(argv[1]); -#else - target = GetUserH(argv[1]); #endif + target = GetUserH(argv[1]); if (!target) { reply("MSG_NICK_UNKNOWN", argv[1]); return 0; --- orig/srvx.conf.example +++ mod/srvx.conf.example @@ -200,7 +200,7 @@ // how long should a person be unseen before resending infoline? "info_delay" "120"; // maximum greeting length - "max_greetlen" "120"; + "max_greetlen" "200"; // maximum users in a channel userlist "max_chan_users" "512"; // maximum bans on a channel banlist |
From: Michael P. <md...@tr...> - 2004-09-06 13:37:41
|
Revision: srvx--devo--1.3--patch-78 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Mon Sep 6 09:35:59 EDT 2004 Standard-date: 2004-09-06 13:35:59 GMT Modified-files: ChangeLog sockcheck.conf.example src/dict-splay.c src/modcmd.c src/nickserv.c src/proto-p10.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-78 Summary: Fix bugs; better handle oplevels from ircu2.10.12 Keywords: * Fix order of port and IP in sample socks4 proxy test. * Fix a bug in dict_remove2() that corrupted the tree order if a cleanup function tried to delete another node. * Fix a buffer overflow in cmd_joiner. * Get rid of free_nick_info() since it is really just free(). * If our P10 uplink sends an oplevel in a burst, treat it as a chanop. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-78 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,29 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-09-06 13:35:59 GMT Michael Poole <md...@tr...> patch-78 + + Summary: + Fix bugs; better handle oplevels from ircu2.10.12 + Revision: + srvx--devo--1.3--patch-78 + + * Fix order of port and IP in sample socks4 proxy test. + + * Fix a bug in dict_remove2() that corrupted the tree order if a + cleanup function tried to delete another node. + + * Fix a buffer overflow in cmd_joiner. + + * Get rid of free_nick_info() since it is really just free(). + + * If our P10 uplink sends an oplevel in a burst, treat it as a chanop. + + modified files: + ChangeLog sockcheck.conf.example src/dict-splay.c src/modcmd.c + src/nickserv.c src/proto-p10.c + + 2004-08-12 16:06:55 GMT Zoot <zo...@ga...> patch-77 Summary: --- orig/sockcheck.conf.example +++ mod/sockcheck.conf.example @@ -17,7 +17,7 @@ * It would be generally wise to replace the $p$i with a hard-coded * one; many insecure proxies refuse to connect to themselves. */ -"1080:0401$i$p=p=r=o=x=y00" { +"1080:0401$p$i=p=r=o=x=y00" { "..5a...." "reject:Unsecured socks4"; }; --- orig/src/dict-splay.c +++ mod/src/dict-splay.c @@ -202,7 +202,7 @@ int dict_remove2(dict_t dict, const char *key, int no_dispose) { - struct dict_node *new_root; + struct dict_node *new_root, *old_root; if (!dict->root) return 0; @@ -220,13 +220,14 @@ if (dict->first == dict->root) dict->first = dict->first->next; if (dict->root->next) dict->root->next->prev = dict->root->prev; if (dict->last == dict->root) dict->last = dict->last->prev; + old_root = dict->root; + dict->root = new_root; + dict->count--; if (no_dispose) { - free(dict->root); + free(old_root); } else { - dict_dispose_node(dict->root, dict->free_keys, dict->free_data); + dict_dispose_node(old_root, dict->free_keys, dict->free_data); } - dict->root = new_root; - dict->count--; return 1; } --- orig/src/modcmd.c +++ mod/src/modcmd.c @@ -1464,7 +1464,7 @@ } static MODCMD_FUNC(cmd_joiner) { - char cmdname[80]; + char cmdname[MAXLEN]; if (argc < 2) { int len = sprintf(cmdname, "%s ", cmd->name); --- orig/src/nickserv.c +++ mod/src/nickserv.c @@ -429,13 +429,6 @@ } static void -free_nick_info(void *vni) -{ - struct nick_info *ni = vni; - free(ni); -} - -static void delete_nick(struct nick_info *ni) { struct nick_info *last, *next; @@ -3826,7 +3819,7 @@ dict_set_free_keys(nickserv_id_dict, free); nickserv_nick_dict = dict_new(); - dict_set_free_data(nickserv_nick_dict, free_nick_info); + dict_set_free_data(nickserv_nick_dict, free); nickserv_allow_auth_dict = dict_new(); --- orig/src/proto-p10.c +++ mod/src/proto-p10.c @@ -1076,7 +1076,10 @@ mode |= MODE_CHANOP; else if (sep == 'v') mode |= MODE_VOICE; - else + else if (isdigit(sep)) { + mode |= MODE_CHANOP; + while (isdigit(*end)) end++; + } else break; } if (rel_age < 0) |
From: Michael P. <md...@tr...> - 2004-08-02 12:54:40
|
Revision: srvx--devo--1.3--patch-75 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Mon Aug 2 08:54:13 EDT 2004 Standard-date: 2004-08-02 12:54:13 GMT Modified-files: ChangeLog languages/de/strings.db src/chanserv.c src/helpfile.c src/nickserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-75 Summary: Assorted bug fixes Keywords: * Add missing semicolon in German translation of CSMSG_TRANSFER_WAIT. * Fix pointer used in !trim max_access calculation. * Default to maximum line length for all "single-line" messages. * Return success from NickServ ounregister so it is logged properly. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-75 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,26 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-08-02 12:54:13 GMT Michael Poole <md...@tr...> patch-75 + + Summary: + Assorted bug fixes + Revision: + srvx--devo--1.3--patch-75 + + * Add missing semicolon in German translation of CSMSG_TRANSFER_WAIT. + + * Fix pointer used in !trim max_access calculation. + + * Default to maximum line length for all "single-line" messages. + + * Return success from NickServ ounregister so it is logged properly. + + modified files: + ChangeLog languages/de/strings.db src/chanserv.c + src/helpfile.c src/nickserv.c + + 2004-07-22 04:03:22 GMT Michael Poole <md...@tr...> patch-74 Summary: --- orig/languages/de/strings.db +++ mod/languages/de/strings.db @@ -233,7 +233,7 @@ "CSMSG_TOYS_DISABLED" "Toys sind vollständig abgeschaltet."; "CSMSG_TOYS_PRIVATE" "Toys werden nur dem User direkt beantwortet."; "CSMSG_TOYS_PUBLIC" "Toys werden im Channel beantwortet."; -"CSMSG_TRANSFER_WAIT" "Du musst %s warten, bis du jemand anderem Ownership in $b%s$b geben kannst." +"CSMSG_TRANSFER_WAIT" "Du musst %s warten, bis du jemand anderem Ownership in $b%s$b geben kannst."; "CSMSG_TRIMMED_BANS" "Es wurden $b%d Bans$b von der %s Banliste gelöscht, welche für mindestens %s inaktiv waren."; "CSMSG_TRIMMED_USERS" "Es wurden $b%d User$b mit dem Access Level von %d bis %d von der %s Userliste gelöscht, welche für mindestens %s inaktiv waren."; "CSMSG_UNF_RESPONSE" "Ich will kein Teil deiner versauten Phantasien sein !"; --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -2451,7 +2451,7 @@ if(!max_access) { min_access = 1; - max_access = (uData->access >= UL_OWNER) ? UL_OWNER : (uData->access - 1); + max_access = (actor->access > UL_OWNER) ? UL_OWNER : (actor->access - 1); } send_message(user, chanserv, "CSMSG_TRIMMED_USERS", count, min_access, max_access, channel->name, intervalString(interval, duration, user->handle_info)); return 1; --- orig/src/helpfile.c +++ mod/src/helpfile.c @@ -425,7 +425,7 @@ size = sizeof(line); use_color = 1; } - if (!size) + if (!size || !(msg_type & MSG_TYPE_MULTILINE)) size = DEFAULT_LINE_SIZE; switch (msg_type & 3) { case 0: --- orig/src/nickserv.c +++ mod/src/nickserv.c @@ -2595,7 +2595,7 @@ if (!(hi = get_victim_oper(user, argv[1]))) return 0; nickserv_unregister_handle(hi, user); - return 0; + return 1; } static NICKSERV_FUNC(cmd_status) |
From: Michael P. <md...@tr...> - 2004-07-22 04:03:57
|
Revision: srvx--devo--1.3--patch-74 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Thu Jul 22 00:03:22 EDT 2004 Standard-date: 2004-07-22 04:03:22 GMT Modified-files: ChangeLog languages/de/strings.db src/chanserv.c src/chanserv.h src/helpfile.c src/helpfile.h src/mod-helpserv.c srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-74 Summary: Channel suspension, transfer and line wrap changes Keywords: * Treat half-unsuspended channels as unsuspended, to avoid crashes caused by sysadmins editing chanserv.db in screwy ways. * Add a srvx.conf option to limit how often channel owners can give away channel ownership. * Limit most output line expansions to just one line. * Remove unnecessary assert(hs_user) checks from mod-helpserv.c. * Don't run_empty_interval() in HelpServ when the user's server is still bursting. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-74 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,32 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-07-22 04:03:22 GMT Michael Poole <md...@tr...> patch-74 + + Summary: + Channel suspension, transfer and line wrap changes + Revision: + srvx--devo--1.3--patch-74 + + * Treat half-unsuspended channels as unsuspended, to avoid crashes + caused by sysadmins editing chanserv.db in screwy ways. + + * Add a srvx.conf option to limit how often channel owners can give + away channel ownership. + + * Limit most output line expansions to just one line. + + * Remove unnecessary assert(hs_user) checks from mod-helpserv.c. + + * Don't run_empty_interval() in HelpServ when the user's server is + still bursting. + + modified files: + ChangeLog languages/de/strings.db src/chanserv.c + src/chanserv.h src/helpfile.c src/helpfile.h + src/mod-helpserv.c srvx.conf.example + + 2004-07-19 03:38:09 GMT Michael Poole <md...@tr...> patch-73 Summary: --- orig/languages/de/strings.db +++ mod/languages/de/strings.db @@ -233,6 +233,7 @@ "CSMSG_TOYS_DISABLED" "Toys sind vollständig abgeschaltet."; "CSMSG_TOYS_PRIVATE" "Toys werden nur dem User direkt beantwortet."; "CSMSG_TOYS_PUBLIC" "Toys werden im Channel beantwortet."; +"CSMSG_TRANSFER_WAIT" "Du musst %s warten, bis du jemand anderem Ownership in $b%s$b geben kannst." "CSMSG_TRIMMED_BANS" "Es wurden $b%d Bans$b von der %s Banliste gelöscht, welche für mindestens %s inaktiv waren."; "CSMSG_TRIMMED_USERS" "Es wurden $b%d User$b mit dem Access Level von %d bis %d von der %s Userliste gelöscht, welche für mindestens %s inaktiv waren."; "CSMSG_UNF_RESPONSE" "Ich will kein Teil deiner versauten Phantasien sein !"; --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -42,8 +42,6 @@ #define KEY_MAX_CHAN_BANS "max_chan_bans" #define KEY_NICK "nick" #define KEY_OLD_CHANSERV_NAME "old_chanserv_name" -#define KEY_MAX_SWITCH_LOAD "max_switch_load" -#define KEY_SWITCH_TIMEOUT "switch_timeout" #define KEY_8BALL_RESPONSES "8ball" #define KEY_OLD_BAN_NAMES "old_ban_names" #define KEY_REFRESH_PERIOD "refresh_period" @@ -55,6 +53,7 @@ #define KEY_SUPPORT_HELPER_EPITHET "support_helper_epithet" #define KEY_NODELETE_LEVEL "nodelete_level" #define KEY_MAX_USERINFO_LENGTH "max_userinfo_length" +#define KEY_GIVEOWNERSHIP_PERIOD "giveownership_timeout" /* ChanServ database */ #define KEY_CHANNELS "channels" @@ -100,6 +99,7 @@ #define KEY_MAX "max" #define KEY_NOTES "notes" #define KEY_TOPIC_MASK "topic_mask" +#define KEY_OWNER_TRANSFER "owner_transfer" /* User data */ #define KEY_LEVEL "level" @@ -195,6 +195,7 @@ { "CSMSG_NO_SELF_CLVL", "You cannot change your own access." }, { "CSMSG_NO_BUMP_ACCESS", "You cannot give users access greater than or equal to your own." }, { "CSMSG_MULTIPLE_OWNERS", "There is more than one owner in %s; please use $bCLVL$b, $bDELOWNER$b and/or $bADDOWNER$b instead." }, + { "CSMSG_TRANSFER_WAIT", "You must wait %s before you can give ownership of $b%s$b to someone else." }, { "CSMSG_NO_TRANSFER_SELF", "You cannot give ownership to your own account." }, { "CSMSG_OWNERSHIP_GIVEN", "Ownership of $b%s$b has been transferred to account $b%s$b." }, @@ -494,6 +495,7 @@ unsigned int greeting_length; unsigned int refresh_period; + unsigned int giveownership_period; unsigned int max_owned; unsigned int max_chan_users; @@ -1080,6 +1082,7 @@ channel->registered = now; channel->visited = now; channel->limitAdjusted = now; + channel->ownerTransfer = now; channel->flags = CHANNEL_DEFAULT_FLAGS; for(lvlOpt = 0; lvlOpt < NUM_LEVEL_OPTIONS; ++lvlOpt) channel->lvlOpts[lvlOpt] = levelOptions[lvlOpt].default_value; @@ -5449,6 +5452,13 @@ } curr_user = owner; } + else if (!force && (now < (time_t)(cData->ownerTransfer + chanserv_conf.giveownership_period))) + { + char delay[INTERVALLEN]; + intervalString(delay, cData->ownerTransfer + chanserv_conf.giveownership_period - now, user->handle_info); + reply("CSMSG_TRANSFER_WAIT", delay, channel->name); + return 0; + } if(!(new_owner_hi = modcmd_get_handle_info(user, argv[1]))) return 0; if(new_owner_hi == user->handle_info) @@ -5481,6 +5491,7 @@ new_owner->access = UL_OWNER; if(curr_user) curr_user->access = co_access; + cData->ownerTransfer = now; reply("CSMSG_OWNERSHIP_GIVEN", channel->name, new_owner_hi->handle); sprintf(reason, "%s ownership transferred to %s by %s.", channel->name, new_owner_hi->handle, user->handle_info->handle); global_message(MESSAGE_RECIPIENT_OPERS | MESSAGE_RECIPIENT_HELPERS, reason); @@ -6367,6 +6378,8 @@ NickChange(chanserv, str, 0); str = database_get_data(conf_node, KEY_REFRESH_PERIOD, RECDB_QSTRING); chanserv_conf.refresh_period = str ? ParseInterval(str) : 3*60*60; + str = database_get_data(conf_node, KEY_GIVEOWNERSHIP_PERIOD, RECDB_QSTRING); + chanserv_conf.giveownership_period = str ? ParseInterval(str) : 0; str = database_get_data(conf_node, KEY_CTCP_SHORT_BAN_DURATION, RECDB_QSTRING); chanserv_conf.ctcp_short_ban_duration = str ? str : "3m"; str = database_get_data(conf_node, KEY_CTCP_LONG_BAN_DURATION, RECDB_QSTRING); @@ -6697,14 +6710,14 @@ /* We could use suspended->expires and suspended->revoked to * set the CHANNEL_SUSPENDED flag, but we don't. */ } - else if(IsSuspended(cData)) + else if(IsSuspended(cData) && (str = database_get_data(hir->d.object, KEY_SUSPENDER, RECDB_QSTRING))) { suspended = calloc(1, sizeof(*suspended)); suspended->issued = 0; suspended->revoked = 0; + suspended->suspender = strdup(str); str = database_get_data(hir->d.object, KEY_SUSPEND_EXPIRES, RECDB_QSTRING); suspended->expires = str ? atoi(str) : 0; - suspended->suspender = strdup(database_get_data(hir->d.object, KEY_SUSPENDER, RECDB_QSTRING)); str = database_get_data(hir->d.object, KEY_SUSPEND_REASON, RECDB_QSTRING); suspended->reason = strdup(str ? str : "No reason"); suspended->previous = NULL; @@ -6712,7 +6725,10 @@ suspended->cData = cData; } else + { + cData->flags &= ~CHANNEL_SUSPENDED; suspended = NULL; /* to squelch a warning */ + } if(IsSuspended(cData)) { if(suspended->expires > now) @@ -6734,6 +6750,8 @@ cData->registered = str ? (time_t)strtoul(str, NULL, 0) : now; str = database_get_data(channel, KEY_VISITED, RECDB_QSTRING); cData->visited = str ? (time_t)strtoul(str, NULL, 0) : now; + str = database_get_data(channel, KEY_OWNER_TRANSFER, RECDB_QSTRING); + cData->ownerTransfer = str ? (time_t)strtoul(str, NULL, 0) : 0; str = database_get_data(channel, KEY_MAX, RECDB_QSTRING); cData->max = str ? atoi(str) : 0; str = database_get_data(channel, KEY_GREETING, RECDB_QSTRING); @@ -6976,6 +6994,8 @@ saxdb_end_record(ctx); } + if(channel->ownerTransfer) + saxdb_write_int(ctx, KEY_OWNER_TRANSFER, channel->ownerTransfer); saxdb_write_int(ctx, KEY_VISITED, high_present ? now : channel->visited); saxdb_end_record(ctx); } --- orig/src/chanserv.h +++ mod/src/chanserv.h @@ -81,6 +81,7 @@ time_t registered; time_t visited; time_t limitAdjusted; + time_t ownerTransfer; char *topic; char *greeting; --- orig/src/helpfile.c +++ mod/src/helpfile.c @@ -407,7 +407,8 @@ #endif } message_source = src; - if (!(msg_type & 4) && !(format = handle_find_message(handle, format))) + if (!(msg_type & MSG_TYPE_NOXLATE) + && !(format = handle_find_message(handle, format))) return 0; /* fill in a buffer with the string */ input.used = 0; @@ -531,7 +532,18 @@ case 'H': value = handle ? handle->handle : "Account"; break; -#define SEND_LINE() do { line[pos] = 0; if (pos > 0) irc_send(src, dest, line); chars_sent += pos; pos = 0; newline_ipos = ipos; } while (0) +#define SEND_LINE(TRUNCED) do { \ + line[pos] = 0; \ + if (pos > 0) { \ + if (!(msg_type & MSG_TYPE_MULTILINE) && (pos > 1) && TRUNCED) \ + line[pos-2] = line[pos-1] = '.'; \ + irc_send(src, dest, line); \ + } \ + chars_sent += pos; \ + pos = 0; \ + newline_ipos = ipos; \ + if (!(msg_type & MSG_TYPE_MULTILINE)) return chars_sent; \ +} while (0) /* Custom expansion handled by helpfile-specific function. */ case '{': case '(': { @@ -568,7 +580,7 @@ break; case HF_TABLE: /* Must send current line, then emit table. */ - SEND_LINE(); + SEND_LINE(0); table_send(src, (message_dest ? message_dest->nick : dest), 0, irc_send, exp.value.table); value = ""; break; @@ -606,7 +618,7 @@ /* word to send is too big to send now.. what to do? */ if (pos > 0) { /* try to put it on a separate line */ - SEND_LINE(); + SEND_LINE(1); } else { /* already at start of line; only send part of it */ strncpy(line, value, avail); @@ -619,7 +631,7 @@ } /* if we're looking at a newline, send the accumulated text */ if (*value == '\n') { - SEND_LINE(); + SEND_LINE(0); value++; } } @@ -636,7 +648,7 @@ send_line: expand_pos = pos; expand_ipos = ipos; - SEND_LINE(); + SEND_LINE(0); #undef SEND_LINE } return chars_sent; @@ -686,7 +698,7 @@ va_list ap; va_start(ap, format); - res = vsend_message(dest->nick, src, dest->handle_info, 4, expand, format, ap); + res = vsend_message(dest->nick, src, dest->handle_info, 12, expand, format, ap); va_end(ap); return res; } --- orig/src/helpfile.h +++ mod/src/helpfile.h @@ -72,6 +72,12 @@ extern struct language *lang_C; extern struct dict *languages; +#define MSG_TYPE_NOTICE 0 +#define MSG_TYPE_PRIVMSG 1 +#define MSG_TYPE_WALLCHOPS 2 +#define MSG_TYPE_NOXLATE 4 +#define MSG_TYPE_MULTILINE 8 + int send_message(struct userNode *dest, struct userNode *src, const char *message, ...); int send_message_type(int msg_type, struct userNode *dest, struct userNode *src, const char *message, ...); int send_target_message(int msg_type, const char *dest, struct userNode *src, const char *format, ...); --- orig/src/mod-helpserv.c +++ mod/src/mod-helpserv.c @@ -958,7 +958,7 @@ else send_message_type(4, user, hs->helpserv, "%s %s %s", lbuf[0], lbuf[1], lbuf[2]); - if (hs->req_on_join && req == hs->unhandled && hs->helpchan_empty) { + if (hs->req_on_join && req == hs->unhandled && hs->helpchan_empty && !user->uplink->burst) { timeq_del(0, run_empty_interval, hs, TIMEQ_IGNORE_WHEN); run_empty_interval(hs); } @@ -1904,8 +1904,6 @@ REQUIRE_PARMS(2); - assert(hs_user); - if (!(req = smart_get_request(hs, hs_user, argv[1], &num_requests))) { helpserv_notice(user, "HSMSG_REQ_INVALID", argv[1]); return 0; @@ -1990,8 +1988,6 @@ REQUIRE_PARMS(3); - assert(hs_user); - if (!(req = smart_get_request(hs, hs_user, argv[1], &num_requests))) { helpserv_notice(user, "HSMSG_REQ_INVALID", argv[1]); return 0; --- orig/srvx.conf.example +++ mod/srvx.conf.example @@ -239,6 +239,8 @@ "default_modes" "+nt"; // minimum opserv access to set, clear or override nodelete setting? "nodelete_level" "1"; + // how long before a new channel owner can give ownership away? + "giveownership_timeout" "1w"; }; "global" { |
From: Michael P. <md...@tr...> - 2004-07-19 03:38:51
|
Revision: srvx--devo--1.3--patch-73 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Sun Jul 18 23:38:09 EDT 2004 Standard-date: 2004-07-19 03:38:09 GMT Modified-files: ChangeLog src/chanserv.c src/proto-p10.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-73 Summary: Bugfixes for !trim users, !unsuspend and /clearmodes Keywords: * Show actual upper bound used to trim users. * Update whether an user being unsuspended is in the channel. * Add a missing "break;" so that /clearmodes c doesn't clear NOCTCPS too. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-73 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,23 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-07-19 03:38:09 GMT Michael Poole <md...@tr...> patch-73 + + Summary: + Bugfixes for !trim users, !unsuspend and /clearmodes + Revision: + srvx--devo--1.3--patch-73 + + * Show actual upper bound used to trim users. + + * Update whether an user being unsuspended is in the channel. + + * Add a missing "break;" so that /clearmodes c doesn't clear NOCTCPS too. + + modified files: + ChangeLog src/chanserv.c src/proto-p10.c + + 2004-07-12 19:06:38 GMT Michael Poole <md...@tr...> patch-72 Summary: --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -2448,7 +2448,7 @@ if(!max_access) { min_access = 1; - max_access = UL_OWNER; + max_access = (uData->access >= UL_OWNER) ? UL_OWNER : (uData->access - 1); } send_message(user, chanserv, "CSMSG_TRIMMED_USERS", count, min_access, max_access, channel->name, intervalString(interval, duration, user->handle_info)); return 1; @@ -5544,6 +5544,7 @@ return 0; } target->flags &= ~USER_SUSPENDED; + scan_user_presence(target, NULL); reply("CSMSG_USER_UNSUSPENDED", hi->handle, channel->name); return 1; } --- orig/src/proto-p10.c +++ mod/src/proto-p10.c @@ -2373,7 +2373,7 @@ case 'b': remove |= MODE_BAN; break; case 'D': remove |= MODE_DELAYJOINS; break; case 'r': remove |= MODE_REGONLY; break; - case 'c': remove |= MODE_NOCOLORS; + case 'c': remove |= MODE_NOCOLORS; break; case 'C': remove |= MODE_NOCTCPS; break; } } |
From: Michael P. <md...@tr...> - 2004-07-12 19:07:19
|
Revision: srvx--devo--1.3--patch-72 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Mon Jul 12 15:06:38 EDT 2004 Standard-date: 2004-07-12 19:06:38 GMT Modified-files: ChangeLog Makefile.am src/chanserv.c src/hash.c src/mod-helpserv.c src/mod-snoop.c src/opserv.c src/proto-bahamut.c src/proto-common.c src/proto-p10.c src/proto.h New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-72 Summary: add FAQ to distribition; make compatible with gcc-2.95 Keywords: * Add FAQ to EXTRA_DIST in root. * Name the anonymous union inside struct mod_chanmode. * Typecast printf() field width arguments to int. * added files {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-72 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,26 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-07-12 19:06:38 GMT Michael Poole <md...@tr...> patch-72 + + Summary: + add FAQ to distribition; make compatible with gcc-2.95 + Revision: + srvx--devo--1.3--patch-72 + + * Add FAQ to EXTRA_DIST in root. + + * Name the anonymous union inside struct mod_chanmode. + + * Typecast printf() field width arguments to int. + + modified files: + ChangeLog Makefile.am src/chanserv.c src/hash.c + src/mod-helpserv.c src/mod-snoop.c src/opserv.c + src/proto-bahamut.c src/proto-common.c src/proto-p10.c + src/proto.h + + 2004-07-10 04:42:12 GMT Zoot <zo...@ga...> patch-71 Summary: --- orig/Makefile.am +++ mod/Makefile.am @@ -1,4 +1,4 @@ -EXTRA_DIST = srvx.conf.example sockcheck.conf.example +EXTRA_DIST = FAQ srvx.conf.example sockcheck.conf.example SUBDIRS = @MY_SUBDIRS@ DIST_SUBDIRS = src rx --- orig/src/chanserv.c +++ mod/src/chanserv.c @@ -1195,7 +1195,7 @@ if(irccasecmp(mask + l1 - l2, old_name)) continue; new_mask = alloca(MAXLEN); - sprintf(new_mask, "%.*s%s", l1-l2, mask, hidden_host_suffix); + sprintf(new_mask, "%.*s%s", (int)(l1-l2), mask, hidden_host_suffix); mask = new_mask; } safestrncpy(bd->mask, mask, sizeof(bd->mask)); @@ -1257,7 +1257,7 @@ { change.argc = 1; change.args[0].mode = MODE_REMOVE|MODE_BAN; - change.args[0].hostmask = bd->mask; + change.args[0].u.hostmask = bd->mask; mod_chanmode_announce(chanserv, bd->channel->channel, &change); break; } @@ -1289,7 +1289,8 @@ timeq_del(0, NULL, channel, TIMEQ_IGNORE_FUNC | TIMEQ_IGNORE_WHEN); - if (chanserv_conf.use_registered_mode) { + if(chanserv_conf.use_registered_mode) + { mod_chanmode_init(&change); change.modes_clear |= MODE_REGISTERED; mod_chanmode_announce(chanserv, channel->channel, &change); @@ -1749,11 +1750,11 @@ cData = register_channel(channel, user->handle_info->handle); scan_user_presence(add_channel_user(cData, handle, UL_OWNER, 0, NULL), NULL); cData->modes = chanserv_conf.default_modes; - if (chanserv_conf.use_registered_mode) + if(chanserv_conf.use_registered_mode) cData->modes.modes_set |= MODE_REGISTERED; change = mod_chanmode_dup(&cData->modes, 1); change->args[change->argc].mode = MODE_CHANOP; - change->args[change->argc].member = AddChannelUser(chanserv, channel); + change->args[change->argc].u.member = AddChannelUser(chanserv, channel); change->argc++; mod_chanmode_announce(chanserv, channel, change); mod_chanmode_free(change); @@ -1905,7 +1906,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(chanserv, target); + change.args[0].u.member = AddChannelUser(chanserv, target); mod_chanmode_announce(chanserv, target, &change); } @@ -2167,7 +2168,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = GetUserMode(channel, chanserv); + change.args[0].u.member = GetUserMode(channel, chanserv); mod_chanmode_announce(chanserv, channel, &change); reply("CSMSG_OPCHAN_DONE", channel->name); return 1; @@ -2504,8 +2505,8 @@ mod_chanmode_init(&change); change.argc = 1; - change.args[0].member = GetUserMode(channel, user); - if(!change.args[0].member) + change.args[0].u.member = GetUserMode(channel, user); + if(!change.args[0].u.member) { if(argc) reply("MSG_CHANNEL_ABSENT", channel->name); @@ -2535,7 +2536,7 @@ reply("CSMSG_NO_ACCESS"); return 0; } - change.args[0].mode &= ~change.args[0].member->modes; + change.args[0].mode &= ~change.args[0].u.member->modes; if(!change.args[0].mode) { if(argc) @@ -2552,22 +2553,22 @@ mod_chanmode_init(&change); change.argc = 1; - change.args[0].member = GetUserMode(channel, user); - if(!change.args[0].member) + change.args[0].u.member = GetUserMode(channel, user); + if(!change.args[0].u.member) { if(argc) reply("MSG_CHANNEL_ABSENT", channel->name); return 0; } - if(!change.args[0].member->modes) + if(!change.args[0].u.member->modes) { if(argc) reply("CSMSG_ALREADY_DOWN", channel->name); return 0; } - change.args[0].mode = MODE_REMOVE | change.args[0].member->modes; + change.args[0].mode = MODE_REMOVE | change.args[0].u.member->modes; modcmd_chanmode_announce(&change); return 1; } @@ -2616,8 +2617,8 @@ if(!(victim = GetUserH(argv[ii]))) continue; change->args[valid].mode = mode; - change->args[valid].member = GetUserMode(channel, victim); - if(!change->args[valid].member) + change->args[valid].u.member = GetUserMode(channel, victim); + if(!change->args[valid].u.member) continue; if(validate && !validate(user, channel, victim)) continue; @@ -2895,7 +2896,7 @@ if(irccasecmp(ban + l1 - l2, old_name)) continue; new_mask = malloc(MAXLEN); - sprintf(new_mask, "%.*s%s", l1-l2, ban, hidden_host_suffix); + sprintf(new_mask, "%.*s%s", (int)(l1-l2), ban, hidden_host_suffix); free(ban); name = ban = new_mask; } @@ -2920,12 +2921,12 @@ for(n = 0; n < victimCount; ++n) { change->args[n].mode = MODE_REMOVE|MODE_CHANOP|MODE_VOICE; - change->args[n].member = victims[n]; + change->args[n].u.member = victims[n]; } if(!exists) { change->args[n].mode = MODE_BAN; - change->args[n++].hostmask = ban; + change->args[n++].u.hostmask = ban; } change->argc = n; if(cmd) @@ -3033,7 +3034,7 @@ if(!match[ii]) continue; change->args[count].mode = MODE_REMOVE | MODE_BAN; - change->args[count++].hostmask = bans->list[ii]->ban; + change->args[count++].u.hostmask = bans->list[ii]->ban; } return change; } @@ -3144,7 +3145,7 @@ for(ii=0; ii<channel->banlist.used; ii++) { change->args[ii].mode = MODE_REMOVE | MODE_BAN; - change->args[ii].hostmask = channel->banlist.list[ii]->ban; + change->args[ii].u.hostmask = channel->banlist.list[ii]->ban; } modcmd_chanmode_announce(change); mod_chanmode_free(change); @@ -4096,7 +4097,7 @@ if(!(mn->modes & MODE_CHANOP)) { changes->args[used].mode = MODE_CHANOP; - changes->args[used++].member = mn; + changes->args[used++].u.member = mn; } } else if(!cData->lvlOpts[lvlGiveVoice] @@ -4105,12 +4106,12 @@ if(mn->modes & MODE_CHANOP) { changes->args[used].mode = MODE_REMOVE | (mn->modes & ~MODE_VOICE); - changes->args[used++].member = mn; + changes->args[used++].u.member = mn; } if(!(mn->modes & MODE_VOICE)) { changes->args[used].mode = MODE_VOICE; - changes->args[used++].member = mn; + changes->args[used++].u.member = mn; } } else @@ -4118,7 +4119,7 @@ if(mn->modes) { changes->args[used].mode = MODE_REMOVE | mn->modes; - changes->args[used++].member = mn; + changes->args[used++].u.member = mn; } } } @@ -4437,7 +4438,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(chanserv, channel); + change.args[0].u.member = AddChannelUser(chanserv, channel); mod_chanmode_announce(chanserv, channel, &change); } @@ -4964,7 +4965,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(chanserv, channel); + change.args[0].u.member = AddChannelUser(chanserv, channel); mod_chanmode_announce(chanserv, channel, &change); } cData->flags &= ~CHANNEL_OFFCHANNEL; @@ -5858,7 +5859,7 @@ } change.args[0].mode = MODE_BAN; - change.args[0].hostmask = bData->mask; + change.args[0].u.hostmask = bData->mask; mod_chanmode_announce(chanserv, channel, &change); KickChannelUser(user, channel, chanserv, kick_reason); return 1; @@ -5940,7 +5941,7 @@ if(modes & MODE_CHANOP) modes &= ~MODE_VOICE; change.args[0].mode = modes; - change.args[0].member = mNode; + change.args[0].u.member = mNode; mod_chanmode_announce(chanserv, channel, &change); } if(greeting && !user->uplink->burst) @@ -5995,7 +5996,7 @@ change.args[0].mode = MODE_VOICE; else change.args[0].mode = 0; - change.args[0].member = mn; + change.args[0].u.member = mn; if(change.args[0].mode) mod_chanmode_announce(chanserv, cn, &change); } @@ -6023,7 +6024,7 @@ if(!user_matches_glob(user, ban->mask, 1)) continue; change.args[0].mode = MODE_BAN; - change.args[0].hostmask = ban->mask; + change.args[0].u.hostmask = ban->mask; mod_chanmode_announce(chanserv, channel, &change); sprintf(kick_reason, "(%s) %s", ban->owner, ban->reason); KickChannelUser(user, channel, chanserv, kick_reason); @@ -6157,7 +6158,7 @@ { if((change->args[ii].mode & (MODE_REMOVE|MODE_CHANOP)) == (MODE_REMOVE|MODE_CHANOP)) { - const struct userNode *victim = change->args[ii].member->user; + const struct userNode *victim = change->args[ii].u.member->user; if(!protect_user(victim, user, channel->channel_info)) continue; if(!bounce) @@ -6165,36 +6166,36 @@ if(!deopped) { bounce->args[bnc].mode = MODE_REMOVE | MODE_CHANOP; - bounce->args[bnc].member = GetUserMode(channel, user); - if(bounce->args[bnc].member) + bounce->args[bnc].u.member = GetUserMode(channel, user); + if(bounce->args[bnc].u.member) bnc++; deopped = 1; } bounce->args[bnc].mode = MODE_CHANOP; - bounce->args[bnc].member = change->args[ii].member; + bounce->args[bnc].u.member = change->args[ii].u.member; bnc++; send_message(user, chanserv, "CSMSG_USER_PROTECTED", victim->nick); } else if(change->args[ii].mode & MODE_CHANOP) { - const struct userNode *victim = change->args[ii].member->user; + const struct userNode *victim = change->args[ii].u.member->user; if(IsService(victim) || validate_op(user, channel, (struct userNode*)victim)) continue; if(!bounce) bounce = mod_chanmode_alloc(change->argc + 1 - ii); bounce->args[bnc].mode = MODE_REMOVE | MODE_CHANOP; - bounce->args[bnc].member = change->args[ii].member; + bounce->args[bnc].u.member = change->args[ii].u.member; bnc++; } else if((change->args[ii].mode & (MODE_REMOVE | MODE_BAN)) == MODE_BAN) { - const char *ban = change->args[ii].hostmask; + const char *ban = change->args[ii].u.hostmask; if(!bad_channel_ban(channel, user, ban, NULL, NULL)) continue; if(!bounce) bounce = mod_chanmode_alloc(change->argc + 1 - ii); bounce->args[bnc].mode = MODE_REMOVE | MODE_BAN; - bounce->args[bnc].hostmask = ban; + bounce->args[bnc].u.hostmask = ban; bnc++; send_message(user, chanserv, "CSMSG_MASK_PROTECTED", ban); } @@ -6240,7 +6241,7 @@ { if(!user_matches_glob(user, bData->mask, 1)) continue; - change.args[0].hostmask = bData->mask; + change.args[0].u.hostmask = bData->mask; mod_chanmode_announce(chanserv, channel, &change); sprintf(kick_reason, "(%s) %s", bData->owner, bData->reason); KickChannelUser(user, channel, chanserv, kick_reason); @@ -6724,7 +6725,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(chanserv, cNode); + change.args[0].u.member = AddChannelUser(chanserv, cNode); mod_chanmode_announce(chanserv, cNode, &change); } @@ -6748,7 +6749,7 @@ && (argc = split_line(str, 0, ArrayLength(argv), argv)) && (modes = mod_chanmode_parse(cNode, argv, argc, MCP_KEY_FREE))) { cData->modes = *modes; - if (chanserv_conf.use_registered_mode) + if(chanserv_conf.use_registered_mode) cData->modes.modes_set |= MODE_REGISTERED; if(cData->modes.argc > 1) cData->modes.argc = 1; --- orig/src/hash.c +++ mod/src/hash.c @@ -148,7 +148,7 @@ irc_join(user, mn->channel); if (mn->modes) { change.args[0].mode = mn->modes; - change.args[0].member = mn; + change.args[0].u.member = mn; mod_chanmode_announce(user, mn->channel, &change); } } @@ -327,13 +327,13 @@ struct modeNode *mn = cNode->members.list[nn]; if ((mn->modes & MODE_CHANOP) && IsService(mn->user) && IsLocal(mn->user)) { change->args[argc].mode = MODE_CHANOP; - change->args[argc].member = mn; + change->args[argc].u.member = mn; argc++; } } assert(argc == change->argc); - change->args[0].member->modes &= ~MODE_CHANOP; - mod_chanmode_announce(change->args[0].member->user, cNode, change); + change->args[0].u.member->modes &= ~MODE_CHANOP; + mod_chanmode_announce(change->args[0].u.member->user, cNode, change); mod_chanmode_free(change); } } --- orig/src/mod-helpserv.c +++ mod/src/mod-helpserv.c @@ -1676,7 +1676,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_REMOVE | MODE_VOICE; - change.args[0].member = mn; + change.args[0].u.member = mn; mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } } @@ -1880,7 +1880,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_VOICE; - if ((change.args[0].member = GetUserMode(hs->helpchan, req->user))) + if ((change.args[0].u.member = GetUserMode(hs->helpchan, req->user))) mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } @@ -2257,7 +2257,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(hs->helpserv, hs->helpchan); + change.args[0].u.member = AddChannelUser(hs->helpserv, hs->helpchan); mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } @@ -2336,7 +2336,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_REMOVE | MODE_VOICE; - change.args[0].member = mn; + change.args[0].u.member = mn; mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } if(req->handle) @@ -2618,7 +2618,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(hs->helpserv, hs->helpchan); + change.args[0].u.member = AddChannelUser(hs->helpserv, hs->helpchan); mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } @@ -2875,7 +2875,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(hs->helpserv, new_target); + change.args[0].u.member = AddChannelUser(hs->helpserv, new_target); mod_chanmode_announce(hs->helpserv, new_target, &change); } hs->page_targets[idx] = new_target; @@ -3906,7 +3906,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_VOICE; - if ((change.args[0].member = GetUserMode(hs->helpchan, user))) + if ((change.args[0].u.member = GetUserMode(hs->helpchan, user))) mod_chanmode_announce(hs->helpserv, hs->helpchan, &change); } } --- orig/src/mod-snoop.c +++ mod/src/mod-snoop.c @@ -189,7 +189,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(snoop_cfg.bot, snoop_cfg.channel); + change.args[0].u.member = AddChannelUser(snoop_cfg.bot, snoop_cfg.channel); mod_chanmode_announce(snoop_cfg.bot, snoop_cfg.channel, &change); return 1; } --- orig/src/opserv.c +++ mod/src/opserv.c @@ -402,16 +402,16 @@ change.argc = 1; change.args[0].mode = MODE_BAN; if (is_ircmask(argv[1])) - change.args[0].hostmask = strdup(argv[1]); + change.args[0].u.hostmask = strdup(argv[1]); else if ((victim = GetUserH(argv[1]))) - change.args[0].hostmask = generate_hostmask(victim, 0); + change.args[0].u.hostmask = generate_hostmask(victim, 0); else { reply("OSMSG_INVALID_IRCMASK", argv[1]); return 0; } modcmd_chanmode_announce(&change); - reply("OSMSG_ADDED_BAN", change.args[0].hostmask, channel->name); - free((char*)change.args[0].hostmask); + reply("OSMSG_ADDED_BAN", change.args[0].u.hostmask, channel->name); + free((char*)change.args[0].u.hostmask); return 1; } @@ -522,7 +522,7 @@ change = mod_chanmode_alloc(channel->banlist.used); for (ii=0; ii<channel->banlist.used; ii++) { change->args[ii].mode = MODE_REMOVE | MODE_BAN; - change->args[ii].hostmask = channel->banlist.list[ii]->ban; + change->args[ii].u.hostmask = channel->banlist.list[ii]->ban; } modcmd_chanmode_announce(change); mod_chanmode_free(change); @@ -559,7 +559,7 @@ || !(mn->modes & MODE_CHANOP)) continue; change->args[count].mode = MODE_REMOVE | MODE_CHANOP; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -581,7 +581,7 @@ if (IsService(mn->user) || !(mn->modes & MODE_CHANOP)) continue; change->args[count].mode = MODE_REMOVE | MODE_CHANOP; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -923,7 +923,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(bot, channel); + change.args[0].u.member = AddChannelUser(bot, channel); modcmd_chanmode_announce(&change); } irc_fetchtopic(bot, channel->name); @@ -968,7 +968,7 @@ struct mod_chanmode change; mod_chanmode_init(&change); change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(bot, channel); + change.args[0].u.member = AddChannelUser(bot, channel); modcmd_chanmode_announce(&change); } if (argc < 2) { @@ -1018,7 +1018,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_BAN; - change.args[0].hostmask = mask = generate_hostmask(target, 0); + change.args[0].u.hostmask = mask = generate_hostmask(target, 0); modcmd_chanmode_announce(&change); KickChannelUser(target, channel, cmd->parent->bot, reason); free(mask); @@ -1038,13 +1038,13 @@ if (!(inchan = GetUserMode(channel, bot) ? 1 : 0)) { change = mod_chanmode_alloc(2); change->args[0].mode = MODE_CHANOP; - change->args[0].member = AddChannelUser(bot, channel); + change->args[0].u.member = AddChannelUser(bot, channel); change->args[1].mode = MODE_BAN; - change->args[1].hostmask = "*!*@*"; + change->args[1].u.hostmask = "*!*@*"; } else { change = mod_chanmode_alloc(1); change->args[0].mode = MODE_BAN; - change->args[0].hostmask = "*!*@*"; + change->args[0].u.hostmask = "*!*@*"; } modcmd_chanmode_announce(change); mod_chanmode_free(change); @@ -1117,7 +1117,7 @@ if (mn->modes & MODE_CHANOP) continue; change->args[count].mode = MODE_CHANOP; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -1139,7 +1139,7 @@ if (mn->modes & MODE_CHANOP) continue; change->args[count].mode = MODE_CHANOP; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -1212,7 +1212,7 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_REMOVE | MODE_BAN; - change.args[0].hostmask = argv[1]; + change.args[0].u.hostmask = argv[1]; modcmd_chanmode_announce(&change); reply("OSMSG_UNBAN_DONE", channel->name); return 1; @@ -1229,7 +1229,7 @@ if (mn->modes & (MODE_CHANOP|MODE_VOICE)) continue; change->args[count].mode = MODE_VOICE; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -1251,7 +1251,7 @@ if (!(mn->modes & MODE_VOICE)) continue; change->args[count].mode = MODE_REMOVE | MODE_VOICE; - change->args[count++].member = mn; + change->args[count++].u.member = mn; } if (count) { change->argc = count; @@ -1803,9 +1803,9 @@ change = mod_chanmode_alloc(2); change->modes_set = MODE_SECRET | MODE_INVITEONLY; change->args[0].mode = MODE_CHANOP; - change->args[0].member = AddChannelUser(opserv, channel); + change->args[0].u.member = AddChannelUser(opserv, channel); change->args[1].mode = MODE_BAN; - change->args[1].hostmask = "*!*@*"; + change->args[1].u.hostmask = "*!*@*"; mod_chanmode_announce(opserv, channel, change); mod_chanmode_free(change); for (nn=channel->members.used; nn>0; ) { @@ -1884,7 +1884,7 @@ if (!GetUserMode(channel, opserv)) { /* If we aren't in the channel, join it. */ change.args[0].mode = MODE_CHANOP; - change.args[0].member = AddChannelUser(opserv, channel); + change.args[0].u.member = AddChannelUser(opserv, channel); change.argc++; } if (!(channel->modes & MODE_MODERATED)) @@ -2286,8 +2286,8 @@ mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; - change.args[0].member = GetUserMode(channel, clone); - if (!change.args[0].member) { + change.args[0].u.member = GetUserMode(channel, clone); + if (!change.args[0].u.member) { reply("OSMSG_NOT_ON_CHANNEL", clone->nick, channel->name); return 0; } --- orig/src/proto-bahamut.c +++ mod/src/proto-bahamut.c @@ -1246,7 +1246,6 @@ break; #define do_chan_mode(FLAG) do { if (add) change->modes_set |= FLAG, change->modes_clear &= ~FLAG; else change->modes_clear |= FLAG, change->modes_set &= ~FLAG; } while(0) case 'R': do_chan_mode(MODE_REGONLY); break; - case 'r': do_chan_mode(MODE_REGISTERED); break; case 'D': do_chan_mode(MODE_DELAYJOINS); break; case 'c': do_chan_mode(MODE_NOCOLORS); break; case 'i': do_chan_mode(MODE_INVITEONLY); break; @@ -1297,7 +1296,7 @@ change->args[ch_arg].mode = MODE_BAN; if (!add) change->args[ch_arg].mode |= MODE_REMOVE; - change->args[ch_arg++].hostmask = modes[in_arg++]; + change->args[ch_arg++].u.hostmask = modes[in_arg++]; break; case 'o': case 'v': { @@ -1312,7 +1311,7 @@ victim = GetUserH(modes[in_arg++]); if (!victim) continue; - if ((change->args[ch_arg].member = GetUserMode(channel, victim))) + if ((change->args[ch_arg].u.member = GetUserMode(channel, victim))) ch_arg++; break; } @@ -1403,13 +1402,13 @@ continue; switch (change->args[arg].mode & ~MODE_REMOVE) { case MODE_BAN: - mod_chanmode_append(&chbuf, 'b', change->args[arg].hostmask); + mod_chanmode_append(&chbuf, 'b', change->args[arg].u.hostmask); break; default: if (change->args[arg].mode & MODE_CHANOP) - mod_chanmode_append(&chbuf, 'o', change->args[arg].member->user->nick); + mod_chanmode_append(&chbuf, 'o', change->args[arg].u.member->user->nick); if (change->args[arg].mode & MODE_VOICE) - mod_chanmode_append(&chbuf, 'v', change->args[arg].member->user->nick); + mod_chanmode_append(&chbuf, 'v', change->args[arg].u.member->user->nick); break; } } @@ -1443,13 +1442,13 @@ continue; switch (change->args[arg].mode) { case MODE_BAN: - mod_chanmode_append(&chbuf, 'b', change->args[arg].hostmask); + mod_chanmode_append(&chbuf, 'b', change->args[arg].u.hostmask); break; default: if (change->args[arg].mode & MODE_CHANOP) - mod_chanmode_append(&chbuf, 'o', change->args[arg].member->user->nick); + mod_chanmode_append(&chbuf, 'o', change->args[arg].u.member->user->nick); if (change->args[arg].mode & MODE_VOICE) - mod_chanmode_append(&chbuf, 'v', change->args[arg].member->user->nick); + mod_chanmode_append(&chbuf, 'v', change->args[arg].u.member->user->nick); break; } } --- orig/src/proto-common.c +++ mod/src/proto-common.c @@ -568,14 +568,14 @@ * to be more specific than an existing ban. */ for (jj=0; jj<channel->banlist.used; ++jj) { - if (match_ircglobs(change->args[ii].hostmask, channel->banlist.list[jj]->ban)) { + if (match_ircglobs(change->args[ii].u.hostmask, channel->banlist.list[jj]->ban)) { banList_remove(&channel->banlist, channel->banlist.list[jj]); free(channel->banlist.list[jj]); jj--; } } bn = calloc(1, sizeof(*bn)); - safestrncpy(bn->ban, change->args[ii].hostmask, sizeof(bn->ban)); + safestrncpy(bn->ban, change->args[ii].u.hostmask, sizeof(bn->ban)); if (who) safestrncpy(bn->who, who->nick, sizeof(bn->who)); else @@ -585,7 +585,7 @@ break; case MODE_REMOVE|MODE_BAN: for (jj=0; jj<channel->banlist.used; ++jj) { - if (strcmp(channel->banlist.list[jj]->ban, change->args[ii].hostmask)) + if (strcmp(channel->banlist.list[jj]->ban, change->args[ii].u.hostmask)) continue; free(channel->banlist.list[jj]); banList_remove(&channel->banlist, channel->banlist.list[jj]); @@ -599,9 +599,9 @@ case MODE_REMOVE|MODE_VOICE: case MODE_REMOVE|MODE_VOICE|MODE_CHANOP: if (change->args[ii].mode & MODE_REMOVE) - change->args[ii].member->modes &= ~change->args[ii].mode; + change->args[ii].u.member->modes &= ~change->args[ii].mode; else - change->args[ii].member->modes |= change->args[ii].mode; + change->args[ii].u.member->modes |= change->args[ii].mode; break; default: assert(0 && "Invalid mode argument"); --- orig/src/proto-p10.c +++ mod/src/proto-p10.c @@ -2114,7 +2114,7 @@ change->args[ch_arg].mode = MODE_BAN; if (!add) change->args[ch_arg].mode |= MODE_REMOVE; - change->args[ch_arg++].hostmask = modes[in_arg++]; + change->args[ch_arg++].u.hostmask = modes[in_arg++]; break; case 'o': case 'v': { @@ -2132,7 +2132,7 @@ victim = GetUserH(modes[in_arg++]); if (!victim) continue; - if ((change->args[ch_arg].member = GetUserMode(channel, victim))) + if ((change->args[ch_arg].u.member = GetUserMode(channel, victim))) ch_arg++; break; } @@ -2233,13 +2233,13 @@ chbuf.modes[chbuf.modes_used++] = mode = '-'; switch (change->args[arg].mode & ~MODE_REMOVE) { case MODE_BAN: - mod_chanmode_append(&chbuf, 'b', change->args[arg].hostmask); + mod_chanmode_append(&chbuf, 'b', change->args[arg].u.hostmask); break; default: if (change->args[arg].mode & MODE_CHANOP) - mod_chanmode_append(&chbuf, 'o', change->args[arg].member->user->numeric); + mod_chanmode_append(&chbuf, 'o', change->args[arg].u.member->user->numeric); if (change->args[arg].mode & MODE_VOICE) - mod_chanmode_append(&chbuf, 'v', change->args[arg].member->user->numeric); + mod_chanmode_append(&chbuf, 'v', change->args[arg].u.member->user->numeric); break; } } @@ -2275,13 +2275,13 @@ chbuf.modes[chbuf.modes_used++] = mode = '+'; switch (change->args[arg].mode) { case MODE_BAN: - mod_chanmode_append(&chbuf, 'b', change->args[arg].hostmask); + mod_chanmode_append(&chbuf, 'b', change->args[arg].u.hostmask); break; default: if (change->args[arg].mode & MODE_CHANOP) - mod_chanmode_append(&chbuf, 'o', change->args[arg].member->user->numeric); + mod_chanmode_append(&chbuf, 'o', change->args[arg].u.member->user->numeric); if (change->args[arg].mode & MODE_VOICE) - mod_chanmode_append(&chbuf, 'v', change->args[arg].member->user->numeric); + mod_chanmode_append(&chbuf, 'v', change->args[arg].u.member->user->numeric); break; } } --- orig/src/proto.h +++ mod/src/proto.h @@ -199,7 +199,7 @@ union { struct modeNode *member; const char *hostmask; - }; + } u; } args[1]; }; #define MCP_ALLOW_OVB 0x0001 /* allow op, voice, ban manipulation */ |
From: Michael P. <md...@tr...> - 2004-07-01 02:24:03
|
Revision: srvx--devo--1.3--patch-70 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Wed Jun 30 22:23:21 EDT 2004 Standard-date: 2004-07-01 02:23:21 GMT New-files: patches/.arch-ids/sethost13.diff.id patches/sethost13.diff Modified-files: ChangeLog INSTALL Makefile.am NEWS README compile configure.in depcomp docs/access-levels.txt docs/coding-style.txt docs/cookies.txt docs/helpserv.txt docs/ircd-modes.txt docs/malloc-compare.txt languages/.arch-inventory languages/de/README languages/de/chanserv.help languages/de/global.help languages/de/modcmd.help languages/de/nickserv.help languages/de/strings.db languages/en/README languages/en_UK/README languages/en_UK/chanserv.help languages/en_UK/opserv.help languages/en_UK/strings.db languages/validate.pl patches/helpserv-pgsql.diff sockcheck.conf.example src/Makefile.am src/chanserv.c src/chanserv.h src/chanserv.help src/common.h src/conf.c src/conf.h src/dict-splay.c src/gline.c src/gline.h src/global.c src/global.h src/global.help src/hash.c src/hash.h src/heap.c src/heap.h src/helpfile.c src/helpfile.h src/ioset.c src/ioset.h src/log.h src/main.c src/mod-helpserv.c src/mod-memoserv.c src/mod-snoop.c src/modcmd.c src/modcmd.h src/modules.c src/modules.h src/nickserv.c src/nickserv.h src/nickserv.help src/opserv.c src/opserv.h src/opserv.help src/policer.c src/policer.h src/proto-bahamut.c src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c src/recdb.h src/saxdb.c src/saxdb.h src/saxdb.help src/sendmail.c src/sendmail.h src/timeq.c src/timeq.h src/tools.c srvx.conf.example tests/nickserv.cmd tests/p10.cmd tests/test-driver.pl tests/test.cmd {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-10 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-14 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-18 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-34 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-43 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-46 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-57 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-58 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-61 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-62 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-63 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-68 {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-69 Modified-directories: languages/en_UK New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-70 Summary: miscellaneous bugfixes and indentation fixes Keywords: * srvx.conf.example: Clarify comment about "default_hostmask" setting. * patches/sethost13.diff: Forward port of sethost patch, from Reed Loden. * src/opserv.c (cmd_kickbanall): Free mod_chanmode_change after use. * src/proto-p10.c (cmd_whois): Fix indentation and show real server to opers. * src/tools.c (string_buffer_append_vprintf): Avoid a possible buffer overrun. * added files patches/.arch-ids/sethost13.diff.id patches/sethost13.diff {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-70 * file metadata changed ./INSTALL --permissions 600 => --permissions 620 ./Makefile.am --permissions 644 => --permissions 664 ./NEWS --permissions 644 => --permissions 664 ./README --permissions 644 => --permissions 664 ./compile --permissions 755 => --permissions 775 ./configure.in --permissions 644 => --permissions 664 ./depcomp --permissions 755 => --permissions 775 ./docs/access-levels.txt --permissions 644 => --permissions 664 ./docs/coding-style.txt --permissions 644 => --permissions 664 ./docs/cookies.txt --permissions 644 => --permissions 664 ./docs/helpserv.txt --permissions 644 => --permissions 664 ./docs/ircd-modes.txt --permissions 644 => --permissions 664 ./docs/malloc-compare.txt --permissions 644 => --permissions 664 ./languages/.arch-inventory --permissions 644 => --permissions 664 ./languages/de/README --permissions 644 => --permissions 664 ./languages/de/chanserv.help --permissions 600 => --permissions 620 ./languages/de/global.help --permissions 600 => --permissions 620 ./languages/de/modcmd.help --permissions 600 => --permissions 620 ./languages/de/nickserv.help --permissions 600 => --permissions 620 ./languages/de/strings.db --permissions 600 => --permissions 620 ./languages/en/README --permissions 644 => --permissions 664 ./languages/en_UK/README --permissions 644 => --permissions 664 ./languages/en_UK/chanserv.help --permissions 600 => --permissions 620 ./languages/en_UK/opserv.help --permissions 644 => --permissions 664 ./languages/en_UK/strings.db --permissions 600 => --permissions 620 ./languages/validate.pl --permissions 644 => --permissions 664 ./patches/helpserv-pgsql.diff --permissions 644 => --permissions 664 ./sockcheck.conf.example --permissions 644 => --permissions 664 ./src/Makefile.am --permissions 644 => --permissions 664 ./src/chanserv.c --permissions 644 => --permissions 664 ./src/chanserv.h --permissions 644 => --permissions 664 ./src/chanserv.help --permissions 600 => --permissions 620 ./src/common.h --permissions 644 => --permissions 664 ./src/conf.c --permissions 644 => --permissions 664 ./src/conf.h --permissions 644 => --permissions 664 ./src/dict-splay.c --permissions 644 => --permissions 664 ./src/gline.c --permissions 644 => --permissions 664 ./src/gline.h --permissions 644 => --permissions 664 ./src/global.c --permissions 644 => --permissions 664 ./src/global.h --permissions 644 => --permissions 664 ./src/global.help --permissions 644 => --permissions 664 ./src/hash.c --permissions 644 => --permissions 664 ./src/hash.h --permissions 644 => --permissions 664 ./src/heap.c --permissions 644 => --permissions 664 ./src/heap.h --permissions 644 => --permissions 664 ./src/helpfile.c --permissions 644 => --permissions 664 ./src/helpfile.h --permissions 644 => --permissions 664 ./src/ioset.c --permissions 644 => --permissions 664 ./src/ioset.h --permissions 644 => --permissions 664 ./src/log.h --permissions 644 => --permissions 664 ./src/main.c --permissions 644 => --permissions 664 ./src/mod-helpserv.c --permissions 644 => --permissions 664 ./src/mod-memoserv.c --permissions 644 => --permissions 664 ./src/mod-snoop.c --permissions 644 => --permissions 664 ./src/modcmd.c --permissions 644 => --permissions 664 ./src/modcmd.h --permissions 644 => --permissions 664 ./src/modules.c --permissions 644 => --permissions 664 ./src/modules.h --permissions 644 => --permissions 664 ./src/nickserv.c --permissions 644 => --permissions 664 ./src/nickserv.h --permissions 644 => --permissions 664 ./src/nickserv.help --permissions 644 => --permissions 664 ./src/opserv.c --permissions 644 => --permissions 664 ./src/opserv.h --permissions 644 => --permissions 664 ./src/opserv.help --permissions 644 => --permissions 664 ./src/policer.c --permissions 644 => --permissions 664 ./src/policer.h --permissions 644 => --permissions 664 ./src/proto-bahamut.c --permissions 644 => --permissions 664 ./src/proto-common.c --permissions 644 => --permissions 664 ./src/proto-p10.c --permissions 644 => --permissions 664 ./src/proto.h --permissions 644 => --permissions 664 ./src/recdb.c --permissions 644 => --permissions 664 ./src/recdb.h --permissions 644 => --permissions 664 ./src/saxdb.c --permissions 644 => --permissions 664 ./src/saxdb.h --permissions 644 => --permissions 664 ./src/saxdb.help --permissions 664 => --permissions 666 ./src/sendmail.c --permissions 644 => --permissions 664 ./src/sendmail.h --permissions 644 => --permissions 664 ./src/timeq.c --permissions 644 => --permissions 664 ./src/timeq.h --permissions 644 => --permissions 664 ./src/tools.c --permissions 644 => --permissions 664 ./srvx.conf.example --permissions 644 => --permissions 664 ./tests/nickserv.cmd --permissions 644 => --permissions 664 ./tests/p10.cmd --permissions 644 => --permissions 664 ./tests/test-driver.pl --permissions 755 => --permissions 775 ./tests/test.cmd --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-10 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-14 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-18 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-34 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-43 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-46 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-57 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-58 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-61 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-62 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-63 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-68 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-69 --permissions 644 => --permissions 664 * dir metadata changed ./INSTALL --permissions 600 => --permissions 620 ./Makefile.am --permissions 644 => --permissions 664 ./NEWS --permissions 644 => --permissions 664 ./README --permissions 644 => --permissions 664 ./compile --permissions 755 => --permissions 775 ./configure.in --permissions 644 => --permissions 664 ./depcomp --permissions 755 => --permissions 775 ./docs/access-levels.txt --permissions 644 => --permissions 664 ./docs/coding-style.txt --permissions 644 => --permissions 664 ./docs/cookies.txt --permissions 644 => --permissions 664 ./docs/helpserv.txt --permissions 644 => --permissions 664 ./docs/ircd-modes.txt --permissions 644 => --permissions 664 ./docs/malloc-compare.txt --permissions 644 => --permissions 664 ./languages/.arch-inventory --permissions 644 => --permissions 664 ./languages/de/README --permissions 644 => --permissions 664 ./languages/de/chanserv.help --permissions 600 => --permissions 620 ./languages/de/global.help --permissions 600 => --permissions 620 ./languages/de/modcmd.help --permissions 600 => --permissions 620 ./languages/de/nickserv.help --permissions 600 => --permissions 620 ./languages/de/strings.db --permissions 600 => --permissions 620 ./languages/en/README --permissions 644 => --permissions 664 ./languages/en_UK/README --permissions 644 => --permissions 664 ./languages/en_UK/chanserv.help --permissions 600 => --permissions 620 ./languages/en_UK/opserv.help --permissions 644 => --permissions 664 ./languages/en_UK/strings.db --permissions 600 => --permissions 620 ./languages/validate.pl --permissions 644 => --permissions 664 ./patches/helpserv-pgsql.diff --permissions 644 => --permissions 664 ./sockcheck.conf.example --permissions 644 => --permissions 664 ./src/Makefile.am --permissions 644 => --permissions 664 ./src/chanserv.c --permissions 644 => --permissions 664 ./src/chanserv.h --permissions 644 => --permissions 664 ./src/chanserv.help --permissions 600 => --permissions 620 ./src/common.h --permissions 644 => --permissions 664 ./src/conf.c --permissions 644 => --permissions 664 ./src/conf.h --permissions 644 => --permissions 664 ./src/dict-splay.c --permissions 644 => --permissions 664 ./src/gline.c --permissions 644 => --permissions 664 ./src/gline.h --permissions 644 => --permissions 664 ./src/global.c --permissions 644 => --permissions 664 ./src/global.h --permissions 644 => --permissions 664 ./src/global.help --permissions 644 => --permissions 664 ./src/hash.c --permissions 644 => --permissions 664 ./src/hash.h --permissions 644 => --permissions 664 ./src/heap.c --permissions 644 => --permissions 664 ./src/heap.h --permissions 644 => --permissions 664 ./src/helpfile.c --permissions 644 => --permissions 664 ./src/helpfile.h --permissions 644 => --permissions 664 ./src/ioset.c --permissions 644 => --permissions 664 ./src/ioset.h --permissions 644 => --permissions 664 ./src/log.h --permissions 644 => --permissions 664 ./src/main.c --permissions 644 => --permissions 664 ./src/mod-helpserv.c --permissions 644 => --permissions 664 ./src/mod-memoserv.c --permissions 644 => --permissions 664 ./src/mod-snoop.c --permissions 644 => --permissions 664 ./src/modcmd.c --permissions 644 => --permissions 664 ./src/modcmd.h --permissions 644 => --permissions 664 ./src/modules.c --permissions 644 => --permissions 664 ./src/modules.h --permissions 644 => --permissions 664 ./src/nickserv.c --permissions 644 => --permissions 664 ./src/nickserv.h --permissions 644 => --permissions 664 ./src/nickserv.help --permissions 644 => --permissions 664 ./src/opserv.c --permissions 644 => --permissions 664 ./src/opserv.h --permissions 644 => --permissions 664 ./src/opserv.help --permissions 644 => --permissions 664 ./src/policer.c --permissions 644 => --permissions 664 ./src/policer.h --permissions 644 => --permissions 664 ./src/proto-bahamut.c --permissions 644 => --permissions 664 ./src/proto-common.c --permissions 644 => --permissions 664 ./src/proto-p10.c --permissions 644 => --permissions 664 ./src/proto.h --permissions 644 => --permissions 664 ./src/recdb.c --permissions 644 => --permissions 664 ./src/recdb.h --permissions 644 => --permissions 664 ./src/saxdb.c --permissions 644 => --permissions 664 ./src/saxdb.h --permissions 644 => --permissions 664 ./src/saxdb.help --permissions 664 => --permissions 666 ./src/sendmail.c --permissions 644 => --permissions 664 ./src/sendmail.h --permissions 644 => --permissions 664 ./src/timeq.c --permissions 644 => --permissions 664 ./src/timeq.h --permissions 644 => --permissions 664 ./src/tools.c --permissions 644 => --permissions 664 ./srvx.conf.example --permissions 644 => --permissions 664 ./tests/nickserv.cmd --permissions 644 => --permissions 664 ./tests/p10.cmd --permissions 644 => --permissions 664 ./tests/test-driver.pl --permissions 755 => --permissions 775 ./tests/test.cmd --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-10 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-14 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-18 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-34 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-43 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-46 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-57 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-58 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-61 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-62 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-63 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-68 --permissions 644 => --permissions 664 ./{arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-69 --permissions 644 => --permissions 664 * modified files --- orig/ChangeLog +++ mod/ChangeLog @@ -2,6 +2,71 @@ # arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 # +2004-07-01 02:23:21 GMT Michael Poole <md...@tr...> patch-70 + + Summary: + miscellaneous bugfixes and indentation fixes + Revision: + srvx--devo--1.3--patch-70 + + * srvx.conf.example: Clarify comment about "default_hostmask" setting. + + * patches/sethost13.diff: Forward port of sethost patch, from Reed Loden. + + * src/opserv.c (cmd_kickbanall): Free mod_chanmode_change after use. + + * src/proto-p10.c (cmd_whois): Fix indentation and show real server to opers. + + * src/tools.c (string_buffer_append_vprintf): Avoid a possible buffer overrun. + + new files: + patches/.arch-ids/sethost13.diff.id patches/sethost13.diff + + modified files: + ChangeLog INSTALL Makefile.am NEWS README compile configure.in + depcomp docs/access-levels.txt docs/coding-style.txt + docs/cookies.txt docs/helpserv.txt docs/ircd-modes.txt + docs/malloc-compare.txt languages/.arch-inventory + languages/de/README languages/de/chanserv.help + languages/de/global.help languages/de/modcmd.help + languages/de/nickserv.help languages/de/strings.db + languages/en/README languages/en_UK/README + languages/en_UK/chanserv.help languages/en_UK/opserv.help + languages/en_UK/strings.db languages/validate.pl + patches/helpserv-pgsql.diff sockcheck.conf.example + src/Makefile.am src/chanserv.c src/chanserv.h + src/chanserv.help src/common.h src/conf.c src/conf.h + src/dict-splay.c src/gline.c src/gline.h src/global.c + src/global.h src/global.help src/hash.c src/hash.h src/heap.c + src/heap.h src/helpfile.c src/helpfile.h src/ioset.c + src/ioset.h src/log.h src/main.c src/mod-helpserv.c + src/mod-memoserv.c src/mod-snoop.c src/modcmd.c src/modcmd.h + src/modules.c src/modules.h src/nickserv.c src/nickserv.h + src/nickserv.help src/opserv.c src/opserv.h src/opserv.help + src/policer.c src/policer.h src/proto-bahamut.c + src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c + src/recdb.h src/saxdb.c src/saxdb.h src/saxdb.help + src/sendmail.c src/sendmail.h src/timeq.c src/timeq.h + src/tools.c srvx.conf.example tests/nickserv.cmd tests/p10.cmd + tests/test-driver.pl tests/test.cmd + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-10 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-14 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-18 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-34 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-43 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-46 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-57 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-58 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-61 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-62 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-63 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-68 + {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-69 + + modified directories: + languages/en_UK + + 2004-06-16 12:23:32 GMT adam <ad...@ga...> patch-69 Summary: --- orig/src/opserv.c +++ mod/src/opserv.c @@ -1047,6 +1047,7 @@ change->args[0].hostmask = "*!*@*"; } modcmd_chanmode_announce(change); + mod_chanmode_free(change); if (argc < 2) { reason = alloca(strlen(OSMSG_KICK_REQUESTED)+strlen(user->nick)+1); sprintf(reason, OSMSG_KICK_REQUESTED, user->nick); --- orig/src/proto-common.c +++ mod/src/proto-common.c @@ -638,7 +638,8 @@ } int -irc_make_chanmode(struct chanNode *chan, char *out) { +irc_make_chanmode(struct chanNode *chan, char *out) +{ struct mod_chanmode change; mod_chanmode_init(&change); change.modes_set = chan->modes; --- orig/src/proto-p10.c +++ mod/src/proto-p10.c @@ -782,13 +782,11 @@ } irc_numeric(from, RPL_WHOISUSER, "%s %s %s * :%s", who->nick, who->ident, who->hostname, who->info); if (his_servername && his_servercomment) - irc_numeric(from, RPL_WHOISSERVER, "%s %s :%s", who->nick, his_servername, his_servercomment); + irc_numeric(from, RPL_WHOISSERVER, "%s %s :%s", who->nick, his_servername, his_servercomment); else - irc_numeric(from, RPL_WHOISSERVER, "%s %s :%s", who->nick, who->uplink->name, who->uplink->description); - - if (IsOper(who)) { + irc_numeric(from, RPL_WHOISSERVER, "%s %s :%s", who->nick, who->uplink->name, who->uplink->description); + if (IsOper(who)) irc_numeric(from, RPL_WHOISOPERATOR, "%s :is a megalomaniacal power hungry tyrant", who->nick); - } irc_numeric(from, RPL_ENDOFWHOIS, "%s :End of /WHOIS list", who->nick); return 1; } @@ -800,7 +798,7 @@ if (argc < 8) return 0; - if (origin) { + if (self->uplink) { /* another server introduced us */ srv = AddServer(GetServerH(origin), argv[1], atoi(argv[2]), atoi(argv[3]), atoi(argv[4]), argv[6], argv[argc-1]); if (!srv) @@ -1989,8 +1987,8 @@ if (!user || !mode_change) return; - while (*word != ' ' && *word) word++;\ - while (*word == ' ') word++; \ + while (*word != ' ' && *word) word++; + while (*word == ' ') word++; while (1) { #define do_user_mode(FLAG) do { if (add) user->modes |= FLAG; else user->modes &= ~FLAG; } while (0) switch (*mode_change++) { --- orig/src/tools.c +++ mod/src/tools.c @@ -341,7 +341,7 @@ } else { /* The host part of the mask isn't IP-based */ if (IsFakeHost(user) && match_ircglob(user->fakehost, glob)) - return 1; + return 1; if (hidden_host_suffix && user->handle_info) { char hidden_host[HOSTLEN+1]; snprintf(hidden_host, sizeof(hidden_host), "%s.%s", user->handle_info->handle, hidden_host_suffix); @@ -746,7 +746,7 @@ /* pre-C99 behavior; double buffer size until it is big enough */ va_end(working); VA_COPY(working, args); - while ((ret = vsnprintf(buf->list + buf->used, buf->size, fmt, working)) == -1) { + while ((ret = vsnprintf(buf->list + buf->used, buf->size - buf->used, fmt, working)) <= 0) { buf->size += len; buf->list = realloc(buf->list, buf->size); va_end(working); --- orig/srvx.conf.example +++ mod/srvx.conf.example @@ -47,8 +47,9 @@ // mind which ircd software you are using here, and that all of the // services need to be at least +o. // "modes" "+iok"; - // If you want to by have *@* as the default hostmask, set - // default_hostmask. This is discouraged for security reasons. + // If you want to by have *@* as the default hostmask for all + // new accounts, set default_hostmask. This is discouraged + // for security reasons. // "default_hostmask" "1"; // do we warn users when someone new auths to their account? "warn_clone_auth" "1"; |
From: adam <ad...@ga...> - 2004-06-16 12:23:08
|
Revision: srvx--devo--1.3--patch-69 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Wed Jun 16 05:23:32 PDT 2004 Standard-date: 2004-06-16 12:23:32 GMT Modified-files: ChangeLog src/chanserv.c src/global.c src/mod-helpserv.c src/modcmd.c src/nickserv.c src/opserv.c src/proto-bahamut.c src/proto-p10.c src/proto.h srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-69 Summary: added modes parameter to srvx.conf to control user modes Keywords: * each service now has a 'modes' parameter in srvx.conf to specify their individual modes.. if left blank, will default to whatever 'services' modes work for your ircd. |
From: Michael P. <md...@tr...> - 2004-05-22 04:25:17
|
Revision: srvx--devo--1.3--patch-67 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Sat May 22 00:24:57 EDT 2004 Standard-date: 2004-05-22 04:24:57 GMT Modified-files: ChangeLog src/chanserv.c src/hash.c src/hash.h src/log.c src/nickserv.c src/nickserv.h src/opserv.c src/proto-bahamut.c src/proto-common.c src/proto-p10.c src/proto.h src/tools.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-67 Summary: Add fake host support (assuming your ircd supports it) Keywords: Add definitions in various places to support assigning fake hosts to users. We will not give you (or make for you) patches to make your ircd support this feature, so please do not ask. You must set a certain srvx.conf setting to be able to assign fakehosts; finding it is left as an exercise to the reader. |
From: Michael P. <md...@tr...> - 2004-05-22 03:00:27
|
Revision: srvx--devo--1.3--patch-66 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Fri May 21 23:00:05 EDT 2004 Standard-date: 2004-05-22 03:00:05 GMT Modified-files: ChangeLog autogen.sh New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-66 Summary: Remove obsolete check for src/srvx directory Keywords: Since srvx is in arch, and arch doesn't have CVS's eccentricities about old directories, remove the test for src/srvx being a directory. |
From: Michael P. <md...@tr...> - 2004-05-21 12:58:39
|
Revision: srvx--devo--1.3--patch-65 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Fri May 21 08:58:18 EDT 2004 Standard-date: 2004-05-21 12:58:18 GMT Modified-files: ChangeLog src/nickserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-65 Summary: Fix memory leak in ?accounts Keywords: Fix a memory leak in ?accounts. |
From: Michael P. <md...@tr...> - 2004-05-21 12:39:00
|
Revision: srvx--devo--1.3--patch-64 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Fri May 21 08:38:39 EDT 2004 Standard-date: 2004-05-21 12:38:39 GMT Modified-files: ChangeLog src/hash.c src/opserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-64 Summary: Fix helpserv whine when helpers leave the channel; fix ?devoiceall Keywords: Remove the parting modeNode before making callbacks, so callbacks don't get confused and think the user is still in the channel. In ?devoiceall, OpServ should only remove voice from users who have it. |
From: adam <ad...@ga...> - 2004-05-17 09:44:41
|
Revision: srvx--devo--1.3--patch-63 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Mon May 17 02:44:35 PDT 2004 Standard-date: 2004-05-17 09:44:35 GMT Modified-files: ChangeLog src/chanserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-63 Summary: fix minor EnfModes bug in chanserv.c Keywords: * address bug id #955105; minor EnfModes issue |
From: adam <ad...@ga...> - 2004-05-14 06:27:20
|
Revision: srvx--devo--1.3--patch-62 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Thu May 13 23:27:30 PDT 2004 Standard-date: 2004-05-14 06:27:30 GMT Modified-files: ChangeLog src/nickserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-62 Summary: fix stupid typo from --patch-61 Keywords: * fix stupid typo in nickserv.c from --patch-61; sigh. |
From: adam <ad...@ga...> - 2004-05-14 05:37:28
|
Revision: srvx--devo--1.3--patch-61 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Thu May 13 22:37:38 PDT 2004 Standard-date: 2004-05-14 05:37:38 GMT Removed-files: patches/.arch-ids/ns_tried2reg102403.diff.id patches/ns_tried2reg102403.diff Modified-files: ChangeLog src/chanserv.c src/hash.h src/nickserv.c src/opserv.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-61 Summary: rearrange chanserv-level ban/kick messages; change wording on authentication cookie email, implement old tried2reg patch Keywords: * chanserv ban/kick messages are now displayed as "(name) message" as opposed to what they were, which was "message (name)"; this was done to remove irregularity with how it was in some parts of the code. * at semi-popular request, wording in initial registration emails has been changed to explain that COOKIE should not be used more than once * implemented old 'tried2reg' patch - you may only use /msg authserv register once per session (this was not the case before, which was apparent with email registrations) |
From: Michael P. <md...@tr...> - 2004-05-09 03:11:37
|
Revision: srvx--devo--1.3--patch-60 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Sat May 8 23:05:48 EDT 2004 Standard-date: 2004-05-09 03:05:48 GMT Modified-files: ChangeLog src/chanserv.c src/chanserv.h src/hash.c src/hash.h src/nickserv.c src/proto-bahamut.c src/proto-common.c src/proto-p10.c src/proto.h srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-60 Summary: Fix several bugs; make off-channel a per-channel option Keywords: * Add per-channel option (!set offchannel) for off-channel services support. * Rename REGISTERED_MODE to MODE_REGISTERED and always use it. * Delete remaining (registered) channels on exit. * Fix tests in proto-p10.c for chanop-ness when using off-channel services support. |
From: Michael P. <md...@tr...> - 2004-05-07 14:32:29
|
Revision: srvx--devo--1.3--patch-59 Archive: sr...@sr...--2004-srvx Creator: Michael Poole <md...@tr...> Date: Fri May 7 10:32:06 EDT 2004 Standard-date: 2004-05-07 14:32:06 GMT Modified-files: ChangeLog src/main.c New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-59 Summary: allow daemon mode under cygwin Keywords: * Remove code to disable daemon mode in Cygwin, since Cygwin now properly implements fork() etc. |
From: adam <ad...@ga...> - 2004-05-06 09:46:53
|
Revision: srvx--devo--1.3--patch-58 Archive: sr...@sr...--2004-srvx Creator: adam <ad...@ga...> Date: Thu May 6 02:46:38 PDT 2004 Standard-date: 2004-05-06 09:46:38 GMT Modified-files: ChangeLog src/chanserv.c src/hash.c src/hash.h src/mod-helpserv.c src/mod-snoop.c src/proto-common.c src/proto-p10.c srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-58 Summary: basic off-channel support; restructuring how part functions are handled Keywords: * added srvx.conf setting to allow chanserv to work being outside of a channel; if you'd like to have srvx set a mode as it joins, edit REGISTERED_MODE in hash.h. this will not work properly on P10 networks - though it may be nice for bahamut-based networks. either way, please do not ask us for assistance. * changed the way part functions are called - a modeNode is now passed, and they are run *before* the user's membership link in that channel is nuked. |
From: adam <ak...@ga...> - 2004-05-01 11:17:06
|
Revision: srvx--devo--1.3--patch-57 Archive: sr...@sr...--2004-srvx Creator: adam <ak...@ga...> Date: Sat May 1 04:17:11 PDT 2004 Standard-date: 2004-05-01 11:17:11 GMT Modified-files: ChangeLog src/chanserv.c src/nickserv.c src/proto-common.c src/proto-p10.c src/proto.h srvx.conf.example New-patches: sr...@sr...--2004-srvx/srvx--devo--1.3--patch-57 Summary: introduce unreg_privmsg_func, fix minor autoinvite issue, alter account-finding on local services clients Keywords: * introduce unreg_privmsg_func: unreg_privmsg_func()/unreg_notice_func() - both of which reverse the effect of reg_privmsg_func()/reg_notice_func() * fix minor autoinvite issue: UserAutoInvite (aka: '!uset autoinvite ..') no longer invites you to channels you weren't in if the server you are on just reconnected to the network * alter account-finding on local services clients: non +k users on the local services server are now no longer referred to as services (at least not in regard to accounts..) |