srvx.git
12 years agoadded option to force opers to be in staff_auth_channel
pk910 [Fri, 8 Jul 2011 14:49:55 +0000 (16:49 +0200)]
added option to force opers to be in staff_auth_channel

12 years agofixed various build errors
pk910 [Fri, 8 Jul 2011 00:07:00 +0000 (02:07 +0200)]
fixed various build errors

12 years agoadded LOC Support with privilege exchange and privilege class interface
pk910 [Thu, 7 Jul 2011 23:54:49 +0000 (01:54 +0200)]
added LOC Support with privilege exchange and privilege class interface

12 years agoadded field called "website" to the handle info (only accessible by bots)
pk910 [Thu, 7 Jul 2011 23:20:19 +0000 (01:20 +0200)]
added field called "website" to the handle info (only accessible by bots)

12 years agoadded $.x.y fakhosts where $ gets replaced with the users auth handle
pk910 [Thu, 7 Jul 2011 21:04:36 +0000 (23:04 +0200)]
added $.x.y fakhosts where $ gets replaced with the users auth handle

12 years agogeneral P10_RELAY, P10_SVSMODE & P10_SVSJOIN support
pk910 [Thu, 7 Jul 2011 20:50:19 +0000 (22:50 +0200)]
general P10_RELAY, P10_SVSMODE & P10_SVSJOIN support

12 years agoincreased TOPICLEN to 500
pk910 [Thu, 7 Jul 2011 20:40:45 +0000 (22:40 +0200)]
increased TOPICLEN to 500

12 years agogeneral support for Channel Mode +NMFa and User Mode +SDXHst
pk910 [Thu, 7 Jul 2011 20:37:06 +0000 (22:37 +0200)]
general support for Channel Mode +NMFa and User Mode +SDXHst

12 years agoadded invite_timeout to the example configuration
pk910 [Thu, 7 Jul 2011 20:12:21 +0000 (22:12 +0200)]
added invite_timeout to the example configuration

12 years agoignore MODE -z but allow MODE +z
pk910 [Thu, 7 Jul 2011 20:07:40 +0000 (22:07 +0200)]
ignore MODE -z but allow MODE +z

12 years agoonly give users +ov if they have UserAutoOp enabled on cmd_resync
pk910 [Thu, 7 Jul 2011 20:01:59 +0000 (22:01 +0200)]
only give users +ov if they have UserAutoOp enabled on cmd_resync

12 years agocmd_invitemeall added
pk910 [Thu, 7 Jul 2011 19:57:24 +0000 (21:57 +0200)]
cmd_invitemeall added

12 years agofixes for the last commits (buildable now)
pk910 [Thu, 7 Jul 2011 19:32:22 +0000 (21:32 +0200)]
fixes for the last commits (buildable now)

12 years agoadded entry counter to cmd_myaccess
pk910 [Thu, 7 Jul 2011 19:28:38 +0000 (21:28 +0200)]
added entry counter to cmd_myaccess

12 years agoadded channel votes
pk910 [Thu, 7 Jul 2011 19:24:53 +0000 (21:24 +0200)]
added channel votes

12 years agoadded channel expire setting
pk910 [Thu, 7 Jul 2011 18:57:00 +0000 (20:57 +0200)]
added channel expire setting

12 years agoadded cmd_info peek time info
pk910 [Thu, 7 Jul 2011 18:42:12 +0000 (20:42 +0200)]
added cmd_info peek time info

12 years agoadded user invite timeout
pk910 [Thu, 7 Jul 2011 11:24:14 +0000 (13:24 +0200)]
added user invite timeout

12 years agoappended pre-install notes to INSTALL
pk910 [Thu, 7 Jul 2011 11:09:49 +0000 (13:09 +0200)]
appended pre-install notes to INSTALL

12 years agofixed a small build problem (RANLIB is undefined)
pk910 [Thu, 7 Jul 2011 11:07:23 +0000 (13:07 +0200)]
fixed a small build problem (RANLIB is undefined)

12 years agoapplied SpamServ patch
pk910 [Thu, 7 Jul 2011 10:46:19 +0000 (12:46 +0200)]
applied SpamServ patch
http://sourceforge.net/tracker/?func=detail&aid=906045&group_id=31654&atid=403003

12 years agoFix typo in #if test for localtime_r().
Michael Poole [Mon, 27 Jun 2011 01:59:22 +0000 (21:59 -0400)]
Fix typo in #if test for localtime_r().

13 years agoFix the name and type of helpserv_bot.persist_types[].
Michael Poole [Tue, 3 May 2011 02:21:19 +0000 (22:21 -0400)]
Fix the name and type of helpserv_bot.persist_types[].

This array really contains persistence lengths.  gcc 4.5.2 complains
about the mismatched comparisons.

src/mod-helpserv.c (struct helpserv_bot): Rename persist_types to
    persist_lengths.  Change its type to enum persistence_length.

