Add epoll_* ioset backend.
[srvx.git] / ChangeLog
index 4c2dd85ea5e9edf1e8b2a98e9a5d7e2393c654e4..c9690b3df92ac0ffec04088c41e59b3f6a65db75 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,330 @@
 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3
 #
 
+2006-09-22 02:45:20 GMT        Michael Poole <mdpoole@troilus.org>     patch-39
+
+    Summary:
+      Add epoll_* ioset backend.
+    Revision:
+      srvx--devo--1.3--patch-39
+
+    configure.in: Check for epoll_create(); demote select() from being required.
+    
+    src/Makefile.am (EXTRA_srvx_SOURCES): Add ioset-epoll.c.
+    
+    src/ioset-epoll.c: New file.
+
+    new files:
+     src/.arch-ids/ioset-epoll.c.id src/ioset-epoll.c
+
+    modified files:
+     ChangeLog configure.in src/Makefile.am
+
+
+2006-09-22 02:38:21 GMT        Michael Poole <mdpoole@troilus.org>     patch-38
+
+    Summary:
+      Allow multiple ioset backends.
+    Revision:
+      srvx--devo--1.3--patch-38
+
+    configure.in: Add framework to check for ioset backends.
+    
+    src/Makefile.am (noinst_DATA): Reorganize for easier patching.
+      (checkversion): Avoid spurious error message if $(GNU_ARCH) is missing.
+      (EXTRA_srvx_SOURCES): Reorganize for easier patching; add ioset-select.c.
+      (srvx_SOURCES): Add ioset-impl.h.
+    
+    src/ioset.c (ioset.h): #include "ioset-impl.h" instead.
+      (clock_skew): Make non-static for backends.
+      (engine): New variable.
+      (active_fd): New variable (kind of kludgy).
+      (io_engine_*): New variables, only one exists so far.
+      (ioset_init): New function.
+      (ioset_cleanup): Call engine's cleanup function.
+      (ioset_add): Call engine's add function.
+      (ioset_listen): New function.
+      (ioset_connect): Call engine's update functions at appropriate points.
+      (ioset_try_write): Call engine's update function on success.
+      (ioset_close): Change signature; check against active_fd; call engine's
+        remove function.
+      (ioset_accept): New function.
+      (ioset_buffered_read): Update fd->state instead of fd->eof and call
+        engine's update function as appropriate.  Use active_fd.
+      (ioset_line_read): Check fd->state instead of fd->eof.
+      (debug_fdsets): Move to ioset-select.c.
+      (ioset_events): New function.
+      (ioset_run): Move most of the logic into ioset-select loop function;
+        call it.  Rename "select_timeout" to "timeout" to match.
+      (ioset_write): Call engine->update function.
+      (ioset_printf): New function.
+    
+    src/ioset.h (common.h): #include this header to get PRINTF_LIKE macro.
+      (struct io_fd): Replace 'connected' and 'eof' fields with 'state' field.
+      (ioset_init): Declare new function.
+      (ioset_listen): Declare new function.
+      (ioset_printf): Declare new function.
+      (ioset_close): Update signature.
+    
+    src/main.c (main): Call ioset_init().
+    
+    src/mod-sockcheck.c (sockcheck_free_client): Can unconditionally call
+        ioset_close() now.
+      (expand_var): Always use C99 type names.
+      (sockcheck_begin_test): Can unconditionally call ioset_close() now.
+      (sockcheck_read_conf): Only warn about unknown host if the user set
+        one; it is silly to arn about unknown host `(null)'.
+    
+    src/proto-common.c (socket_destroyed): Check fd->state rather than
+        fd->eof.
+      (close_socket): Update signature for ioset_close().
+
+    new files:
+     src/.arch-ids/ioset-impl.h.id src/.arch-ids/ioset-select.c.id
+     src/ioset-impl.h src/ioset-select.c
+
+    modified files:
+     ChangeLog configure.in src/Makefile.am src/ioset.c src/ioset.h
+     src/main.c src/mod-sockcheck.c src/proto-common.c
+
+
+2006-09-22 02:15:55 GMT        Michael Poole <mdpoole@troilus.org>     patch-37
+
+    Summary:
+      Add "dummy client" support.
+    Revision:
+      srvx--devo--1.3--patch-37
+
+    src/hash.h (FLAGS_DUMMY): New flag for non-propagated clients.
+      (IsDummy): Check it.
+    
+    src/helpfile.c (send_message): Allow sending to dummy clients.
+      (send_message_type): Likewise.
+    
+    src/proto-bahamut.c (irc_user): Bail if user is NULL or has a dummy nickname.
+      (deliver_to_dummy): New function.
+      (irc_privmsg): Try to deliver via dummy method before sending to IRC.
+      (irc_notice): Likewise.
+      (irc_notice_user): Likewise.
+      (AddUser): If the first user mode character is '*', mark as a dummy.
+      (DelUser): Unregister callback functions when destroying local clients.
+    
+    src/proto-p10.c (irc_user): Bail if user is NULL or has a dummy nickname.
+      (deliver_to_dummy): New function.
+      (irc_notice): Try to deliver via dummy method before sending to IRC.
+      (irc_notice_user): Likewise.
+      (irc_privmsg): Likewise.
+      (AddUser): If the first user mode character is '*', mark as a dummy.
+      (DelUser): Unregister callback functions when destroying local clients.
+
+    modified files:
+     ChangeLog src/hash.h src/helpfile.c src/proto-bahamut.c
+     src/proto-p10.c
+
+
+2006-09-22 01:56:07 GMT        Michael Poole <mdpoole@troilus.org>     patch-36
+
+    Summary:
+      Delete obsolete and non-propagated user modes.
+    Revision:
+      srvx--devo--1.3--patch-36
+
+    src/hash.h (FLAGS_LOCOP): Delete.
+      (FLAGS_SERVNOTICE): Delete.
+      (FLAGS_HELPER): Delete.
+      (IsServNotice): Delete.
+      (IsHelperIrcu): Delete.
+    
+    src/opserv.c (cmd_whois): Remove IsServNotice() or IsHelperIrcu().
+    
+    src/proto-bahamut.c (mod_usermode): Do not handle +O/+s/+h, we never see them.
+    
+    src/proto-p10.c (irc_user): Do not emit +s or +h, we never set them..
+      (mod_usermode): Do not handle +O/+s/+h, we never see them.
+
+    modified files:
+     ChangeLog src/hash.h src/opserv.c src/proto-bahamut.c
+     src/proto-p10.c
+
+
+2006-09-22 01:48:00 GMT        Michael Poole <mdpoole@troilus.org>     patch-35
+
+    Summary:
+      Merge AddService(), AddClone() into AddLocalUser()
+    Revision:
+      srvx--devo--1.3--patch-35
+
+    src/chanserv.c (init_chanserv): Convert AddService() call to AddLocalUser().
+    
+    src/global.c (init_global): Likewise.
+    
+    src/mod-helpserv.c (register_helpserv): Likewise.
+    
+    src/modcmd.c (cmd_service_add): Likewise.
+      (modcmd_load_bots): Likewise.
+    
+    src/nickserv.c (regex.h): Fall back to rxposix.h from local rx package.
+      (init_nickserv): Convert AddService() call to AddLocalUser().
+    
+    src/opserv.c (opserv_add_reserve): Convert AddClone() call to AddLocalUser().
+      (cmd_clone): Likewise.
+      (add_reserved): Likewise.
+      (init_opserv): Convert AddService() call to AddLocalUser().
+    
+    src/proto-bahamut.c (AddService): Convert into AddLocalUser().
+      (AddClone): Delete.
+    
+    src/proto-p10.c (AddService): Convert into AddLocalUser().
+      (AddClone): Delete.
+    
+    src/proto.h (AddService): Convert into AddLocalUser().
+      (AddClone): Delete.
+
+    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
+
+
+2006-09-22 01:35:03 GMT        Michael Poole <mdpoole@troilus.org>     patch-34
+
+    Summary:
+      Make IRC message handler 'text' const.
+    Revision:
+      srvx--devo--1.3--patch-34
+
+    src/chanserv.c (chanserv_ctcp_check): Make 'text' parameter const.
+    
+    src/mod-helpserv.c (helpserv_usermsg): Likewise.
+      (helpserv_botmsg): Likewise.
+    
+    src/modcmd.c (svccmd_invoke): Likewise.
+      (modcmd_privmsg): Likewise.
+      (modcmd_chanmsg): Likewise.
+    
+    src/modcmd.h (SVCMSG_HOOK): Likewise.
+    
+    src/proto.h (chanmsg_func_t): Likewise.
+      (privmsg_func_t): Likewise.
+
+    modified files:
+     ChangeLog src/chanserv.c src/mod-helpserv.c src/modcmd.c
+     src/modcmd.h src/proto.h
+
+
+2006-09-22 01:23:43 GMT        Michael Poole <mdpoole@troilus.org>     patch-33
+
+    Summary:
+      Add autogen.sh to distribution tarball.
+    Revision:
+      srvx--devo--1.3--patch-33
+
+    Makefile.am: Add autogen.sh to the "extra" distributed files.
+
+    modified files:
+     ChangeLog Makefile.am
+
+
+2006-09-11 01:03:14 GMT        Michael Poole <mdpoole@troilus.org>     patch-32
+
+    Summary:
+      Support and use G-line lastmod timestamp.
+    Revision:
+      srvx--devo--1.3--patch-32
+
+    src/gline.c (KEY_LASTMOD): New key string.
+      (gline_add): Use new parameter to set lastmod.
+      (gline_add_record): Look for KEY_LASTMOD values.
+      (gline_write_entry): Set KEY_LASTMOD if lastmod is set.
+      (gline_discrim_create): Allow specification of lastmod criteria.
+      (gline_discrim_match): Check lastmod if appropriate.
+    
+    src/gline.h (struct gline): Add lastmod field.
+      (struct gline_discrim): Add lastmod fields.
+      (gline_add): New parameter.
+    
+    src/mod-sockcheck.c (sockcheck_issue_gline): Set lastmod.
+    
+    src/opserv.c (OSMSG_NO_GLINE): New format string.
+      (opserv_block): Set lastmod.
+      (cmd_gline): Set lastmod.
+      (cmd_stats_glines): Allow searching for a particular G-line (just like
+        gtrace).
+      (opserv_new_user_check): Set lastmod.
+      (gtrace_print_func): Use intervals rather than fixed dates and show
+        lastmod.
+    
+    src/opserv.help (GTRACE CRITERIA): Mention lastmod criteria.
+    
+    src/proto-p10.c (irc_gline): Send lastmod if it is set.
+      (cmd_num_gline): Parse out lastmod if it is set.
+      (cmd_gline): Parse out lastmod if it is set.
+
+    modified files:
+     ChangeLog src/gline.c src/gline.h src/mod-sockcheck.c
+     src/opserv.c src/opserv.help src/proto-p10.c
+
+
+2006-09-09 21:37:28 GMT        Michael Poole <mdpoole@troilus.org>     patch-31
+
+    Summary:
+      Network event handler fixup when ChanServ is disabled.
+    Revision:
+      srvx--devo--1.3--patch-31
+
+    src/chanserv.c (init_chanserv): Do not register network event handlers if
+        ChanServ is disabled.
+
+    modified files:
+     ChangeLog src/chanserv.c
+
+
+2006-09-03 15:24:48 GMT        Michael Poole <mdpoole@troilus.org>     patch-30
+
+    Summary:
+      Make srvx compile on cygwin again.
+    Revision:
+      srvx--devo--1.3--patch-30
+
+    configure.in (AC_CHECK_HEADERS): Look for <arpa/inet.h>.
+      (AC_CHECK_FUNCS): Look for inet_aton().
+    
+    src/compat.c: Try to include <arpa/inet.h> so we get inet_addr().
+      (getaddrinfo): If inet_aton() is not provided, use inet_addr() instead.
+    
+    src/compat.h (AI_NUMERICHOST): Define this too.
+    
+    src/tools.c (irc_pton): Use the pedantically correct type for ip4.
+
+    modified files:
+     ChangeLog configure.in src/compat.c src/compat.h src/tools.c
+
+
+2006-09-03 15:21:10 GMT        Michael Poole <mdpoole@troilus.org>     patch-29
+
+    Summary:
+      DelChannelUser call and semantic fixups
+    Revision:
+      srvx--devo--1.3--patch-29
+
+    src/hash.c (DelChannel): Fix type of 'reason' arg to DelChannelUser().
+      (DelChannelUser): Only send part message if user is local.
+    
+    src/proto-bahamut.c (DelUser): Unswap arguments to DelChannelUser().
+      (cmd_part): Move to proto-common.c.
+    
+    src/proto-common.c (part_desc): New structure type.
+      (part_helper): Use it to capture user and reason.
+      (cmd_part): New common function.
+    
+    src/proto-p10.c (cmd_part): Move to proto-common.c.
+      (DelUser): Unswap arguments to DelChannelUser().
+
+    modified files:
+     ChangeLog src/hash.c src/proto-bahamut.c src/proto-common.c
+     src/proto-p10.c
+
+
 2006-09-03 15:17:05 GMT        Michael Poole <mdpoole@troilus.org>     patch-28
 
     Summary: