Michael Poole [Tue, 8 Feb 2005 04:42:43 +0000 (04:42 +0000)]
Fix memory corruption when removing certain bans from a channel.
src/proto-common.c (mod_chanmode_apply): Make sure we get a pointer to
the ban we want to deallocate BEFORE we remove it from the banlist.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-16
Michael Poole [Sat, 5 Feb 2005 13:03:21 +0000 (13:03 +0000)]
Rearrange slab allocation header; minor slab fixes.
src/alloc-slab.c (ALLOC_MAGIC, FREE_MAGIC): Replace with single-byte values.
(struct alloc_header): Move file_id and line into second 32-bit word
of header.
(slab_alloc): Remove commented-out debug statements.
(slab_unalloc): Remove memset() of freed block and commented-out debug
statements.
(slab_free): memset() freed blocks here instead. Try to fix
*_alloc_size counting errors (use the originally requested length
rather than rounded-up length)
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-15
Michael Poole [Sat, 5 Feb 2005 03:52:51 +0000 (03:52 +0000)]
Even more slab allocator updates.
src/slab-alloc.c (SLAB_DEBUG): Default to on.
(SMALL_CUTOFF): Fix default value (must be a multiple of 4).
(slab_unalloc): Fix slab counting. When SLAB_RESERVE, allocate the
set of pages in a burst, rather than supplementing them as we unmap.
(slab_realloc): Fix a rather embarassing (and LARGE) memory leak.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-14
Michael Poole [Fri, 4 Feb 2005 16:36:40 +0000 (16:36 +0000)]
more debugging updates
src/alloc-slab.c: Switch free slab list from a stack to queue, and
make sure there are SLAB_RESERVE in the queue before an old slab is
dereferenced. This causes a fault when dereferencing stale pointers
to the last SLAB_RESERVE full slabs.
src/log.c: Make struct logEntry *last static, to make sure gcc does
not optimize it away.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-13
Michael Poole [Mon, 31 Jan 2005 22:28:59 +0000 (22:28 +0000)]
More slab allocator updates.
src/alloc-slab.c: Disable extra debugging by default. Add more
statistics counters. Change element type of little_slabs[]. Keep a
global list of unused (full) slab pages, rather than per-slab.
Various other cleanups and fixes.
src/chanserv.h: Can only be off-channel with off_channel > 1.
src/main.c: Update years in copyright notice.
src/opserv.c: Remove OSMSG_STATS_MEMORY. Make cmd_stats_memory()
allocator-specific.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-12
Michael Poole [Mon, 31 Jan 2005 11:08:15 +0000 (11:08 +0000)]
Add "?stats memory" and optional alloc_header to slab.
src/alloc-slab.c: Add alloc_header (but no redzone) debug support,
enabled by default. Update alloc_count and alloc_size.
src/opserv.c: Provide "stats memory" command for slab allocator.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-11
Michael Poole [Mon, 31 Jan 2005 05:14:52 +0000 (05:14 +0000)]
Add slab allocator; reduce delta with srvx-gs.
configure.in: Check for getpagesize(). Support --with-malloc=slab.
src/Makefile.am: Add alloc-slab.c as an extra source file.
src/alloc-srvx.c: Clean up srvx_free() slightly. Check for previously
allocated blocks.
srvx.conf.example, src/chanserv.c, src/main.c, src/modcmd.c,
src/proto-p10.c: Apply patches to bring closer to srvx-gs branch.
src/log.c: Assert and _exit() on fatal log messages.
src/opserv.c: Clarify logic for modes to set on join floods.
src/proto-common.c: Accept off-channel commands in registered channels.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-10
Michael Poole [Wed, 26 Jan 2005 21:16:54 +0000 (21:16 +0000)]
offchannel fixes; more memory verification
src/chanserv.c (cmd_register): Do not join channels if the default
options include being offchannel.
src/common.h: Verify list allocations when appending or removing.
src/hash.c (GetUserMode): Verify channel and user list allocations.
src/log.c (log_entry_search): Keep pointer to last visited log entry.
src/proto-p10.c (mod_chanmode_parse): Fail if trying to change +z when
passed MCP_REGISTERED.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-9
Michael Poole [Mon, 24 Jan 2005 17:12:38 +0000 (17:12 +0000)]
typo fix in alloc-srvx.c; avoid dereferencing free()'d bans
src/alloc-srvx.c (srvx_realloc): Fix argument list to srvx_free().
src/chanserv.c (find_matching_bans): Make temporary copies of bans to
be removed. Double-check remove count at end of loop.
(unban_user, cmd_open): Free the string copies.
(cmd_unbanall): Make temporary copies of removed bans and free them.
(handle_mode): Likewise.
src/opserv.c (cmd_clearbans): Likewise.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-8
Michael Poole [Mon, 24 Jan 2005 16:45:44 +0000 (16:45 +0000)]
More allocation debugging support.
src/alloc-srvx.c (srvx_realloc): Reorganize.
(verify): New function.
src/common.h (verify): Define and/or declare suitably.
src/dict-splay.c (dict_splay): Verify node at each iteration.
(dict_insert, dict_remove2, dict_find, dict_delete,
dict_sanity_check): Verify entire dict.
(dict_sanity_check_node): Verify node as valid allocation.
src/hash.c (DelChannel): Verify channel before deletion.
(GetUserMode): Verify channel, user, and each modeNode.
src/mod-sockcheck.c (sockcheck_free_client): Verify client.
(sockcheck_timeout_client, sockcheck_advance, sockcheck_readable,
sockcheck_connected, sockcheck_begin_test): Likewise.
(sockcheck_queue_address): Verify cached sockcheck entries.
src/proto-p10.c (DelUser): Verify user before deletion.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-7
Michael Poole [Fri, 21 Jan 2005 15:10:49 +0000 (15:10 +0000)]
More debug allocator fixes and enhancements
src/alloc-srvx.c (*_MAGIC): ASk recognized the CCSDS ASM sequence.
(srvx_free): Overwrite with 0xDE bytes to distinguish from
uninitialized values. As SailorFrag suggested, only overwrite the
user region.
src/dict-splay.c (dict_insert): Check whether free functions need to
be worked around here as well.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-6
Michael Poole [Fri, 21 Jan 2005 00:48:35 +0000 (00:48 +0000)]
Add redzone and statistics reporting to debug allocator.
src/alloc-srvx.c (redzone): New variable to detect buffer overwrites.
(alloc_count, alloc_size): New variables to track allocation stats.
(srvx_malloc, srvx_realloc, srvx_free): Use the above.
src/opserv.c (OSMSG_STATS_MEMORY): New translation string.
(cmd_stats_memory): New (conditional) command function.
(init_opserv): Conditionally provide cmd_stats_memory.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-5
Michael Poole [Thu, 20 Jan 2005 23:41:17 +0000 (23:41 +0000)]
Add built-in debug malloc wrapper.
TODO: Remove the completed TODO item.
configure.in: Add --with-malloc=srvx support.
src/Makefile.am: Add alloc-srvx.c to extra sources.
src/common.h: Reindent debug malloc directives; add directives for
WITH_MALLOC_SRVX.
src/dict-splay.c: Kludge around free() as macro vs function.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-4
Michael Poole [Thu, 20 Jan 2005 22:51:54 +0000 (22:51 +0000)]
various bugfixes and IPv6 preparation work
src/modcmd.c (modcmd_privmsg): Fix CTCP PING response type.
src/opserv.help: Add column headers for command lists.
src/tools.c (is_gline, split_ircmask): Accept colons in hostnames.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-3
Michael Poole [Wed, 5 Jan 2005 01:03:05 +0000 (01:03 +0000)]
Add MODE_REGISTERED as +z for P10.
Add MODE_REGISTERED as +z for P10.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-2
Michael Poole [Tue, 4 Jan 2005 19:35:57 +0000 (19:35 +0000)]
Rotate ChangeLog for new repository; clarify documentation files
Rotate ChangeLog to show changes for srvx@srvx.net--2005-srvx repo.
Fix various file permissions to 664 instead of 620.
Update FAQ and TODO. Add UPGRADE file to arch and to distribution.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-1
Zoot [Tue, 23 Nov 2004 04:09:30 +0000 (04:09 +0000)]
Fix ban reader
* src/chanserv.c: Drop invalid bans with no reason during database reads
and require bans to have a reason set in add_channel_ban().
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-84
Michael Poole [Wed, 10 Nov 2004 01:25:53 +0000 (01:25 +0000)]
Fix nick length check in is_valid_nick().
The for() loop in is_valid_nick() leaves 'nick' as an empty string,
which is obviosly shorter than the nick length limit. Fix that.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-83
Michael Poole [Sat, 16 Oct 2004 21:14:11 +0000 (21:14 +0000)]
Fix glob matching against IPs
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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-82
adam [Wed, 15 Sep 2004 04:14:14 +0000 (04:14 +0000)]
Consolidate use_registered_mode into off_channel and expand overall functionality
* 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
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-81
Michael Poole [Mon, 13 Sep 2004 13:11:38 +0000 (13:11 +0000)]
ChanServ bugfixes for +z and addbans in suspended channels
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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-80
Michael Poole [Wed, 8 Sep 2004 23:36:51 +0000 (23:36 +0000)]
Implement item #
1011114, #997053
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-79
Michael Poole [Mon, 6 Sep 2004 13:35:59 +0000 (13:35 +0000)]
Fix bugs; better handle oplevels from ircu2.10.12
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-78
Zoot [Thu, 12 Aug 2004 16:06:55 +0000 (16:06 +0000)]
More title host checking
* src/nickserv.c: Make oset title verify that the final combined fakehost
will not be truncated before storing the title. Also, supply a missing
format string argument.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-77
Zoot [Sun, 8 Aug 2004 17:42:01 +0000 (17:42 +0000)]
Fix format string bug
* src/chanserv.c: Fix a format string bug in the myaccess command.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-76
Michael Poole [Mon, 2 Aug 2004 12:54:13 +0000 (12:54 +0000)]
Assorted bug fixes
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-75
Michael Poole [Thu, 22 Jul 2004 04:03:22 +0000 (04:03 +0000)]
Channel suspension, transfer and line wrap changes
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-74
Michael Poole [Mon, 19 Jul 2004 03:38:09 +0000 (03:38 +0000)]
Bugfixes for !trim users, !unsuspend and /clearmodes
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-73
Michael Poole [Mon, 12 Jul 2004 19:06:38 +0000 (19:06 +0000)]
add FAQ to distribition; make compatible with gcc-2.95
* Add FAQ to EXTRA_DIST in root.
* Name the anonymous union inside struct mod_chanmode.
* Typecast printf() field width arguments to int.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-72
Zoot [Sat, 10 Jul 2004 04:42:12 +0000 (04:42 +0000)]
Fix OperServ inviteme crash
* src/opserv.c: Fix a NULL pointer dereference in inviteme that caused crashes
for some users.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-71
Michael Poole [Thu, 1 Jul 2004 02:23:21 +0000 (02:23 +0000)]
miscellaneous bugfixes and indentation fixes
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-70
adam [Wed, 16 Jun 2004 12:23:32 +0000 (12:23 +0000)]
added modes parameter to srvx.conf to control user modes
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-69
adam [Tue, 8 Jun 2004 09:24:49 +0000 (09:24 +0000)]
fixed MODE_REGISTERED bug; introduced MCP_REGISTERED
* fixed MODE_REGISTERED bug: srvx was sending a blank mode change on channel unregistrations; we now have a srvx.conf setting that dictates whether or not to use MODE_REGISTERED (which has no corresponding letter on P10 networks!) - also, we now set MODE_REGISTERED in newly registered channels (which we werent before)
* introduced MCP_REGISTERED: we now don't let channels that are registered play with the registered mode (usually +r on bahamut networks) via chanserv user-level commands (ie: !mode -r)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-68
Michael Poole [Sat, 22 May 2004 04:24:57 +0000 (04:24 +0000)]
Add fake host support (assuming your ircd supports it)
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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-67
Michael Poole [Sat, 22 May 2004 03:00:05 +0000 (03:00 +0000)]
Remove obsolete check for src/srvx directory
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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-66
Michael Poole [Fri, 21 May 2004 12:58:18 +0000 (12:58 +0000)]
Fix memory leak in ?accounts
Fix a memory leak in ?accounts.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-65
Michael Poole [Fri, 21 May 2004 12:38:39 +0000 (12:38 +0000)]
Fix helpserv whine when helpers leave the channel; fix ?devoiceall
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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-64
adam [Mon, 17 May 2004 09:44:35 +0000 (09:44 +0000)]
fix minor EnfModes bug in chanserv.c
* address bug id #955105; minor EnfModes issue
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-63
adam [Fri, 14 May 2004 06:27:30 +0000 (06:27 +0000)]
fix stupid typo from --patch-61
* fix stupid typo in nickserv.c from --patch-61; sigh.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-62
adam [Fri, 14 May 2004 05:37:38 +0000 (05:37 +0000)]
rearrange chanserv-level ban/kick messages; change wording on authentication cookie email, implement old tried2reg patch
* 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)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-61
Michael Poole [Sun, 9 May 2004 03:05:48 +0000 (03:05 +0000)]
Fix several bugs; make off-channel a per-channel option
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-60
Michael Poole [Fri, 7 May 2004 14:32:06 +0000 (14:32 +0000)]
allow daemon mode under cygwin
* Remove code to disable daemon mode in Cygwin, since Cygwin now
properly implements fork() etc.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-59
adam [Thu, 6 May 2004 09:46:38 +0000 (09:46 +0000)]
basic off-channel support; restructuring how part functions are handled
* 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.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-58
adam [Sat, 1 May 2004 11:17:11 +0000 (11:17 +0000)]
introduce unreg_privmsg_func, fix minor autoinvite issue, alter account-finding on local services clients
* 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..)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-57
Michael Poole [Thu, 29 Apr 2004 01:57:00 +0000 (01:57 +0000)]
Remove debug messages from account MERGE command; translate RECLAIM kill message
* Change the debug messages in NickServ MERGE to be more succinct and
useful for accounting/undos.
* Translate the kill message sent when reclaiming an owned nickname.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-56
Michael Poole [Thu, 29 Apr 2004 01:51:19 +0000 (01:51 +0000)]
Fix Bahamut assertion failure; move BURST to more "natural" place
* Fix a mod_chanmode assertion failure when using proto-bahamut.c with
debugging enabled.
* Send BURST in response to SVINFO, not SERVER, so that eventual
timestamp adjustment is more accurate.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-55
Michael Poole [Thu, 29 Apr 2004 01:41:37 +0000 (01:41 +0000)]
Fix !up for users below GiveVoice level; implement RFE#933634
* If users have access belowGiveVoice, do not let them use UP.
* Show channel flags (suspended, autoop, etc) in MYACCESS.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-54
Michael Poole [Thu, 29 Apr 2004 00:31:22 +0000 (00:31 +0000)]
REALLY remove duplicate line in languages/en_UK/chanserv.help.
REALLY remove duplicate line in languages/en_UK/chanserv.help.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-53
Michael Poole [Wed, 28 Apr 2004 19:55:22 +0000 (19:55 +0000)]
Remove duplicate line in en_UK chanserv.help file
Remove a duplicate line in languages/en_UK/chanserv.help.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-52
Michael Poole [Wed, 28 Apr 2004 19:53:40 +0000 (19:53 +0000)]
Sanity check user infolines
* Disallow infolines longer than a configured maximum length (by
default, 400 characters).
* Disallow infolines that contain certain characters (currently
just ^A).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-51
Michael Poole [Mon, 12 Apr 2004 03:25:03 +0000 (03:25 +0000)]
fix compile errors on readdir()-deficient platforms
* Cygwin does not have "struct dirent.d_type". Check for that in the
configure script and use stat() to test for directory-ness instead.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-50
Michael Poole [Sat, 10 Apr 2004 23:04:21 +0000 (23:04 +0000)]
add en_UK translation by Byte
Add en_UK translation by byte.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-49
Michael Poole [Fri, 9 Apr 2004 22:18:21 +0000 (22:18 +0000)]
Fix service persistence bug in patch-47
patch-47 attempted to fix a previously reported error where srvx would
create NickServ, ChanServ, OpServ and Global even if the "nick" entry
was omitted from srvx.conf. This broke persistence of all service
bots added by the modcmd.service\ add comand. (Closes: #932566)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-48
Michael Poole [Fri, 9 Apr 2004 20:08:58 +0000 (20:08 +0000)]
Fix service triggers; allow service hostname configuration; fix glitches
* Improve length checking logic in ChanServ.names command.
* Fix service trigger registration so that database is used in
preference to srvx.conf and compiled-in defaults.
* Allow service hostnames to be configured in srvx.conf and through
"service add"; document this and show an example of setting the
service description.
* Fix an uninitialized value bug in OpServ.join.
* Make OpServ.addtrust accept a count of 0.
* Remove untranslated messages from languages/de/modcmd.help (so that
new "service add" help is inherited).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-47
adam [Fri, 9 Apr 2004 01:57:12 +0000 (01:57 +0000)]
changes to !uset autoinvite behavior, introduction of allchanmsg_func hooks
* changes to !uset autoinvite behavior: the autoinvite flag now works whether or not the channel it is set in is +i/+k.
* introduction of allchanmsg_func hooks: there is now a set of hooks (available via reg_allchanmsg_func()) in place to catch all public channel messages the services server sees.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-46
Michael Poole [Thu, 8 Apr 2004 03:42:49 +0000 (03:42 +0000)]
Fix automatic ChangeLog tag (I hope)
* Try to set the ChangeLog file tag correctly for it to be updated on
commit.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-45
Michael Poole [Thu, 8 Apr 2004 03:18:41 +0000 (03:18 +0000)]
Fix some signed/unsigned misbehaviors; add FAQ
* Change format and variable types to unsigned so as to avoid
confusing negative numbers with very large positive numbers.
* Create a FAQ file
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-44
Zoot [Sun, 4 Apr 2004 21:37:36 +0000 (21:37 +0000)]
Fix spurious user protection notices
* Fix ChanServ warning users when they remove a ban set on a protected
user's hostmask.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-43
Michael Poole [Sat, 3 Apr 2004 03:26:43 +0000 (03:26 +0000)]
I18N fixes and (hopefully) protocol fixes
* Correct some grammar in German translation (extraneous "vor").
* Try to fix desyncs when an older channel bursts in after initial join.
* Languages must be subdirectories that do not start with '.', so
check that before applying them as a language. Since we already
have the language list at helpfile_finalize() time, use it instead
of walking the "languages" directory again.
* Ignore 467 response from uplink.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-42
Michael Poole [Fri, 2 Apr 2004 18:38:19 +0000 (18:38 +0000)]
Fix mistakes in backport of German translation
* Delete mod-serverspy.help since it is not part of this code base.
* Replace /AUTHSERV with /msg $N@$s.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-41
Michael Poole [Fri, 2 Apr 2004 18:34:40 +0000 (18:34 +0000)]
Add German translation
* Fix a format string bug in nickserv.c:NSEMAIL_ALLOWAUTH_BODY.
* Use a separate key name for !netinfo's "Total User Count" so
other languages can get proper alignment for both that and
!info #channel.
* Add German language translation by Marc 'feigling' Kührer.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-40
Michael Poole [Tue, 30 Mar 2004 04:40:38 +0000 (04:40 +0000)]
translate interval strings; translate more NickServ messages
* Translate interval strings to the user's language.
* Translate cookie emails and auth failure messages based on the
account's preferred language, rather than the user's preferred
language (they will not be authed, so they would get lang_C).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-39
Michael Poole [Tue, 30 Mar 2004 04:25:14 +0000 (04:25 +0000)]
Fix uninitialized mod_chanmode element in debug build
* Convert an old-style auto-variable mod_chanmode to use
mod_chanmode_init() so that all fields are initialized.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-38
Michael Poole [Tue, 30 Mar 2004 04:11:03 +0000 (04:11 +0000)]
Multi-language support fixes
* Copy keys in per-language message tables so that they don't point to
free()d memory.
* Only warn about missing/extra messages if there are any.
* In language_read_list(), do not allocate languages "." or "..".
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-37
Michael Poole [Mon, 29 Mar 2004 21:10:10 +0000 (21:10 +0000)]
automatic arch-version.h update; CTCP support; helpfile fixes; disk-out-of-space error detection and handling
* Add a rule to automatically check arch version and update
arch-version.h when needed
* Implement CTCP response handling messages direct to services.
* Fix grammar error in GIVEOWNERSHIP help entry, fix cross-reference
markup in several ChanServ commands (should underline, not bold, the
"See Also:" link), remove VERSION help entries from modules that no
longer implement that command.
* Check for errors (using setjmp/longjmp) when writing to a saxdb
file, and log the failures.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-36
Michael Poole [Sun, 28 Mar 2004 03:28:18 +0000 (03:28 +0000)]
More helpfile fixes
* Allow a helpfile to use another module's expansion function by using
the syntax ${module:variable}, so that "set language" can be kept in
nickserv.help.
* Fix typos, unclear help entries, and add some missing entries.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-35
Zoot [Thu, 25 Mar 2004 23:17:04 +0000 (23:17 +0000)]
Documentation update
* Make some further updates to INSTALL to bring it in line with srvx 1.3
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-34
Michael Poole [Thu, 25 Mar 2004 21:41:17 +0000 (21:41 +0000)]
Message and documentation cleanups
* Update version number in INSTALL and mention where we do most of
srvx's testing.
* Move the message about using the authcookie to inside of
nickserv_make_cookie(), so that when another cookie exists, only the
"cookie already pending" message is sent.
* Fix various typos, extraneous sentences, and misplaced command
listings in nickserv.help.
* Remove (unused) fakehost options from srvx.conf.example and update
ChanServ's set_shows option.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-33
Michael Poole [Wed, 24 Mar 2004 20:32:16 +0000 (20:32 +0000)]
Infinite recursion fix; mod_chanmode_parse() fixes
* Default lang->parent to lang_C rather than language_find("C"), so
that trying to create language "C" does not cause infinite recursion.
* Fail when we try to parse a mode with an unrecognized mode character
from users; ignore them coming from a server.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-32
Michael Poole [Tue, 23 Mar 2004 00:12:53 +0000 (00:12 +0000)]
i18n fixes
* Fix typos in several message strings, and clarify others.
* Typecast first argument of gethostbyaddr() to quash warnings.
* Load languages in finalization, not initialization, and do not crash
when running off the end of a localized strings.db file.
* Show the LANGUAGE option in NickServ SET response.
* Remove mention of GHOST command when !enable_ghost.
* Only initialize alloc_argc when !defined(NDEBUG)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-31
Michael Poole [Fri, 19 Mar 2004 14:46:53 +0000 (14:46 +0000)]
Fix language initialization bug; fix email change text
* Initialize each new account's language when registering it.
* Send the first half of the email change cookie to the old address,
rather than sending the second half (which also goes to the new
address).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-30
Michael Poole [Wed, 17 Mar 2004 04:27:17 +0000 (04:27 +0000)]
ChanServ seen fixes; other cleanups
* Remove rule to generate the unused EXTRA_MODULES preprocessor macro.
* Properly adjust ChanServ seen time when a user leaves or is kicked
from a channel.
* Read languages from disk before initializing the core services,
since they must all be available when loading accounts.
* Fix a typo in the log BNF documentation, and add =SEVLIT support for
consistency.
* Add missing "invalid" to NSMSG_INVALID_ANNOUNCE string.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-29
Entrope [Fri, 12 Mar 2004 00:27:29 +0000 (00:27 +0000)]
fix channel mode bouncing bugs
* Make mod_chanmode_dup() copy the limit and key like one might expect.
* Make ChanServ's handle_mode() copy the default modes using
mod_chanmode_dup() instead of an implicit memcpy.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-28
Entrope [Thu, 11 Mar 2004 16:44:35 +0000 (16:44 +0000)]
Fix !resync; helpfile updates; improve ?modcmd
* Make ChanServ.RESYNC op (or voice) users when GiveOps (GiveVoice,
respectively) is 0 and the user is not on the userlist.
* Remove mention of PEONINVITE from chanserv.help.
* Mention the GIVEOWNERSHIP command in HelpServ's help file; remove
mention of the removed VERSION and WRITE commands.
* Make modcmd.MODCMD accept no options, and display the (final)
settings for the command. Update the help entry for it.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-27
Entrope [Wed, 10 Mar 2004 19:04:59 +0000 (19:04 +0000)]
License update
* Revert to plain GPLv2.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-26
Entrope [Wed, 10 Mar 2004 17:03:30 +0000 (17:03 +0000)]
Further cleanups and bugfixes
* Remove "TODO: reimplement" comment in chanserv.c, since all the
functions were already reimplemented.
* Make "/msg ChanServ huggle" work again.
* Fix error messages when bad target names given to say and emote.
* If we get a MODE change affecting a user who somehow quit already,
just ignore it.
* Add debugging checks for mod_chanmode argument counts.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-25
Entrope [Mon, 8 Mar 2004 17:41:48 +0000 (17:41 +0000)]
bug fixes (from code coverage tests)
* Fix typo in CSMSG_ADDED_USER message.
* Fix memory leak in !bans when no bans are shown.
* Fix SAY, EMOTE to user targets.
* Require unsuspended channel for OPCHAN (i.e. ChanServ is in-channel).
* Fix typo in TOPICSNARF help description.
* Fix mod_chanmode argc when reopping services.
* Fix memory leak when rehashing with with an uplink bind address.
* Fix typo in OSMSG_NICK_UNRESERVED message.
* Make *OpServ.op actually op non-ops, instead of just ops.
* Fix kick message translations when shutting down a channel.
* Fix use-after-free if an oper does ?part #badchan.
* Make mod_chanmode_apply() more sensitive to invalid mode changes.
* In create_helper(), let AddChannelUser() decide whether to op the user.
* Remove "Mod" and "Game" from "set_shows" in srvx.conf.example.
* Do not print the status "." in tests when full debug mode is on.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-24
Entrope [Thu, 4 Mar 2004 04:48:35 +0000 (04:48 +0000)]
Bug fixes and cleanups
* Remove unused src/expnhelp.c file.
* Do not call mod_chanmode_announce() if we give a user neither voice
nor ops (it causes an assertion failure).
* Make switch() on mod_chanmode argument modes a little clearer.
* Add OSMSG_NICK_UNRESERVED format string.
* Translate weekly statistics report headers for HelpServ.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-23
Entrope [Wed, 3 Mar 2004 01:47:41 +0000 (01:47 +0000)]
Various bug fixes
* In ?kickbanall, mod_chanmode_alloc(1) when we only use one arg.
* In ?modcmd ... channel_access, accept "0" to mean the same as "none."
* In log.c, make a single function to free the oldest log entry for a
log_type struct.
* Add more checks for cmd==NULL in chanserv.c:eject_user().
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-22
Entrope [Tue, 2 Mar 2004 18:21:59 +0000 (18:21 +0000)]
Add MYACCESS command; fix reference count bug in MOVE
* Always LockChannel(target) when moving a registered channel.
* Move the self-access list function from ACCESS to MYACCESS, so that
ACCESS can be marked with MODCMD_REQUIRE_CHANUSER.
* Update documentation for MYACCESS vs ACCESS.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-21
Entrope [Tue, 2 Mar 2004 04:35:35 +0000 (04:35 +0000)]
Fix NickServ language crash; convert four ChanServ binary options to level options
* When you use "/msg nickserv set language" and you have no language
assigned, it would crash. Fix this.
* Convert four ChanServ binary options to level based options:
* Voice (CHANNEL_VOICE_ALL) -> Voice (lvlGiveVoice)
* UserInfo (CHANNEL_INFO_LINES) -> UserInfo (lvlUserInfo)
* PeonInvite (CHANNEL_PEON_INVITE) -> InviteMe (lvlInviteMe)
* TopicSnarf (CHANNEL_TOPIC_SNARF) -> TopicSnarf (lvlTopicSnarf)
* Document the changes in ChanServ options.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-20
Entrope [Mon, 1 Mar 2004 16:23:51 +0000 (16:23 +0000)]
giveownership fix; handle_join +ov "fix"; revert OSMSG_FLOOD_MODERATE
* Fix !giveownership by staff.
* If ChanServ gives ops to someone onjoin, do not also give them voice.
* Translate OSMSG_FLOOD_MODERATE according to the channel options
(well, hopefully in the future we will support that) rather than the
join-flooding user's options.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-19
Adam Loghry [Mon, 1 Mar 2004 09:54:10 +0000 (09:54 +0000)]
no error on inexistent commands done publicly, announcements setting display fix, two opserv chaninfo fixes, OSMSG_FLOOD_MODERATE now works when sent to channels, and hostmask lastquit searches
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-18
Entrope [Mon, 1 Mar 2004 02:44:25 +0000 (02:44 +0000)]
Minor fixes and improvements
* Fix implementation of privileged-setter note types (it ignored the
OpServ access level before).
* Show proper message when an account's announcements are disabled.
* Translate OSMSG_FLOOD_MODERATE when sending it to a channel.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-17
Entrope [Sun, 29 Feb 2004 21:58:29 +0000 (21:58 +0000)]
Fix possible crash in chanserv.c:handle_kick()
* Delay looking up translation for CSMSG_USER_PROTECTED until we know
the kicker actually exists (if a server does the KICK, kicker==NULL).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-16
Entrope [Sun, 29 Feb 2004 14:47:51 +0000 (14:47 +0000)]
Update .arch-inventory for in-tree builds; remove --disable-lame-tricks
* Switch to using "backup" in .arch-inventory for generated sources
and objects, since that is more accurate than "precious."
* Add normal build output to .arch-inventory so normal builds do not
cause tree-lint failures (e.g. during "tla update" - bad!).
* Remove the "lame-tricks" option from configure.in since it was not
used anyway.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-15
Zoot [Sun, 29 Feb 2004 08:07:37 +0000 (08:07 +0000)]
Limit mode parameter count.
Restrict the number of mode parameters sent by the P10 protocol
backend to MAXMODEPARAMS.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-14
Entrope [Sun, 29 Feb 2004 03:40:25 +0000 (03:40 +0000)]
Privileged service fixes
* Allow runtime control of privileged services.
* Make all oper commands default to having flags +oper.
* Add a "privileged" directive for OpServ in srvx.conf.example.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-13
Entrope [Sat, 28 Feb 2004 21:33:30 +0000 (21:33 +0000)]
more bug fixes from GameSurge
* Refuse to let an owner !set setters 501.
* Report proper level range when using !trim users <duration>.
* Refuse to let anyone !set <numericoption> 502, etc.
* Refuse to let people below owner level !set <numericoption> above
their level.
* Make !d 1d6+5 work.
* Mark users as seen/present AFTER deciding whether to show their
infoline, and PRIVMSG infolines rather than NOTICE them.
* Translate "CSMSG_USER_PROTECTED" (kick protection enforcement
message).
* Enforce plain mode changes, not just ops/deops/bans etc.
* Fix documentation for ChanServ UNREGISTER command.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-12
Entrope [Sat, 28 Feb 2004 19:08:13 +0000 (19:08 +0000)]
Fix bugs found on GameSurge
* Remove unused ARCH_REVISION macro in Makefile.am
* Fix !trim <userlevel> <duration> (so it does not trim ALL users)
* Properly allow owners to set levels to 501
* Set "deopped" when we deop the person who changed modes
* Mark the first user in a channel as a chanop (fixes a spurious
HACK(4) for newly registered channels).
* Document user level ranges for the TRIM command.
* Document user-level-based SET options as being such (rather than
being multiple-choice options).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-11
Zoot [Sat, 28 Feb 2004 18:46:03 +0000 (18:46 +0000)]
reply correctly to bad bans
Send the correct ban being bounced.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-10
Entrope [Sat, 28 Feb 2004 04:31:12 +0000 (04:31 +0000)]
put back Make rule for arch-version.h
* Reinstate the rule to create arch-version.h, which I accidentally
deleted in the last commit
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-9
Entrope [Sat, 28 Feb 2004 00:29:08 +0000 (00:29 +0000)]
runtime helpfile splicing
* Add a miniature parser to the helpfile reader, allowing
nickserv.help's subsections to be selected at runtime.
* Move nickserv.help.m4 to nickserv.help and rewrite the
selection code to use the above.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-8
Entrope [Fri, 27 Feb 2004 16:31:57 +0000 (16:31 +0000)]
fix userlist presence tracking; "version" command on all services
* Change scan_handle_presence() to scan_user_presence(), since we always
have the userData* at the caller site.
* Make handle_auth() respect user suspensions.
* In handle_part(), let scan_user_presence() update "seen" time.
* Make ChanServ adduser command take arguments in the "expected" order
("!adduser target level", not "!adduser level target")
* Add the "version" command to all built-in services
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-7
Entrope [Wed, 25 Feb 2004 04:06:30 +0000 (04:06 +0000)]
ChanServ, OpServ and main.c bug fixes
* Read new-style channel flags from the correct field, and do not make
ChanServ rejoin channels that are still suspended
* Allow service nicknames to be omitted from srvx.conf (again)
* Construct "opserv" bot earlier so that database read works correctly
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-6
Entrope [Tue, 24 Feb 2004 03:55:22 +0000 (03:55 +0000)]
fix TODO list, services without "description" fields
Remove items in the TODO list that have been done
Restore the ability to use a default description for services when a
"nick" but no "description" is present in srvx.conf
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-5
Entrope [Fri, 20 Feb 2004 19:29:46 +0000 (19:29 +0000)]
Fix zoot style [wcmop]list; tweak events access
Use proper lower bound for zoot style user-level lists.
Change default "events" access to 350.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-4
Entrope [Thu, 19 Feb 2004 22:36:42 +0000 (22:36 +0000)]
cleanups and fixes
Fix the response when trying to set an option to an invalid access level.
Put accurate headers on zoot_list !users output.
Reduce default addban/addtimedban/delban access levels to 250.
Add advertising/support plug for #srvx.
Handle (but report) IRC socket connection errors.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-3
Entrope [Wed, 18 Feb 2004 00:18:30 +0000 (00:18 +0000)]
Support topic bursts; fix topic display in CHANINFO command
When we wipe out an older channel on our end, clear its topic.
Fix the message send function used by CHANINFO.
When we get a P10 T message, check for the extra fields added in Asuka.
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-2
Entrope [Tue, 17 Feb 2004 22:02:03 +0000 (22:02 +0000)]
Indenting cleanups, +sp fix, PING fix
Add explicit copyright notice to VERSION command
When receiving a PING, respond using numnick instead of readable name
Indenting fixes
Remove out-of-date references to GamesNET
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-1