13 years agoUpdate IP glob matching to work more accurately with IPv6.
Michael Poole [Mon, 22 Nov 2010 12:33:45 +0000 (07:33 -0500)]
Update IP glob matching to work more accurately with IPv6.

When given an IP like 2001::1234:5678:1:2:3:4, srvx (properly) makes
a glob like 2001:0:4137:*.  However, it wouldn't realize that the
glob actually matches the IP, because it used string glob matching.

src/tools.c (user_matches_glob): Use a parsed glob to match against
  the user's IP address.

13 years agoComplain properly about unterminated comments in config files.
Michael Poole [Mon, 22 Nov 2010 12:31:01 +0000 (07:31 -0500)]
Complain properly about unterminated comments in config files.

sylar noticed that unterminated comments would often cause an
infinite loop in the config parser.

src/recdb.c (fail_codes): Add UNTERMINATED_COMMENT value.
  (parse_skip_ws): Abort with that on EOF inside a comment.
  (failure_reason): Handle UNTERMINATED_COMMENT.

13 years agoFix available byte count returned by ioq_grow().
Michael Poole [Fri, 19 Nov 2010 21:02:01 +0000 (16:02 -0500)]
Fix available byte count returned by ioq_grow().

ioq_grow() needs to use the same -1 that ioq_put_avail() uses when
the "get" pointer is at byte 0.

src/ioset.c (ioq_grow): Reduce the reported available-byte count by 1.

13 years agoFix endianness of IPv6 addresses in generate_hostmask().
Michael Poole [Sun, 4 Jul 2010 21:58:35 +0000 (17:58 -0400)]
Fix endianness of IPv6 addresses in generate_hostmask().

src/proto-common.c (generate_hostmask): The IPv6 address parts are
    network-endian, so convert them before printing them.

14 years agoFix G-line handling and ?gtrace time display.
Michael Poole [Sun, 18 Apr 2010 23:21:41 +0000 (19:21 -0400)]
Fix G-line handling and ?gtrace time display.

src/gline.c (gline_comparator): Use lifetime rather than expiration time to
    sort G-lines.
  (gline_add): Only update expiration time and reason if the new
     modification time is newer than the previous one.  Never update
     issuer (ircu doesn't track it).
src/opserv.c (gtrace_print_func): Display G-lines with no expiration time
  correctly.

14 years agoClean up the implementations of mod_chanmode_format().
Michael Poole [Thu, 18 Mar 2010 03:31:45 +0000 (23:31 -0400)]
Clean up the implementations of mod_chanmode_format().

src/proto-bahamut.c (mod_chanmode_format): Use a second buffer for the
    arguments that get associated with some modes, and append it to
    outbuff at the end.

src/proto-p10.c (mod_chanmode_format): Likewise.

14 years agoSilently ignore +z when users use it from ChanServ. Fixes SF#2970686.
Michael Poole [Thu, 18 Mar 2010 03:00:32 +0000 (23:00 -0400)]
Silently ignore +z when users use it from ChanServ.  Fixes SF#2970686.

src/proto-p10.c (mod_chanmode_parse): Just ignore +z when MCP_REGISTERED
  is set (which only happens from ChanServ).
src/opserv.c (cmd_clearmodes): Do not automatically clear +z.

14 years agoSimplify G-line code somewhat. Generate better output for ?gtrace print.
Michael Poole [Thu, 18 Mar 2010 02:53:30 +0000 (22:53 -0400)]
Simplify G-line code somewhat.  Generate better output for ?gtrace print.

A hub with a negative clock skew will cause adverse results (like the
issued or lastmod times being in the network's future).  That will be
fixed in ircu.

src/gline.c (gline_for_p): Rewrite to just compare the G-line pointer.
  (gline_add): Use that instead.  Move "issued" back in time if the
    lastmod time is earlier than we know the G-line was issued.
src/opserv.c (OSMSG_GTRACE_FOREVER): New format string.
  (OSMSG_GTRACE_EXPIRED): Likewise.
  (gtrace_print_func): Use the appropriate OSMSG_GTRACE_* string.

14 years agoImplement remote /time query functionality.
Michael Poole [Thu, 18 Mar 2010 02:11:27 +0000 (22:11 -0400)]
Implement remote /time query functionality.

src/proto-p10.c (cmd_time): New function.
  (init_parse): Register it.

14 years agoSupport G-line lifetimes.
Michael Poole [Thu, 18 Mar 2010 02:11:00 +0000 (22:11 -0400)]
Support G-line lifetimes.

This involves using the old "expiration" as when the G-line becomes
inactive, and adding a new "lifetime" that is the latest of all the
expiration times that the G-line has ever had.  For convenience,
gline_add() will compare its new "lifetime" argument with its calculated
expiration time -- so callers can safely pass 0 as the lifetime.

src/gline.h (struct gline): Add the lifetime field.  Add Doxygen comments
    for future reference.
  (struct gline_discrim): Add bounds for the lifetime field.
  (gline_add): Add lifetime argument.

src/gline.c (KEY_LIFETIME): New database key.
  (delete_gline_for_p): Delete.
  (gline_expire): Use lifetime to determine whether a G-line expired.
  (gline_remove): Simplify greatly, because we don't actually remove
    G-lines any more (we just mark them immediately expired).
  (gline_add): Add parameter for lifetime, and use it.
  (gline_add_record): Parse lifetime field if it is present.  Simplify
    the parsing of the issued field.
  (gline_write_entry): Write the lifetime.
  (gline_discrim_create): Use ULONG_MAX rather than INT_MAX for
    maximum timestamps.  Parse "lifetime" arguments.
  (gline_discrim_match): Check the lifetime bounds.

src/mod-blacklist.c (dnsbl_hit): Pass 0 lifetime for gline_add().
  (blacklist_check_user): Likewise.

src/mod-sockcheck.c (sockcheck_issue_gline): Likewise.

src/opserv.c (OSMSG_GTRACE_FORMAT): Add lifetime field.
  (opserv_block): Pass 0 lifetime for gline_add().
  (cmd_gline): Likewise.
  (opserv_new_user_check): Likewise.
  (gtrace_print_func): Format the lifetime.

src/proto-p10.c (irc_gline): Include the lifetime in the correct place.
  (irc_ungline): Include the current timestamp (last modified time).
  (cmd_num_gline): When the lifetime argument is given, parse it.
  (cmd_gline): Likewise.  Also implement the normal ircu check for
    expiration as an absolute versus relative time.

14 years agoFix various mode-related bugs (including SF#2964782 and SF#2966959).
Michael Poole [Mon, 15 Mar 2010 01:40:24 +0000 (21:40 -0400)]
Fix various mode-related bugs (including SF#2964782 and SF#2966959).

src/chanserv.c (cmd_mode): Use MCP_NO_APASS, and unparse the mode
    change for display.
  (chan_opt_usergreeting): Use MCP_NO_APASS here too.
  (chanserv_conf_read): Likewise.
  (chanserv_channel_read): Likewise.

src/opserv.c (cmd_kick): Do not let users try to kick services.

src/proto.h (MCP_NO_APASS): New flag.

src/proto-p10.c (irc_user_mode_chars): Allow displaying +x.
  (mod_usermode): Treat +h as setting +x also.
  (mod_chanmode_parse): Reject +A and +U when passed MCP_NO_APASS.

14 years agoFix parsing of (P10) MODE <nickname> +<mode> <parameters>.
Michael Poole [Sun, 14 Mar 2010 22:51:52 +0000 (18:51 -0400)]
Fix parsing of (P10) MODE <nickname> +<mode> <parameters>.

src/proto-p10.c (cmd_mode): Unsplit the mode and any trailing arguments.

14 years agoRemove empty +z channels when the +z is removed.
Michael Poole [Tue, 9 Mar 2010 02:52:46 +0000 (21:52 -0500)]
Remove empty +z channels when the +z is removed.

src/proto-p10.c (dead_channels): New variable.
  (parse_line): Release any dead channels after each command.
  (mod_chanmode_parse): Queue -z'ed channels to be released.

14 years agoDo not send infolines when a normal user joins a +D channel.
Michael Poole [Tue, 9 Mar 2010 02:30:59 +0000 (21:30 -0500)]
Do not send infolines when a normal user joins a +D channel.

src/chanserv.c (handle_join): Suppress infolines for users whose JOIN is
    not going to be broadcast.

14 years agoFix dereference of invalid pointer with ?chaninfo of empty +z channel.
Michael Poole [Tue, 9 Mar 2010 02:29:53 +0000 (21:29 -0500)]
Fix dereference of invalid pointer with ?chaninfo of empty +z channel.

src/opserv.c (cmd_chaninfo): Make sure there is at least one element in
    the members array before reading from the first element.

14 years agoAlso use AUTO for mod-blacklist glines.
ThiefMaster [Tue, 2 Feb 2010 13:42:42 +0000 (14:42 +0100)]
Also use AUTO for mod-blacklist glines.

14 years agoMinor compilation and correctness fixes.
Michael Poole [Mon, 15 Feb 2010 22:14:51 +0000 (17:14 -0500)]
Minor compilation and correctness fixes.

src/heap.c (ulong_comparator): Fix for the case where "a" and "b" are
    different by more than the (signed) range of the "int" type.
src/mod-helpserv.c (cmd_modstats): Fix a signed/unsigned warning.
src/proto-p10.c (reg_notice_func): Fix some cut-and-paste errors.

14 years agoSuppress pointless display of oplevels in ?chaninfo.
Michael Poole [Mon, 15 Feb 2010 22:12:11 +0000 (17:12 -0500)]
Suppress pointless display of oplevels in ?chaninfo.

src/hash.* (modeNode_sort): Create as a "natural" sort order.
src/proto-p10.c (modeNode_sort): Rename to modeNode_sort_p10.
src/opserv.c (cmd_chaninfo): Clone and sort the membership array.  Only
    display oplevels if at least one member has a non-default oplevel.

14 years agoConvert a C++-style comment to C style for -ansi compilation mode.
Michael Poole [Mon, 15 Feb 2010 21:01:56 +0000 (16:01 -0500)]
Convert a C++-style comment to C style for -ansi compilation mode.

src/nickserv.c (opt_fakehost): Convert a // comment to a /* */ comment.

14 years agoAdd email argument to oregister
Michael Poole [Mon, 15 Feb 2010 21:00:28 +0000 (16:00 -0500)]
Add email argument to oregister

Conflicts:

src/nickserv.help

14 years agoAdd MODSTATS command to HelpServ to allow stats modifications.
ThiefMaster [Sat, 9 Jan 2010 16:43:18 +0000 (17:43 +0100)]
Add MODSTATS command to HelpServ to allow stats modifications.

14 years agoSend helpserv notifications only to one helper client; preferably the one in the...
ThiefMaster [Fri, 8 Jan 2010 21:08:50 +0000 (22:08 +0100)]
Send helpserv notifications only to one helper client; preferably the one in the channel.

14 years agoDisplay detailed usercounts in !peek (ops/voices/regulars)
ThiefMaster [Sun, 23 Aug 2009 17:29:25 +0000 (19:29 +0200)]
Display detailed usercounts in !peek (ops/voices/regulars)

14 years agoExclude accounts with the +b flags in visited/expiry and mark them
ThiefMaster [Sun, 23 Aug 2009 12:50:43 +0000 (14:50 +0200)]
Exclude accounts with the +b flags in visited/expiry and mark them
as "Bot" instead of "Normal" in !users.

14 years agoMake titlehost_suffix a global var so it can be accessed from outside of nickserv.c
ThiefMaster [Mon, 18 Jan 2010 15:34:59 +0000 (16:34 +0100)]
Make titlehost_suffix a global var so it can be accessed from outside of nickserv.c
Use *!*@account.*.titlehost_suffix in !ban *account instead of *!*@account.*

14 years agoGet rid of ugly goto in opt_fakehost.
ThiefMaster [Mon, 7 Sep 2009 11:25:49 +0000 (13:25 +0200)]
Get rid of ugly goto in opt_fakehost.

14 years agoCheck for truncated title fakehosts when renaming accounts.
ThiefMaster [Wed, 2 Sep 2009 11:53:27 +0000 (13:53 +0200)]
Check for truncated title fakehosts when renaming accounts.
Properly check for truncated fakehosts/idents when osetting ident@host.

14 years agoReject ident@host fakehost osets if the setter lacks access to fake idents
ThiefMaster [Tue, 1 Sep 2009 21:29:27 +0000 (23:29 +0200)]
Reject ident@host fakehost osets if the setter lacks access to fake idents
instead of setting the full ident@host as a fakehost (real@fake@fake).

14 years ago* Fix sending of empty fakehosts when osetting 'fakehost xxx@'
ThiefMaster [Fri, 8 May 2009 23:18:55 +0000 (01:18 +0200)]
* Fix sending of empty fakehosts when osetting 'fakehost xxx@'
* Improve display of fake ident & host ("Fakehost: ident@host")

14 years agoProperly check for fake idents when checking for user matches.
Michael Poole [Mon, 15 Feb 2010 20:56:42 +0000 (15:56 -0500)]
Properly check for fake idents when checking for user matches.

14 years agoAdd support for snircd-style fakehosts (usermode +h, fake idents)
ThiefMaster [Sat, 28 Mar 2009 13:12:07 +0000 (14:12 +0100)]
Add support for snircd-style fakehosts (usermode +h, fake idents)

14 years agoAdd 'service offchannel' command to enable/disable offchannel reaction of services.
ThiefMaster [Sat, 28 Mar 2009 14:41:15 +0000 (15:41 +0100)]
Add 'service offchannel' command to enable/disable offchannel reaction of services.

Conflicts:
        src/proto-common.c

14 years agoBug fix round-up for SF#2885593, SF#2924219 and SF#2946094.
Michael Poole [Mon, 15 Feb 2010 20:28:59 +0000 (15:28 -0500)]
Bug fix round-up for SF#2885593, SF#2924219 and SF#2946094.

Thanks to ZeRoFiGhter for finding and analyzing these.

src/chanserv.c (cmd_move): Scan all users' presence in the new channel.
  (merge_users): Use the newer "seen" time when merging.  Scan source
    users' presence in the new channel.
  (cmd_mdel_user): "actor" already considers whether the user is helping,
    so use that information.
  (handle_join): Allow queuing dynlimit updates during burst.
src/mod-helpserv.c (handle_join): Fix request list indexing.
src/proto-p10.c (irc_kill): Don't insert self in the kill path; our
    uplink does that (at least for ircu2.10.12.x).

14 years agoFix the time we set of SO_REUSEADDR for listening sockets.
Michael Poole [Fri, 8 Jan 2010 03:01:26 +0000 (22:01 -0500)]
Fix the time we set of SO_REUSEADDR for listening sockets.

src/ioset.c (ioset_listen): Linux -- reasonably -- requires that
    SO_REUSEADDR be set on a socket before binding it to an in-use socket.
    So do that.

14 years agoSend oplevels correctly during a burst.
Michael Poole [Thu, 7 Jan 2010 02:33:21 +0000 (21:33 -0500)]
Send oplevels correctly during a burst.

src/hash.c (AddChannelUser): Initialize oplevel to the maximum, not -1.
src/proto-p10.c (parse_oplevel): Move up for easier inlining.
  (modeNode_sort): New function.
  (irc_burst): Use it to sort the membership list for channels so the
    members' oplevels can be sent correctly.
  (cmd_burst): Simplify the handling of oplevels.
  (mod_chanmode_parse): Only change the member's oplevel when opping or
    deopping -- otherwise +v would set it to MAXOPLEVEL!

14 years agoFix the build with gcc 4.4 and newer versions of libtool.
Michael Poole [Thu, 7 Jan 2010 02:28:45 +0000 (21:28 -0500)]
Fix the build with gcc 4.4 and newer versions of libtool.

configure.in: Update AC_PREREQ to autoconf 2.64.  Use LT_INIT instead
  of AC_PROG_LIBTOOL.  Remove the deprecated AC_TYPE_SIGNAL (which we
  didn't use anyway).  Fix the indentation of the explanatory text for
  --without-kevent and --with-win32.

src/sar.c: Convert "struct sockaddr_storage" to "void *" to comply
  with C99's strict(er) aliasing rules.  Allocate off the stack or
  heap, as appropriate.  Add new function sar_free_nameserver() to
  clean up the heap-allocated data.

14 years agoFix input and output bugs in P10 IPv6 addresses with zero elements.
Michael Poole [Wed, 23 Sep 2009 15:26:33 +0000 (11:26 -0400)]
Fix input and output bugs in P10 IPv6 addresses with zero elements.

src/proto-p10.c (irc_p10_pton): Avoid writing past the end of ip->in6.
  (irc_p10_ntop): Avoid writing past the end of output.

14 years agoFix typo when parsing channel mode changes for +A, from SF bug #2787760.
Michael Poole [Mon, 21 Sep 2009 02:05:56 +0000 (22:05 -0400)]
Fix typo when parsing channel mode changes for +A, from SF bug #2787760.

src/proto-p10.c (mod_chanmode_parse): Use new_apass rather than new_upass
    when parsing mode +A changes.

14 years agoRemove the duplicated message ID reported in SF bug #2686643.
Michael Poole [Mon, 21 Sep 2009 01:58:09 +0000 (21:58 -0400)]
Remove the duplicated message ID reported in SF bug #2686643.

src/chanserv.c (CSMSG_USER_PROTECTED): Rename the second one of these to
    CSMSG_USER_PROTECTED_2.
  (handle_kick): Use that version.

14 years agoFix the account stamp parsing error reported in SF bug #2672922.
Michael Poole [Mon, 21 Sep 2009 01:54:33 +0000 (21:54 -0400)]
Fix the account stamp parsing error reported in SF bug #2672922.

src/proto-p10.c (mod_usermode): Update "word" to skip past account stamps.

14 years agoFix the problems reported in SF bug #2668866.
Michael Poole [Mon, 21 Sep 2009 01:49:13 +0000 (21:49 -0400)]
Fix the problems reported in SF bug #2668866.

src/mod-memoserv.c (KEY_ACCOUNTS, KEY_MESSAGES, KEY_FLAGS): Define new
    database key names.
  (MSMSG_CANNOT_SEND_SELF): Define new translation string.
  (MSMSG_NEW_MESSAGE): Add format field for the message ID.
  (memoserv_can_send): Do not allow sending to oneself.  Require that the
    common channel be one that the target has joined at some point.
  (cmd_send): Use the new field in MSMSG_NEW_MESSAGE.
  (cmd_read): Initialize the time_t that is shown.
  (memoserv_saxdb_read_messages): Renamed from memoserv_saxdb_read().
  (memoserv_saxdb_read_accounts): New function.
  (memoserv_saxdb_read): Check for the "accounts" subkey.  If it exists,
    read the account data from that key.
  (memoserv_saxdb_write): Write account flags in a new section.  Use hex
    rather than base64 for the memo IDs.

14 years agoFix database failure reporting before the config file is first read.
Michael Poole [Mon, 21 Sep 2009 00:45:08 +0000 (20:45 -0400)]
Fix database failure reporting before the config file is first read.

src/recdb.c (explain_failure): When MAIN_LOG is NULL, report to stderr.

14 years agoFix clearing "helping" flag from users when parting other channels.
Michael Poole [Thu, 17 Sep 2009 21:02:57 +0000 (17:02 -0400)]
Fix clearing "helping" flag from users when parting other channels.

src/chanserv.c (handle_part): Allow the current user to be considered for
  channels other than the channel being /part'ed.

14 years agoAdd a new irc_user_modes() helper function and irc_user_mode_chars[] array.
Michael Poole [Thu, 17 Sep 2009 20:45:49 +0000 (16:45 -0400)]
Add a new irc_user_modes() helper function and irc_user_mode_chars[] array.

src/proto.h (irc_user_modes): Declare.
  (irc_user_mode_chars): Likewise.
src/proto-common.c (irc_user_modes): Define.
src/proto-bahamut.c (irc_user_mode_chars): Define.
  (irc_user): Use irc_user_mode_chars() instead of open-coding it.
src/proto-p10.c (irc_user_mode_chars): Define.
  (irc_user): Use irc_user_mode_chars() instead of open-coding it.
src/opserv.c (cmd_whois): Use irc_user_mode_chars() here too.
src/modcmd.c (modcmd_saxdb_write): Write bot modes to the database.
  (modcmd_load_bots): Read them out and use them.

14 years agosrc/saxdb.c (saxdb_start_record): Do not include a space just before EOL.
Michael Poole [Thu, 17 Sep 2009 20:41:32 +0000 (16:41 -0400)]
src/saxdb.c (saxdb_start_record): Do not include a space just before EOL.
src/opserv.help (INVITE): Document this command.

14 years agoReplace the thoroughly outdated NEWS file with the UPGRADE contents.
Michael Poole [Thu, 17 Sep 2009 21:04:56 +0000 (17:04 -0400)]
Replace the thoroughly outdated NEWS file with the UPGRADE contents.

14 years agoMake the kqueue ioset back-end less whiny.
Michael Poole [Tue, 11 Aug 2009 03:56:03 +0000 (23:56 -0400)]
Make the kqueue ioset back-end less whiny.

src/ioset-kevent.c (ioset_kevent_add): Never try to use EV_DELETE, because
    that can make kevent() return -1/ENOENT.
  (ioset_kevent_update): We need to try to EV_DELETE here instead.
  (ioset_kevent_loop): Do not bail if kevent() just returns -1/EINTR.

14 years agoFix mod-blacklist (really, all of SAR) not working on BSDs.
Michael Poole [Tue, 11 Aug 2009 03:53:19 +0000 (23:53 -0400)]
Fix mod-blacklist (really, all of SAR) not working on BSDs.

Fixes SF bug #2817939, reported by sky5.

src/sar.c (ipv4_pton): Set the sockaddr length field when it exists.
  (ipv6_pton): Likewise.

14 years agoMark the current code as rc3, and distribute mod-blacklist.c.
Michael Poole [Tue, 11 Aug 2009 03:51:28 +0000 (23:51 -0400)]
Mark the current code as rc3, and distribute mod-blacklist.c.

configure.in (AC_INIT): Bump release number to rc3.
  (HAVE_SOCKADDR_SA_LEN): Define to a non-empty value (specifically, 1).
  (HAVE_STRUCT_ADDRINFO): Likewise.
src/Makefile.am (EXTRA_srvx_SOURCES): Include mod-blacklist.c.

15 years agoReport the number of memos, not recipients, in /msg MemoServ status.
Michael Poole [Fri, 6 Mar 2009 13:04:13 +0000 (08:04 -0500)]
Report the number of memos, not recipients, in /msg MemoServ status.

Another bug spotted by ZeRoFiGhter.

src/mod-memoserv.c (memoCount): New variable.
  (delete_memo): Decrement it.
  (add_memo): Increment it.
  (cmd_status): Report it.

15 years agoAvoid crashing when a user is killed by an on-auth callback.
Michael Poole [Fri, 6 Mar 2009 12:40:01 +0000 (07:40 -0500)]
Avoid crashing when a user is killed by an on-auth callback.

src/nickserv.c (set_user_handle_info): Handle no users on the account when
  updating the linked list of authed users.  Do not run the last bit of
  code when an auth_func kills the user, either.

15 years agoUpdate users' "present" and "seen" fields when unsuspending a channel.
Michael Poole [Fri, 6 Mar 2009 12:28:57 +0000 (07:28 -0500)]
Update users' "present" and "seen" fields when unsuspending a channel.

Bug reported by ZeRoFiGhter.

src/chanserv.c (chanserv_expire_suspension): Add some comments.  Add a loop
    to update presence information for anyone in the channel at the time
    the channel is unsuspended.

15 years agoFix warnings about shadowed variables, and use -Wshadow in maintainer mode.
Michael Poole [Fri, 6 Mar 2009 12:17:20 +0000 (07:17 -0500)]
Fix warnings about shadowed variables, and use -Wshadow in maintainer mode.

Inspired by a bug in modmcd.c's check_alias_args() spotted by the eagle
eyes of gix.

(I will omit list the function-by-function change log -- most of it is very
mechanical, and involves renaming paramaters and local variables that used
to shadow standard Unix functions.)

15 years agoAllow "edittrust" to accept 0 as a maximum count, and document it.
Michael Poole [Fri, 6 Mar 2009 11:37:07 +0000 (06:37 -0500)]
Allow "edittrust" to accept 0 as a maximum count, and document it.

Inconsistency between "addtrust" and "edittrust" reported by ZeRoFiGhter.

src/opserv.c (cmd_edittrust): Only check that argv[2] is fully parsed as
    a number; do not require it to be non-zero.
src/opserv.help: Add entry for "edittrust" and reference it appropriately.

15 years agoUse "account" rather than "handle" in help text.
Michael Poole [Fri, 6 Mar 2009 11:31:00 +0000 (06:31 -0500)]
Use "account" rather than "handle" in help text.

Inconsistency reported by ZeRoFiGhter - thanks!

src/mod-helpserv.help (SET NOTIFICATION): Use "account" rather than "handle".

15 years agoNuke autogen.sh. "autoreconf -Wall" is recommended instead.
Michael Poole [Thu, 5 Mar 2009 05:12:50 +0000 (00:12 -0500)]
Nuke autogen.sh.  "autoreconf -Wall" is recommended instead.

15 years agoForward messages sent to helpserv after pickup to the helper.
ThiefMaster [Mon, 29 Sep 2008 10:21:56 +0000 (12:21 +0200)]
Forward messages sent to helpserv after pickup to the helper.

15 years agoDisplay the number of total unhandled + total requests in helpserv whine about unhand...
ThiefMaster [Fri, 27 Jun 2008 20:07:56 +0000 (22:07 +0200)]
Display the number of total unhandled + total requests in helpserv whine about unhandled requests waiting.

15 years agoAdd outrank check to chanserv.myaccess
ThiefMaster [Fri, 27 Jun 2008 20:04:52 +0000 (22:04 +0200)]
Add outrank check to chanserv.myaccess

15 years agoRemove double reply in checkemail if nick/account is invalid.
ThiefMaster [Fri, 4 Jul 2008 05:59:58 +0000 (07:59 +0200)]
Remove double reply in checkemail if nick/account is invalid.

15 years agoCheck account-based alerts for all users, not just staff.
Michael Poole [Thu, 5 Mar 2009 04:28:58 +0000 (23:28 -0500)]
Check account-based alerts for all users, not just staff.

src/opserv.c (opserv_staff_alert): Remove calls to alert_check_user.
  (opserv_auth_alert): New function to replace that check.
  (init_opserv): Register opserv_auth_alert().

15 years agoFix handling of multiple users on a +h account in the support channel(s).
Michael Poole [Thu, 5 Mar 2009 04:16:51 +0000 (23:16 -0500)]
Fix handling of multiple users on a +h account in the support channel(s).

Do not remove +g from a +h account when one of several users on the
account leave a support channel, which gix reported in SF#2649505.

src/chanserv.c (handle_part): Keep the +g flag if any user on the same
  account is in any support channel.
src/nickserv.c (nickserv_apply_flags): Likewise here, for flag changes.

15 years agoDo not allow keys (of any sort) to start with ':', fixing SF#2579872.
Michael Poole [Thu, 5 Mar 2009 03:57:20 +0000 (22:57 -0500)]
Do not allow keys (of any sort) to start with ':', fixing SF#2579872.

src/proto-p10.c (keyncpy): New function, like strlcpy() but for keys.
  (mod_chanmode_parse): Use it instead of safestrncpy().

15 years agoRemove help file reference to no-longer-existent command.
Michael Poole [Thu, 5 Mar 2009 03:44:43 +0000 (22:44 -0500)]
Remove help file reference to no-longer-existent command.

src/chanserv.help (EVENTS): Do not reference "last" command.

15 years agoRemove double free in opserv_add_bad_word(), fixing SF#2579877.
Michael Poole [Thu, 5 Mar 2009 03:42:39 +0000 (22:42 -0500)]
Remove double free in opserv_add_bad_word(), fixing SF#2579877.

src/opserv.c (opserv_add_bad_word): Remove extra free(orig_bad).

15 years agoAdd a comment on why topic change handlers return int.
Michael Poole [Sat, 3 Jan 2009 20:37:28 +0000 (15:37 -0500)]
Add a comment on why topic change handlers return int.

src/hash.c (SetChannelTopic): Add the comment.

15 years agoConvert new_user_func_t to return void.
Michael Poole [Sat, 3 Jan 2009 20:35:45 +0000 (15:35 -0500)]
Convert new_user_func_t to return void.

This way, a function only has to worry about killing a user or not, rather
than doing that and then returning a corresponding value.

src/hash.h (new_user_func_t): Return void instead of int.
src/global.c (global_process_user): Likewise.
src/mod-blacklist.c (blacklist_check_user): Likewise.
src/mod-snoop.c (snoop_new_user): Likewise.
src/mod-sockcheck.c (sockcheck_new_user): Likewise.
src/nickserv.c (check_user_nick): Likewise.
  (handle_new_user): Delete.
  (init_nickserv): Register check_user_nick() directly.
src/opserv.c (opserv_new_user_check): Likewise.
src/proto-bahamut.c (AddUser): Do not check new_user_func return values.
src/proto-p10.c (AddUser): Likewise.

15 years agoAutomatically stop most user-oriented hooks if the user becomes dead.
Michael Poole [Sat, 3 Jan 2009 20:12:04 +0000 (15:12 -0500)]
Automatically stop most user-oriented hooks if the user becomes dead.

src/hash.c (NickChange): Stop iterating if the user is killed by any hook.
  (AddChannelUser): Likewise.
src/nickserv.c (set_user_handle_info): Likewise.
src/proto-common.c (of_list, of_size, of_used, reg_oper_func,
  call_oper_funcs): Move from the proto-*.c files.  Make call_oper_funcs
    stop iterating if the user is killed by any hook.
src/proto-bahahmut.c (AddUser): Likewise.
  (of_list, of_size, of_used, reg_oper_func, call_oper_funcs): Move to
    proto-common.c
src/proto-p10.c: Likewise to proto-bahamut.c.

15 years agoFix compilation with gcc 4.3 and glibc 2.8.90.
Michael Poole [Sat, 3 Jan 2009 19:56:39 +0000 (14:56 -0500)]
Fix compilation with gcc 4.3 and glibc 2.8.90.

src/mod-helpserv.c (create_request): Use explicit format strings for
  sprintf() when no format argument is passed.
src/modcmd.c: Store the result of strtoul() into a variable.
src/nickserv.c: Pay attention to the return value of fgets().

15 years agoUpdate "now" in kevent ioset back-end.
Michael Poole [Wed, 30 Jul 2008 23:50:27 +0000 (19:50 -0400)]
Update "now" in kevent ioset back-end.

src/ioset-kevent.c (ioset_kevent_loop): Update now after kevent() returns.

15 years agoBail out of !opchan if someone has made ChanServ part from the channel.
Michael Poole [Wed, 30 Jul 2008 23:49:47 +0000 (19:49 -0400)]
Bail out of !opchan if someone has made ChanServ part from the channel.

src/chanserv.c (CSMSG_OUT_OF_CHANNEL): New error string.
  (cmd_opchan): Use it if ChanServ wasn't in the channel for some reason.

15 years agoFix other copyright years.
Michael Poole [Wed, 23 Jul 2008 01:57:51 +0000 (21:57 -0400)]
Fix other copyright years.

src/alloc-slab.c: Include 2007 in list of copyright years.
src/modcmd.c: Include 2008.
src/nickserv.c: Add 2007 and 2008.
src/proto-p10.c: Likewise.
src/saxdb.c: Likewise.

15 years agosrc/chanserv.c: Fix copyright years and !uset autoinvite behavior.
Michael Poole [Wed, 23 Jul 2008 01:57:00 +0000 (21:57 -0400)]
src/chanserv.c: Fix copyright years and !uset autoinvite behavior.

15 years agoInclude mod-qserver and mod-snoop help files in distribution.
Michael Poole [Wed, 23 Jul 2008 01:39:09 +0000 (21:39 -0400)]
Include mod-qserver and mod-snoop help files in distribution.

src/Makefile.am (noinst_DATA): Add mod-qserver.help and mod-snoop.help
  (EXTRA_srvx_SOURCES): Alphabetize mod-*.c.

15 years agoDocument smtp mail back end even for autoconf builds.
Michael Poole [Wed, 23 Jul 2008 01:38:24 +0000 (21:38 -0400)]
Document smtp mail back end even for autoconf builds.

configure.in: List "smtp" as a mail mechanism.
srvx.conf.example: Show the configuration options associated with it.

15 years agoSimplify README and update it to mention the FAQ file. v1.4.0-rc3
Michael Poole [Fri, 11 Jul 2008 12:09:29 +0000 (08:09 -0400)]
Simplify README and update it to mention the FAQ file.

15 years agoCorrectly handle a writable->unwritable transition on a socket in kevent.
Michael Poole [Fri, 11 Jul 2008 12:05:25 +0000 (08:05 -0400)]
Correctly handle a writable->unwritable transition on a socket in kevent.

src/ioset-kevent.c (ioset_kevent_add): If the socket is not writable, we
    should EV_DELETE the write notification rather than leaving it.