[IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2004-05-21 15:40:15
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-05-21 15:39:46 UTC Modified files: ChangeLog ChangeLog.es Makefile.in TODO.es configure doc/ircd.sample-en.conf doc/history/Undernet/ChangeLog-u2.10.12 include/channel.h include/class.h include/client.h include/gline.h include/handlers.h include/ircd_defs.h include/ircd_features.h include/ircd_string.h include/msg.h include/msgq.h include/numeric.h include/parse.h include/patchlevel.h include/s_conf.h include/s_user.h include/send.h include/struct.h include/supported.h ircd/IPcheck.c ircd/Makefile.in ircd/channel.c ircd/chkconf.c ircd/client.c ircd/engine_epoll.c ircd/gline.c ircd/ircd.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/ircd_relay.c ircd/ircd_string.c ircd/m_account.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_error.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_names.c ircd/m_nick.c ircd/m_oper.c ircd/m_part.c ircd/m_ping.c ircd/m_quit.c ircd/m_server.c ircd/m_topic.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/m_who.c ircd/m_whois.c ircd/match.c ircd/parse.c ircd/res_adns.c ircd/res_libresolv.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/version.c.SH Log message: Author: zoltan <zo...@ir...> Log message: 2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 * Deshabilitar el cambio de nick en canales moderados * Mapeo de comandos de services * Modo de canal +D (Delayed-join / Modo de conferencias) * Opcion de usermode por defecto por clase de conection * Anuncio de invitaciones a los otros operadores * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.10 ircd-ircdev/ChangeLog:1.11 --- ircd-ircdev/ChangeLog:1.10 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/ChangeLog Fri May 21 08:39:32 2004 @@ -1,10 +1,19 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.10 2004/04/23 11:08:08 zolty Exp $ +# $Id: ChangeLog,v 1.11 2004/05/21 15:39:32 zolty Exp $ # # Insert new changes at beginning of the change list. # +2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 + * Disallow nick change on a moderated channel + * Mapping service commands + * Delayed-join channel mode +D (Conferende mode) + * Per-connection-class default usermode option + * Topic burst optional + * Announce invitations to other channel operators + * Undernet synchronization + 2004-04-23 Toni García <zo...@ir...> 1.0.alpha9 * Warnings fixes * USERS command Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.10 ircd-ircdev/ChangeLog.es:1.11 --- ircd-ircdev/ChangeLog.es:1.10 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/ChangeLog.es Fri May 21 08:39:33 2004 @@ -1,10 +1,18 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.10 2004/04/23 11:08:08 zolty Exp $ +# $Id: ChangeLog.es,v 1.11 2004/05/21 15:39:33 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 + * Deshabilitar el cambio de nick en canales moderados + * Mapeo de comandos de services + * Modo de canal +D (Delayed-join / Modo de conferencias) + * Opcion de usermode por defecto por clase de conection + * Anuncio de invitaciones a los otros operadores + * Sincronizacion Undernet + 2004-04-23 Toni García <zo...@ir...> 1.0.alpha9 * Fix de warnings de compilacion * Comando USERS Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.3 ircd-ircdev/Makefile.in:1.4 --- ircd-ircdev/Makefile.in:1.3 Sun Feb 22 08:16:22 2004 +++ ircd-ircdev/Makefile.in Fri May 21 08:39:33 2004 @@ -104,6 +104,7 @@ install: ${IRCD_MAKEFILES} test -d ${prefix} || mkdir ${prefix} + test -d ${prefix}/include || mkdir ${prefix}/include @for i in ${SUBDIRS}; do \ echo "Installing $$i..."; \ cd $$i; ${MAKE} install; cd ..; \ Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.7 ircd-ircdev/TODO.es:1.8 --- ircd-ircdev/TODO.es:1.7 Fri Apr 23 12:27:26 2004 +++ ircd-ircdev/TODO.es Fri May 21 08:39:33 2004 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.7 2004/04/23 19:27:26 zolty Exp $ +# $Id: TODO.es,v 1.8 2004/05/21 15:39:33 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -63,7 +63,9 @@ - [G] Soporte RC4 para server<->server. - [G] Soporte SSL para client<->server. - [U] Soporte de modos de canal +A y +u y todo lo relacionado con el (.12). - + - [G] Soporte de cache de MAP (.12). + - [G] Nuevo soporte de memoria (.12). + - [G] Mirar si el aviso de invites lo haga con wallchops o con raw. BUGS CONOCIDOS -------------------------------------------------------------------------------------- Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.7 ircd-ircdev/configure:1.8 --- ircd-ircdev/configure:1.7 Sun Feb 22 08:16:22 2004 +++ ircd-ircdev/configure Fri May 21 08:39:33 2004 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.58. +# Generated by GNU Autoconf 2.59. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation @@ -995,7 +995,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.58. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -4680,10 +4680,8 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} + { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 +echo "$as_me: error: internal error: not reached in cross-compile" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -5088,10 +5086,8 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} + { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 +echo "$as_me: error: internal error: not reached in cross-compile" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -5496,10 +5492,8 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} + { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 +echo "$as_me: error: internal error: not reached in cross-compile" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -5904,10 +5898,8 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} + { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 +echo "$as_me: error: internal error: not reached in cross-compile" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -9257,7 +9249,7 @@ cat >&5 <<_CSEOF This file was extended by $as_me, which was -generated by GNU Autoconf 2.58. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9320,7 +9312,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.58, +configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. @@ -9719,11 +9711,6 @@ *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -9762,6 +9749,12 @@ fi;; esac done` || { (exit 1); exit 1; } + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub Index: ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12 diff -u ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.1 ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.2 --- ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.1 Fri Apr 23 03:07:50 2004 +++ ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12 Fri May 21 08:39:33 2004 @@ -1,3 +1,609 @@ +2004-05-18 Michael Poole <md...@tr...> + + Announce invitations to other channel operators. + + * include/ircd_features.h, ircd/ircd_features.c + (ANNOUNCE_INVITES): Add new boolean feature, default off. + + * include/numeric.h, ircd/s_err.c (RPL_ISSUEDINVITE): Add new + reply. + + * include/send.h, ircd/send.c (sendcmdto_channel_butserv_butone): + Add 'skip' parameter that is needed elsewhere. + (sendcmdto_channel_servers_butone): New function. + + * ircd/channel.c, ircd/m_burst.c, ircd/m_kick.c, ircd/m_topic.c, + ircd/s_user.c: Add argument for 'skip' to calls to s_c_b_b. + + * ircd/m_invite.c (m_invite, ms_invite): If ANNOUNCE_INVITES, send + the INVITE message to all interested servers, and send a numeric + to all local chanops. + +2004-05-18 Michael Poole <md...@tr...> + + * ircd/res_adns.c (res_ourserver): Remove unused function. + (validate_name): Likewise. + +2004-05-17 Michael Poole <md...@tr...> + + * include/ircd_features.h, ircd/ircd_features.c, ircd/s_debug.c: + Rip out feature settings related to oper privileges. + + * include/client.h: Comment a few unexplained privileges. + + * ircd/ircd_lexer.l: Rename privilege keywords to match their + names in code and /PRIVS output. Add support for two "new" + privileges (FORCE_OPMODE, FORCE_LOCAL_OPMODE). + + * include/class.h, ircd/client.c, ircd/ircd_parser.y, + ircd/m_oper.c: Replace the removed feature settings with + per-connection class operator privileges. + + * doc/example.conf: Document the change. + + * ircd/ircd_parser.y (portblock): Fix slight memory leak. + +2004-05-16 Michael Poole <md...@tr...> + + * doc/example.conf: Make this show the new NICKLEN default. + +2004-05-14 Kevin L Mitchell <kl...@mi...> + + * ircd/ircd_features.c: per CFV-0243, NICKLEN default is increased + to 12 + +2004-05-14 Kevin L Mitchell <kl...@mi...> + + * ircd/s_user.c: process account creation timestamp if present in + user mode portion of a N protocol message; add account creation + timestamp to outgoing N protocol messages if that timestamp is + non-zero + + * ircd/m_account.c: process account creation timestamp if present + in AC protocol message + + * include/struct.h: add account creation timestamp + +2004-05-16 Michael Poole <md...@tr...> + + * doc/example.conf: Document operator privilege settings. + +2004-05-16 Michael Poole <md...@tr...> + + Get rid of CONF_LOCOP; use PRIV_PROPAGATE instead. + + * ircd/ircd_parser.y (invert): New variable. + (operlocal): Remove production. + (operpriv): Use "invert" variable. + (privtype): Add LOCAL alternative production. + + * ircd/m_oper.c (m_oper): Remove references to CONF_LOCOP; replace + with CONF_OPERATOR or PRIV_PROPAGATE checks, as appropriate. + + * ircd/s_conf.c (AuthorizationCheckResult, find_conf_exact): + Likewise. + + * ircd/s_stats.c (report_array, statsinfo): Likewise. + + * ircd/s_user.c (set_user_mode): Likewise. + +2004-05-15 Michael Poole <md...@tr...> + + * patches/diffs/astralnet.diff, patches/diffs/nocfv.diff: Remove + patches obsoleted by F: lines. + + * patches/diffs/topicburst.diff: Remove patch that was integrated + into the main code. + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-05 -MDP] + + * ircd/m_whois.c: On remote whois, show +s local channels with a * + prefix to opers. + +2004-05-15 Michael Poole <md...@tr...> + + * include/gline.h, ircd/gline.c, ircd/s_err.c: Forward port a lot + of gline-related fixes from 2.10.11. Things that work are due to + Kev, Isomer, Spike, hikari, and probably others; CVS makes it hard + to figure out who did what. Any mistakes are mine. + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-05 -MDP] + + * ircd/s_misc.c, ircd/s_user.c: added numnick to SNO_CONNEXIT + messages (so you can match EXIT's to CONN's) + +2004-05-15 Reed Loden <re...@re...> + + [Original ChangeLog date: 2003-05-01 -MDP] + + * ircd/s_err.c: Added network to text and edited 001 a bit. + + * ircd/s_user.c: Send network with 001. + +2004-05-15 Michael Poole <md...@tr...> + + * ircd/s_user.c (add_target): Move free target invite check... + + * ircd/s_user.c (check_target_limit): to here, matching 2.10.11's + behavior. + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-23 -MDP] + + * ircd/s_user.c: Don't credit users with an extra attempt if they + are klined/glined, throttle them! + +2004-05-15 Jeekay <je...@ne...> + + [Original ChangeLog date: 2003-04-24 -MDP] + + * ircd/s_user.c: Altered (K-lined) to depend on find_kill type + +2004-05-15 splidge <sp...@qu...> + + [Original ChangeLog date: 2003-09-03 -MDP] + + * ircd/s_user.c: Made hide_hostmask() not show bogus joins for + channels where the user is a zombie. + +2004-05-15 beware <ste...@xs...> + + [Original ChangeLog date: 2003-10-25 -MDP] + + * ircd/m_whois.c: Fixed /whois comma separated list with wildcards + cpu hog bug + +2004-05-15 Michael Poole <md...@tr...> + + * ircd/s_conf.c (rehash): Call clear_quarantines on rehash since + 2.10.11 does. Show ident and IP for clients being killed by new + G-lines and K-lines. + +2004-05-15 hikari <sh...@un...> + + [Original ChangeLog date: 2003-06-27 -MDP] + + * ircd/ircd.c: After thought, update the next check time based on + when an unregistered client should expire. + +2004-05-15 hikari <sh...@un...> + + [Original ChangeLog date: 2003-06-22 -MDP] + + * ircd/ircd.c: Fixed check_pings() - shouldn't be any problem with + clients not being able to connect anymore. + +2004-05-15 Michael Poole <md...@tr...> + + * ircd/channel.c (can_join): Revert to using IsInvited() rather + than walking the list directly. + (modebuf_flush_int): Fix errant HEAD_IN_SAND_SNOTICES check to + use feature_bool(FEAT_HIS_SNOTICES) instead. + +2004-05-15 Kevin L Mitchell <kl...@mi...> + + [Original ChangeLog date: 2004-01-31 -MDP] + + * ircd/channel.c (mode_parse_key): don't allow , in keys! + +2003-04-12 David Mansell (splidge) <sp...@sf...> + + [Original ChangeLog date: 2003-04-14 -MDP] + + * ircd/channel.c: When keys and limits conflict on burst, the key + which is first alphabetically or the limit which is lower will be + used by both servers. This matches pre-2.10.11 behaviour. + Closes: (#713930) + +2004-05-15 David Mansell <sp...@qu...> + + [Original ChangeLog date: 2002-12-28 -MDP] + + * ircd/channel.c (mode_parse_limit): don't allow -l when no limit is + set, don't allow -l with negative parameter (or unsigned >2^31). + +2004-05-15 David Mansell <sp...@qu...> + + [Original ChangeLog date: 2002-12-31 -MDP] + + * ircd/m_burst.c (ms_burst): when kicking net riders, clear + invites too. + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-04 -MDP] + + * ircd/s_serv.c: Burst glines/jupes early + +2004-05-15 volta <vo...@gm...> + + [Original ChangeLog date: 2003-04-26 -MDP] + + * ircd/m_userip.c, ircd/m_userhost.c: Small fix, that + allows users to see their own ip & hostname. (Should solve + all problems with dcc) + +2004-05-15 Kevin L Mitchell <kl...@mi...> + + [Original ChangeLog date: 2003-06-13 -MDP] + + * ircd/m_settime.c: it's supposed to be %ld, not %l + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2004-03-20 -MDP] + + * ircd/m_invite.c: Disallow invites to non existant channels + +2004-05-15 David Mansell <sp...@qu...> + + [Original ChangeLog date: 2003-04-26 -MDP] + + * ircd/m_invite.c: let +k users invite into channels they aren't on. + +2004-05-15 hikari <sh...@un...> + + [Original ChangeLog date: 2003-07-13 -MDP] + + * ircd/IPcheck.c: Fixed (another) overflow problem in + ip_registry_check_local() + + [Original ChangeLog date: 2003-06-29 -MDP] + + * ircd/IPcheck.c: Fixed overflow problem in + ip_registry_connect_fail() + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-05-02 -MDP] + + * ircd/IPcheck.c: Added assert()'s to check for underflow + +2004-05-15 Kevin L Mitchell <kl...@mi...> + + [Original ChangeLog date: 2003-11-22 -MDP] + + * tools/wrapper.c: commit uid on chroot fix from ubra + + * ircd/version.c.SH: fix generation generation + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-23 -MDP] + + * ircd/os_*.c, ircd/ircd_features.c: Default changing window sizes + to off. if an admin is smart enough to understand these features + they can enable them manually. + +2004-05-15 splidge <sp...@qu...> + + [Original ChangeLog date: 2003-03-26 -MDP] + + * ircd/include/ircd_features.h, include/ircd_osdep.h, + ircd/ircd_features.c, ircd/listener.c, ircd/os_bsd.c, + ircd/os_generic.c, ircd/os_linux.c, ircd/os_openbsd.c + ircd/os_solaris.c, ircd/s_bsd.c: Patch to allow socket bufs to be + altered via F: lines + +2004-05-15 Isomer <is...@un...> + + [Original ChangeLog date: 2003-11-18 -MDP] + + * ircd/s_auth.c, ircd/res_libresolv.c, ircd/res_adns.c: Clean up + the preregistration subsystem allowing customisation of timers, + make the dns resolver stats oper only, and make it much more clear + what all the numbers are. + +2004-05-15 Spike <sp...@un...> + + [Original ChangeLog date: 2003-11-23 -MDP] + + * ircd/IPcheck.c: Make IPcheck constants configurable + +2004-05-14 Kevin L Mitchell <kl...@mi...> + + [Original ChangeLog date: 2003-11-22 -MDP] + + * ircd/m_nick.c (m_nick): truncate the nickname to the minimum of + the maximum allowed length (NICKLEN) or the allowed nickname + length specified as the NICKLEN feature + + * ircd/ircd_features.c: declare NICKLEN and set its default value + to 9 + + * include/supported.h: add MAXNICKLEN to ISUPPORT and do a little + rearranging... + + * include/ircd_features.h: add NICKLEN feature + + * include/ircd_defs.h (NICKLEN): raise max NICKLEN to 15 + + * doc/readme.features: document new NICKLEN feature + + * doc/example.conf: list new NICKLEN F-line + +2004-05-14 Matthias Crauwels <ult...@wo...> + + [Original ChangeLog date: 2003-06-08 -MDP] + + * ircd/gline.c: fixed the counting bug in gline_memory_count + + * ircd/jupe.c: fixed the counting bug in jupe_memory_count + +2004-05-14 Michael Poole <md...@tr...> + + * ircd/m_mode.c (ms_mode): Do not always try to call + set_user_mode() when parv[1] is a channel name. + +2004-05-10 Michael Poole <md...@tr...> + + Implement a per-connection-class default usermode option. + + * doc/example.conf: Illustrate how to use the option. + + * include/class.h (struct ConnectionClass): New "default_umode" + field. + (ConfUmode): New macro. + + * include/client.h (client_get_default_umode): New function. + + * ircd/client.c (client_get_default_umode): Implement it. + + * ircd/ircd_lexer.l (usermode): New token. + + * ircd/ircd_parser.y (classblock, etc): New syntax. + + * ircd/s_user.c (register_user): Set default user modes for user. + This sends the new mode to the user, so the explicit send later + is no longer necessary. + +2004-05-10 Michael Poole <md...@tr...> + + Forward port of asuka-topicburst.patch from Quakenet's "Asuka" + patch set. + + * include/ircd_features.h (FEAT_TOPIC_BURST): Add new feature. + + * ircd/channel.c (send_channel_modes): If F:TOPIC_BURST:TRUE, + also send a TOPIC to the peer. + + * ircd/ircd_features.c (FEAT_TOPIC_BURST): Add new boolean + feature, defaulting to FALSE. + + * ircd/m_topic.c (do_settopic): Add argument for topic timestamp, + and allow F:HIS_BANWHO to hide the originator of the topic. + (ms_topic): Parse optional timestamp arguments to TOPIC, and use + them to decide whether to ignore the topic. + +2004-05-10 Michael Poole <md...@tr...> + + Forward port of delayed-join.patch from Quakenet's "Asuka" patch + set (which was a port of code I wrote for the other ircu). + + * include/channel.h (CHFL_DELAYED): New membership flag. + (MODE_DELJOINS, MODE_WASDELJOINS): New channel modes. + (infochanmodes): Add +D to list of supported channel modes. + (IsDelayedJoin, SetDelayedJoin, ClearDelayedJoin): New macros. + (member_can_send_to_channel, client_can_send_to_channel): Add + "reveal" parameter to indicate whether a request should cause + a join-delayed user to become visible. + (RevealDelayedJoin, CheckDelayedJoins): New functions. + + * include/numeric.h (RPL_DELNAMREPLY): New numeric. + + * include/s_user.h (NAMES_DEL): New flag for do_names(). + + * include/supported.h (FEATURESVALUES2): Add +D to list of + supported channel modes. + + * ircd/channel.c (remove_member_from_channel, + member_can_send_to_channel, client_can_send_to_channel, + joinbuf_join): Handle join-delayed users. + (channel_modes, modebuf_flush_int, modebuf_mode, modebuf_flush, + modebuf_extract, mode_process_clients, mode_parse_mode, + mode_parse): Handle delayed-join channels. + (RevealDelayedJoin, CheckDelayedJoins): New functions. + + * ircd/ircd_relay.c (relay_channel_message, relay_channel_notice, + server_relay_channel_message, server_relay_channel_notice): Add + argument for "reveal" parameter to client_can_send_to_channel(). + + * ircd/m_burst.c (ms_burst): Support MODE_DELJOINS channels. + + * ircd/m_clearmode.c (do_clearmode): Support clearing mode +D. + + * ircd/m_join.c (join0): Pass the CHFL_DELAYED flag when parting a + channel with JOIN 0. + + * ircd/m_kick.c (m_kick): For join-delayed members, only send the + KICK to the kicker and kickee. Then check whether +d can be + removed. + + * ircd/m_names.c (do_names): Show join-delayed users if and only + if the NAMES_DEL flag is given. If NAMES_DEL is given, also use + RPL_DELNAMREPLY instead of RPL_NAMREPLY. + (m_names): If NAMES -D, pass NAMES_DEL to do_names(). + + * ircd/m_part.c (m_part, ms_part): Add "reveal" argument for + member_can_send_to_channel(). Set CHFL_DELAYED join in joinbuf if + the user is join-delayed. + + * ircd/m_quit.c (m_quit): Handle join-delayed users and new + argument for member_can_send_to_channel(). + + * ircd/m_topic.c (do_settopic): If a join-delayed channel member + changes the topic, reveal the member. + + * ircd/m_wallchops.c (m_wallchops, ms_wallchops): Add argument for + "reveal" parameter to client_can_send_to_channel(). + + * ircd/m_wallvoices.c (m_wallvoices, ms_wallvoices): Likewise. + + * ircd/m_who.c (m_who): Skip join-delayed members where we skip + zombies. + + * ircd/m_whois.c (do_whois): Use '<' as a prefix for join-delayed + users. Use slightly more efficient macros rather than function + calls to test for ops and voice. + + * ircd/s_err.c (RPL_DELNAMREPLY): New numeric response string. + + * ircd/s_user.c (hide_hostmask): For users with no modes in a + join-delayed channel, do not send JOIN to other members after the + QUIT :Registered. + + * ircd/send.c (sendcmdto_common_channels_butone): Skip + join-delayed users where we skip zombies. + +2004-05-10 Michael Poole <md...@tr...> + + * ircd/ircd_events.c: Actually reference and try to use the epoll + event engine. Omitted from yesterday's commit. + +2004-05-09 Michael Poole <md...@tr...> + + Forward port of Paul "Zoot" Chang's pseudo-command.patch and + pseudo-support.patch. + + * doc/example.conf: Illustrate how to use the feature. + + * include/handlers.h (m_pseudo): Declare new handler function. + + * include/ircd_features.h (HIS_STATS_R): Add a feature to control + user visibility of the pseudo-commands. + + * include/msg.h: Add flag and field for the extra information used + to select a pseudo-command's target. + + * include/numeric.h (RPL_STATSRLINE, ERR_SERVICESDOWN): Add + definitions. + + * include/parse.h (register_mapping, unregister_mapping): Declare. + + * include/s_conf.h (struct nick_host, struct s_map, + GlobalServiceMapList): Define. + + * ircd/Makefile.in: Add m_pseudo.c to IRCD_SRC. Add generated + files to "make depend" dependency list. Update dependencies. + + * ircd/ircd_features.c (HIS_STATS_R): Define feature type and + default value. + + * ircd/ircd_lexer.l (pseudo, prepend): Recognize new tokens. + + * ircd/ircd_parser.y: Support "Pseudo" configuration blocks. + + * ircd/parse.c (msgtab): Add initializer for field "extra" to all + commands. + (msg_tree_insert, msg_tree_remove, register_mapping, + unregister_mapping): New functions. + (parse_client): Implement MFLG_EXTRA extra argument passing. + + * ircd/s_conf.c (GlobalServiceMapList): New variable. + + * ircd/s_err.c (RPL_STATRLINE, ERR_SERVICESDOWN): Add format + strings for new numeric responses. + + * ircd/s_stats.c (stats_mapping): New function. + (statsinfo): Add entry for /stats R and make old /stats r entry + case-sensitive. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/ircd_parser.y (parse_error): Convert to being a wrapper for + yyerror() so that configuration errors all go to the same place. + + * ircd/s_conf.c: New variables conf_error and conf_already_read. + conf_error is cleared by read_configuration_file() and set by + yyerror(); conf_already_read is set by read_configuration_file() + and never cleared. Make yyerror() display error to stderr before + conf_already_read is set. Make configuration errors a fatal + condition in init_conf(). + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/Makefile.in: Pass the source directory as an argument to + version.c.SH so it knows where to find the source files for an + out-of-srcdir build. + + * ircd/version.c.SH: Use that information. + +2004-05-09 Michael Poole <md...@tr...> + + * Makefile.in: Ensure ${prefix}/include exists, since the adns + install puts files in that directory. (The adns Makefile does + not use configure's ${includedir}.) + +2004-05-09 Michael Poole <md...@tr...> + + * doc/readme.features: The logic for F:AUTOHIDE was removed, but + not its documentation. Fix that omission. + + * include/ircd_features.h, ircd/ircd_features.c: Remove the unused + definitions for FEATURE_AUTOHIDE. + +2004-05-09 Michael Poole <md...@tr...> + + * doc/readme.who: Document the support for account matching and + display in the WHO command. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/ircd.c (main): Move check_pid() call until after we read + the configuration file so that F:PPATH works correctly. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/match.c (match): Use ToLower() instead of tolower() for + character comparisons. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/s_user.c (register_user): Initialize "flag" (user's old + modes) passed to send_umode() so that the real set of modes are + sent to the user. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/m_server.c (ms_server): Apply +h/+s flags only to the new + server, not to a hub between us and the new server. + + * ircd/ircd_relay.c (relay_directed_message): Check FLAG_SERVICE + on target server rather than FLAG_CHSERV (so that directed + messages work at all). + +2004-05-09 Michael Poole <md...@tr...> + + * configure.in: Add checks for epoll_* system call family. + + * configure: Regenerate. + + * ircd/engine_epoll.c: New file; forward ported from 2.10.11 + branch. + +2004-05-09 Michael Poole <md...@tr...> + + * include/ircd_alloc.h: Add definitions for MyRealloc, since they + are needed by kqueue and epoll event engines; kill #if 0'd block. + + * include/memdebug.h: Declare dbg_realloc() helper function. + + * ircd/ircd_alloc.c: Implement DoRealloc() helper function. + + * ircd/memdebug.c: Implement dbg_realloc() helper function. + +2004-05-09 Michael Poole <md...@tr...> + + * ircd/channel.c (find_no_nickchange_channel): Disallow nick + changes on a moderated channel with neither ops nor voice. + + * ircd/s_err.c: Update ERR_BANNICKCHANGE message to match. + 2004-01-20 Perry Lorier <is...@un...> * ircd/ircd_parser.y: Fixed parser to work with a more modern bison Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.2 ircd-ircdev/doc/ircd.sample-en.conf:1.3 --- ircd-ircdev/doc/ircd.sample-en.conf:1.2 Sun Feb 22 08:12:46 2004 +++ ircd-ircdev/doc/ircd.sample-en.conf Fri May 21 08:39:33 2004 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 1, November 2003. +# Last Updated: 21, May 2004. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -99,6 +99,7 @@ # connectfreq = time; # maxlinks = number; # sendq = size; +# usermode = "+i"; # }; # # <connect freq> applies only to servers, and specifies the frequency @@ -142,6 +143,7 @@ pingfreq = 1 minutes 30 seconds; sendq = 160000; maxlinks = 100; + usermode = "+iw"; }; Client { @@ -160,7 +162,57 @@ sendq = 160000; maxlinks = 400; }; +Class { + name = "Opers"; + pingfreq = 1 minutes 30 seconds; + sendq = 160000; + maxlinks = 10; + + # For connection classes intended for operator use, you can specify + # privileges used when the Operator block (see below) names this + # class. The local (aka globally_opered) privilege MUST be defined + # by either the Class or Operator block. The following privileges + # exist: + # + # local (or propagate, with the opposite sense) + # whox (can use x flag with /WHO) + # display (oper status visible to lusers) + # chan_limit (can join local channels when in + # MAXCHANNELSPERUSER channels) + # mode_lchan (can /MODE &channel without chanops) + # deop_lchan (cannot be deopped or kicked on local channels) + # walk_lchan (can forcibly /JOIN &channel OVERRIDE) + # show_invis (see +i users in /WHO x) + # show_all_invis (see +i users in /WHO x) + # unlimit_query (show more results from /WHO) + # local_kill (can kill clients on this server) + # rehash (can use /REHASH) + # die (can use /DIE) + # local_jupe_server (not used) + # set (can use /SET) + # local_gline (can set a G-line for this server only) + # local_badchan (can set a Gchan for this server only) + # see_chan (can see users in +s channels in /WHO) + # wide_gline (can use ! to force a wide G-line) + # see_opers (can see opers without DISPLAY privilege) + # force_local_opmode (can use OPMODE/CLEARMODE on quarantined local channels) + # kill (can kill clients on other servers) + # gline (can issue G-lines to other servers) + # jupe_server (not used) + # opmode (can use /OPMODE) + # badchan (can issue Gchans to other servers) + # force_opmode (can use OPMODE/CLEARMODE on quarantined global channels) + # + # For global opers (with propagate = yes or local = no), the default + # is to grant all of the above privileges. For local opers, the + # default is to grant ONLY the following privileges: + # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, + # rehash, local_gline, local_jupe, local_opmode, whox, display, + # force_local_opmode + # Any privileges listed in a Class block override the defaults. + local = no; +}; # [Client] # # To allow clients to connect, they need authorization. This can be @@ -529,18 +581,25 @@ # can squit, connect and kill - but only locally: their +o user mode # is not not passed along to other servers. On IRC-Dev, this prevents # them from using Uworld as well. -# Depending on some defines in include/config.h, local operators are also -# not allowed to /DIE and /RESTART the server. +# # Operator { -# local = no; # host = "host/IP mask"; # name = "opername"; # password = "encryptedpass"; # class = "classname"; +# # You can also set any operator privilege; see the Class block +# # documentation for details. A privilege defined for a single +# # Operator will override the privilege settings for the Class +# # and the default setting. # }; # -# The encrypted password is optional. If you wish to encrypt your password, -# there is a utility in the ircd. Please read the file tools/README. +# The encrypted password is optional. If you wish to encrypt your +# password, there is a utility in the ircd. Please read the file +# tools/README. +# All privileges are shown with their default values; if you wish to +# override defaults, you should set only those privileges for the +# operator. Listing defaulted privileges just makes things harder to +# find. Operator { local = no; host = "*@*.pooles.rima-tde.net"; @@ -549,11 +608,10 @@ class = "Local"; }; Operator { - local = yes; host = "*@*.ttd.es"; password = "notencryptedpass"; name = "zolty"; - class = "Local"; + class = "Opers"; }; # Note that the <connection class> is optional, but leaving it away @@ -630,6 +688,22 @@ port = 7000; }; +# This is a server-implemented alias to send a message to a service. +# The string after Pseudo is the command name; the name entry inside +# is the service name, used for error messages. More than one nick +# entry can be provided; the last one listed has highest priority. +Pseudo "CHANSERV" { + name = "X"; + nick = "X...@ch..."; +}; + +# You can also prepend text before the user's message. +Pseudo "LOGIN" { + name = "X"; + prepend = "LOGIN "; + nick = "X...@ch..."; +}; + # [features] # IRC servers have a large number of options and features. Most of these # are set at compile time through the use of #define's--see "make config" @@ -670,12 +744,11 @@ # "HOST_HIDING" = "TRUE"; # "HIDDEN_HOST" = "users.irc-dev.net"; # "HIDDEN_IP" = "127.0.0.1"; -# "AUTOHIDE" = "TRUE"; # "CONNEXIT_NOTICES" = "FALSE"; # "LOCAL_CHANNELS" = "TRUE"; # "KILLCHASETIMELIMIT" = "30"; # "MAXCHANNELSPERUSER" = "10"; -# "NICKLEN" = "9"; +# "NICKLEN" = "12"; # "AVBANLEN" = "40"; # "MAXBANS" = "45"; # "MAXSILES" = "15"; @@ -705,44 +778,9 @@ # "IPCHECK_CLONE_PERIOD = "40"; # "IPCHECK_CLONE_DELAY = "600"; # "CRYPT_OPER_PASSWORD" = "TRUE"; -# "OPER_NO_CHAN_LIMIT" = "TRUE"; -# "OPER_MODE_LCHAN" = "TRUE"; -# "OPER_WALK_THROUGH_LMODES" = "FALSE"; -# "NO_OPER_DEOP_LCHAN" = "FALSE"; -# "SHOW_INVISIBLE_USERS" = "TRUE"; -# "SHOW_ALL_INVISIBLE_USERS" = "TRUE"; -# "UNLIMIT_OPER_QUERY" = "FALSE"; -# "LOCAL_KILL_ONLY" = "FALSE"; # "CONFIG_OPERCMDS" = "FALSE"; -# "OPER_KILL" = "TRUE"; -# "OPER_REHASH" = "TRUE"; -# "OPER_RESTART" = "TRUE"; -# "OPER_DIE" = "TRUE"; -# "OPER_GLINE" = "TRUE"; -# "OPER_LGLINE" = "TRUE"; -# "OPER_JUPE" = "TRUE"; -# "OPER_LJUPE" = "TRUE"; -# "OPER_OPMODE" = "TRUE"; -# "OPER_LOPMODE" = "TRUE"; -# "OPER_FORCE_OPMODE" = "TRUE"; -# "OPER_FORCE_LOPMODE" = "TRUE"; -# "OPER_BADCHAN" = "FALSE"; -# "OPER_LBADCHAN" = "FALSE"; -# "OPER_SET" = "FALSE"; -# "OPERS_SEE_IN_SECRET_CHANNELS" = "TRUE"; -# "OPER_WIDE_GLINE" = "TRUE"; -# "LOCOP_KILL" = "TRUE"; -# "LOCOP_REHASH" = "TRUE"; -# "LOCOP_RESTART" = "FALSE"; -# "LOCOP_DIE" = "FALSE"; -# "LOCOP_LGLINE" = "TRUE"; -# "LOCOP_LJUPE" = "TRUE"; -# "LOCOP_LOPMODE" = "TRUE"; -# "LOCOP_FORCE_LOPMODE" = "TRUE"; -# "LOCOP_LBADCHAN" = "FALSE"; -# "LOCOP_SET" = "FALSE"; -# "LOCOP_SEE_IN_SECRET_CHANNELS" = "FALSE"; -# "LOCOP_WIDE_GLINE" = "FALSE"; +# "OPLEVELS" = "TRUE"; +# "LOCAL_CHANNELS" = "TRUE"; # "HIS_SNOTICES" = "TRUE"; # "HIS_SNOTICES_OPER_ONLY" = "TRUE"; # "HIS_DESYNCS" = "TRUE"; Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.4 ircd-ircdev/include/channel.h:1.5 --- ircd-ircdev/include/channel.h:1.4 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/channel.h Fri May 21 08:39:33 2004 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: channel.h,v 1.4 2004/02/22 16:13:20 zolty Exp $ + * $Id: channel.h,v 1.5 2004/05/21 15:39:33 zolty Exp $ * */ #ifndef INCLUDED_channel_h @@ -73,12 +73,13 @@ #define CHFL_BANVALID 0x0800 /* CHFL_BANNED bit is valid */ #define CHFL_BANNED 0x1000 /* Channel member is banned */ #define CHFL_SILENCE_IPMASK 0x2000 /* silence mask is an IP-number mask */ -#define CHFL_USER_PARTING 0x4000 /* User is already parting that channel */ #if defined(UNDERNET) -#define CHFL_BURST_ALREADY_OPPED 0x08000 /* In oob BURST, but was already joined and opped */ -#define CHFL_BURST_ALREADY_VOICED 0x10000 /* In oob BURST, but was already joined and voiced */ -#define CHFL_CHANNEL_MANAGER 0x20000 /* Set when creating channel or using Apass */ +#define CHFL_BURST_ALREADY_OPPED 0x04000 /* In oob BURST, but was already joined and opped */ +#define CHFL_BURST_ALREADY_VOICED 0x08000 /* In oob BURST, but was already joined and voiced */ +#define CHFL_CHANNEL_MANAGER 0x10000 /* Set when creating channel or using Apass */ #endif +#define CHFL_USER_PARTING 0x20000 /* User is already parting that channel */ +#define CHFL_DELAYED 0x40000 /* User's join message is delayed */ #define CHFL_OVERLAP (CHFL_CHANOP | CHFL_VOICE) #define CHFL_BANVALIDMASK (CHFL_BANVALID | CHFL_BANNED) @@ -98,24 +99,28 @@ #define MODE_BAN 0x0200 #define MODE_LIMIT 0x0400 #define MODE_REGONLY 0x0800 /* Only +r users may join */ +#define MODE_DELJOINS 0x1000 /* New join messages are delayed */ #define MODE_LISTED 0x10000 #define MODE_SAVE 0x20000 /* save this mode-with-arg 'til later */ #define MODE_FREE 0x40000 /* string needs to be passed to MyFree() */ #define MODE_BURSTADDED 0x80000 /* channel was created by a BURST */ #if defined(UNDERNET) -#define MODE_UPASS 0x100000 -#define MODE_APASS 0x200000 +#define MODE_UPASS 0x100000 +#define MODE_APASS 0x200000 #endif +#define MODE_WASDELJOINS 0x400000 /* Not DELJOINS, but some joins pending */ /* * mode flags which take another parameter (With PARAmeterS) */ -#define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT) - #if defined(UNDERNET) -#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "Abiklmnopstuvr" : "biklmnopstvr" +#define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT|MODE_APASS|MODE_UPASS) + +#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstuvrD" : "biklmnopstvrD" #define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "Abklouv" : "bklov" #else -#define infochanmodes "biklmnopstvr" +#define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT) + +#define infochanmodes "biklmnopstvrD" #define infochanmodeswithparams "bklov" #endif @@ -131,7 +136,7 @@ (MODE_PRIVATE | MODE_SECRET)) == 0) #define is_listed(x) ((x)->mode.mode & MODE_LISTED) -#define IsGlobalChannel(name) (*(name) == '#') +#define IsGlobalChannel(name) (*(name) == '#') #define IsLocalChannel(name) (*(name) == '&') #define IsChannelName(name) (IsGlobalChannel(name) || IsLocalChannel(name)) @@ -146,10 +151,10 @@ #define MODE_ADD 0x40000000 #define MODE_DEL 0x20000000 -/* ListingArgs flags */ +/* used in ListingArgs.flags */ -#define LISTARG_TOPICLIMITS 0x0001 -#define LISTARG_SHOWSECRET 0x0002 +#define LISTARG_TOPICLIMITS 0x0001 +#define LISTARG_SHOWSECRET 0x0002 /* * Maximum acceptable lag time in seconds: A channel younger than @@ -217,10 +222,11 @@ #define IsServOpOk(x) ((x)->status & CHFL_SERVOPOK) #define IsBurstJoined(x) ((x)->status & CHFL_BURST_JOINED) #define IsVoicedOrOpped(x) ((x)->status & CHFL_VOICED_OR_OPPED) -#define IsUserParting(x) ((x)->status & CHFL_USER_PARTING) #if defined(UNDERNET) #define IsChannelManager(x) ((x)->status & CHFL_CHANNEL_MANAGER) #endif +#define IsUserParting(x) ((x)->status & CHFL_USER_PARTING) +#define IsDelayedJoin(x) ((x)->status & CHFL_DELAYED) #define SetBanned(x) ((x)->status |= CHFL_BANNED) #define SetBanValid(x) ((x)->status |= CHFL_BANVALID) @@ -228,17 +234,19 @@ #define SetServOpOk(x) ((x)->status |= CHFL_SERVOPOK) #define SetBurstJoined(x) ((x)->status |= CHFL_BURST_JOINED) #define SetZombie(x) ((x)->status |= CHFL_ZOMBIE) -#define SetUserParting(x) ((x)->status |= CHFL_USER_PARTING) #if defined(UNDERNET) #define SetChannelManager(x) ((x)->status |= CHFL_CHANNEL_MANAGER) #define SetOpLevel(x, v) (void)((x)->oplevel = (v)) #endif +#define SetUserParting(x) ((x)->status |= CHFL_USER_PARTING) +#define SetDelayedJoin(x) ((x)->status |= CHFL_DELAYED) #define ClearBanned(x) ((x)->status &= ~CHFL_BANNED) #define ClearBanValid(x) ((x)->status &= ~CHFL_BANVALID) #define ClearDeopped(x) ((x)->status &= ~CHFL_DEOPPED) #define ClearServOpOk(x) ((x)->status &= ~CHFL_SERVOPOK) #define ClearBurstJoined(x) ((x)->status &= ~CHFL_BURST_JOINED) +#define ClearDelayedJoin(x) ((x)->status &= ~CHFL_DELAYED) struct Mode { @@ -376,8 +384,8 @@ extern const char* find_no_nickchange_channel(struct Client* cptr); extern struct Membership* IsMember(struct Client *cptr, struct Channel *chptr); extern struct Membership* find_channel_member(struct Client* cptr, struct Channel* chptr); -extern int member_can_send_to_channel(struct Membership* member); -extern int client_can_send_to_channel(struct Client *cptr, struct Channel *chptr); +extern int member_can_send_to_channel(struct Membership* member, int reveal); +extern int client_can_send_to_channel(struct Client *cptr, struct Channel *chptr, int reveal); extern void remove_user_from_channel(struct Client *sptr, struct Channel *chptr); extern void remove_user_from_all_channels(struct Client* cptr); @@ -397,6 +405,9 @@ extern void list_next_channels(struct Client *cptr, int nr); extern void list_set_default(void); /* this belongs elsewhere! */ +extern void RevealDelayedJoin(struct Membership *member); +extern void CheckDelayedJoins(struct Channel *chan); + extern void modebuf_init(struct ModeBuf *mbuf, struct Client *source, struct Client *connect, struct Channel *chan, unsigned int dest); Index: ircd-ircdev/include/class.h diff -u ircd-ircdev/include/class.h:1.3 ircd-ircdev/include/class.h:1.4 --- ircd-ircdev/include/class.h:1.3 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/class.h Fri May 21 08:39:34 2004 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: class.h,v 1.3 2004/02/22 16:13:20 zolty Exp $ + * $Id: class.h,v 1.4 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_class_h @@ -29,7 +29,8 @@ #define INCLUDED_sys_types_h #endif -struct Client; +#include "client.h" + struct ConfItem; struct StatDesc; @@ -39,6 +40,9 @@ struct ConnectionClass { struct ConnectionClass* next; char *cc_name; + char *default_umode; + struct Privs privs; + struct Privs privs_dirty; unsigned int max_sendq; short ping_freq; short conn_freq; @@ -64,6 +68,7 @@ #define ConfMaxLinks(x) ((x)->conn_class->max_links) #define ConfSendq(x) ((x)->conn_class->max_sendq) #define ConfLinks(x) ((x)->conn_class->ref_count) +#define ConfUmode(x) ((x)->conn_class->default_umode) /* * Proto types Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.5 ircd-ircdev/include/client.h:1.6 --- ircd-ircdev/include/client.h:1.5 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/include/client.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: client.h,v 1.5 2004/04/23 11:08:08 zolty Exp $ + * $Id: client.h,v 1.6 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_client_h @@ -115,8 +115,8 @@ PRIV_SEE_OPERS, /* display hidden opers */ PRIV_WIDE_GLINE, /* oper can set wider G-lines */ PRIV_LIST_CHAN, /* oper can list secret channels */ - PRIV_FORCE_OPMODE, /* oper can override a Q-line */ - PRIV_FORCE_LOCAL_OPMODE,/* oper can override a local channel Q-line */ + PRIV_FORCE_OPMODE, /* can hack modes on quarantined channels */ + PRIV_FORCE_LOCAL_OPMODE, /* can hack modes on quarantined local channels */ PRIV_LAST_PRIV /* must be the same as the last priv */ }; @@ -544,6 +544,7 @@ } ShowIPType; extern const char* get_client_name(const struct Client* sptr, int showip); +extern const char* client_get_default_umode(const struct Client* sptr); extern int client_get_ping(const struct Client* local_client); extern void client_drop_sendq(struct Connection* con); extern void client_add_sendq(struct Connection* con, Index: ircd-ircdev/include/gline.h diff -u ircd-ircdev/include/gline.h:1.2 ircd-ircdev/include/gline.h:1.3 --- ircd-ircdev/include/gline.h:1.2 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/gline.h Fri May 21 08:39:34 2004 @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: gline.h,v 1.2 2004/02/22 16:13:20 zolty Exp $ + * $Id: gline.h,v 1.3 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_gline_h @@ -64,7 +64,7 @@ #define GLINE_OPERFORCE 0x0400 /* oper forcing gline to be set */ #define GLINE_REALNAME 0x0800 /* gline matches only the realname field */ -#define GLINE_MASK (GLINE_ACTIVE | GLINE_BADCHAN | GLINE_LOCAL | GLINE_REALNAME ) +#define GLINE_MASK (GLINE_ACTIVE | GLINE_BADCHAN | GLINE_LOCAL | GLINE_REALNAME) #define GLINE_ACTMASK (GLINE_ACTIVE | GLINE_LDEACT) #define GlineIsActive(g) (((g)->gl_flags & GLINE_ACTMASK) == \ Index: ircd-ircdev/include/handlers.h diff -u ircd-ircdev/include/handlers.h:1.5 ircd-ircdev/include/handlers.h:1.6 --- ircd-ircdev/include/handlers.h:1.5 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/include/handlers.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: handlers.h,v 1.5 2004/04/23 11:08:08 zolty Exp $ + * $Id: handlers.h,v 1.6 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_handlers_h @@ -121,6 +121,7 @@ extern int m_private(struct Client*, struct Client*, int, char*[]); extern int m_privmsg(struct Client*, struct Client*, int, char*[]); extern int m_proto(struct Client*, struct Client*, int, char*[]); +extern int m_pseudo(struct Client*, struct Client*, int, char*[]); extern int m_quit(struct Client*, struct Client*, int, char*[]); extern int m_registered(struct Client*, struct Client*, int, char*[]); extern int m_silence(struct Client*, struct Client*, int, char*[]); @@ -236,9 +237,9 @@ extern int ms_users(struct Client*, struct Client*, int, char*[]); extern int ms_version(struct Client*, struct Client*, int, char*[]); extern int ms_wallchops(struct Client*, struct Client*, int, char*[]); -extern int ms_wallvoices(struct Client*, struct Client*, int, char*[]); extern int ms_wallops(struct Client*, struct Client*, int, char*[]); extern int ms_wallusers(struct Client*, struct Client*, int, char*[]); +extern int ms_wallvoices(struct Client*, struct Client*, int, char*[]); extern int ms_whois(struct Client*, struct Client*, int, char*[]); #endif /* INCLUDED_handlers_h */ Index: ircd-ircdev/include/ircd_defs.h diff -u ircd-ircdev/include/ircd_defs.h:1.2 ircd-ircdev/include/ircd_defs.h:1.3 --- ircd-ircdev/include/ircd_defs.h:1.2 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/ircd_defs.h Fri May 21 08:39:34 2004 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_defs.h,v 1.2 2004/02/22 16:13:20 zolty Exp $ + * $Id: ircd_defs.h,v 1.3 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_ircd_defs_h @@ -38,6 +38,7 @@ * is a default that can easily be overridden in CFLAGS. Just add * -DNICKLEN=15 to CFLAGS and save your config in .., and you can forget about * it. Thanks for helping debug guys. + * See also F:NICKLEN in ircd.conf. */ #ifndef NICKLEN #define NICKLEN 15 @@ -107,5 +108,7 @@ #define STARTTARGETS 10 #define RESERVEDTARGETS 12 +#define MAP_CACHE_TIME 604800 + #endif /* INCLUDED_ircd_defs_h */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.5 ircd-ircdev/include/ircd_features.h:1.6 --- ircd-ircdev/include/ircd_features.h:1.5 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/ircd_features.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_features.h,v 1.5 2004/02/22 16:13:20 zolty Exp $ + * $Id: ircd_features.h,v 1.6 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_features_h @@ -50,12 +50,12 @@ FEAT_HOST_HIDING, FEAT_HIDDEN_HOST, FEAT_HIDDEN_IP, - FEAT_AUTOHIDE, FEAT_CONNEXIT_NOTICES, #if defined(UNDERNET) FEAT_OPLEVELS, #endif FEAT_LOCAL_CHANNELS, + FEAT_TOPIC_BURST, /* features that probably should not be touched */ FEAT_KILLCHASETIMELIMIT, @@ -93,55 +93,13 @@ FEAT_IRCD_RES_RETRIES, FEAT_IRCD_RES_TIMEOUT, FEAT_AUTH_TIMEOUT, + FEAT_ANNOUNCE_INVITES, /* features that affect all operators */ FEAT_CRYPT_OPER_PASSWORD, - FEAT_OPER_NO_CHAN_LIMIT, - FEAT_OPER_MODE_LCHAN, - FEAT_OPER_WALK_THROUGH_LMODES, - FEAT_NO_OPER_DEOP_LCHAN, - FEAT_SHOW_INVISIBLE_USERS, - FEAT_SHOW_ALL_INVISIBLE_USERS, - FEAT_UNLIMIT_OPER_QUERY, - FEAT_LOCAL_KILL_ONLY, FEAT_CONFIG_OPERCMDS, FEAT_LIST_CHAN, - /* features that affect global opers on this server */ - FEAT_OPER_KILL, - FEAT_OPER_REHASH, - FEAT_OPER_RESTART, - FEAT_OPER_DIE, - FEAT_OPER_GLINE, - FEAT_OPER_LGLINE, - FEAT_OPER_JUPE, - FEAT_OPER_LJUPE, - FEAT_OPER_OPMODE, - FEAT_OPER_LOPMODE, - FEAT_OPER_FORCE_OPMODE, - FEAT_OPER_FORCE_LOPMODE, - FEAT_OPER_BADCHAN, - FEAT_OPER_LBADCHAN, - FEAT_OPER_SET, - FEAT_OPERS_SEE_IN_SECRET_CHANNELS, - FEAT_OPER_WIDE_GLINE, - FEAT_OPER_LIST_CHAN, - - /* features that affect local opers on this server */ - FEAT_LOCOP_KILL, - FEAT_LOCOP_REHASH, - FEAT_LOCOP_RESTART, - FEAT_LOCOP_DIE, - FEAT_LOCOP_LGLINE, - FEAT_LOCOP_LJUPE, - FEAT_LOCOP_LOPMODE, - FEAT_LOCOP_FORCE_LOPMODE, - FEAT_LOCOP_LBADCHAN, - FEAT_LOCOP_SET, - FEAT_LOCOP_SEE_IN_SECRET_CHANNELS, - FEAT_LOCOP_WIDE_GLINE, - FEAT_LOCOP_LIST_CHAN, - /* HEAD_IN_SAND Features */ FEAT_HIS_SNOTICES, FEAT_HIS_SNOTICES_OPER_ONLY, @@ -164,6 +122,7 @@ FEAT_HIS_STATS_o, FEAT_HIS_STATS_p, FEAT_HIS_STATS_q, + FEAT_HIS_STATS_R, FEAT_HIS_STATS_r, FEAT_HIS_STATS_d, FEAT_HIS_STATS_e, Index: ircd-ircdev/include/ircd_string.h diff -u ircd-ircdev/include/ircd_string.h:1.2 ircd-ircdev/include/ircd_string.h:1.3 --- ircd-ircdev/include/ircd_string.h:1.2 Sun Feb 22 08:13:21 2004 +++ ircd-ircdev/include/ircd_string.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_string.h,v 1.2 2004/02/22 16:13:21 zolty Exp $ + * $Id: ircd_string.h,v 1.3 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_ircd_string_h @@ -42,6 +42,8 @@ extern int string_is_address(const char* str); extern int string_has_wildcards(const char* str); +/*! Return hash for string using PJW algorithm */ +extern unsigned hash_pjw(const char* str); extern char* ircd_strncpy(char* dest, const char* src, size_t len); extern int ircd_strcmp(const char *a, const char *b); extern int ircd_strncmp(const char *a, const char *b, size_t n); Index: ircd-ircdev/include/msg.h diff -u ircd-ircdev/include/msg.h:1.4 ircd-ircdev/include/msg.h:1.5 --- ircd-ircdev/include/msg.h:1.4 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/include/msg.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: msg.h,v 1.4 2004/04/23 11:08:08 zolty Exp $ + * $Id: msg.h,v 1.5 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_msg_h @@ -372,6 +372,8 @@ * clients. */ #define MFLG_IGNORE 0x04 /* silently ignore command from * unregistered clients */ +#define MFLG_EXTRA 0x08 /* Handler requests that mptr->extra + * be passed in parv[1] */ /* * Structures @@ -385,6 +387,7 @@ to be used only on the average of once per 2 seconds -SRB */ unsigned int bytes; /* bytes received for this message */ + void *extra; /* extra pointer to be passed in parv[1] */ /* * cptr = Connected client ptr * sptr = Source client ptr Index: ircd-ircdev/include/msgq.h diff -u ircd-ircdev/include/msgq.h:1.2 ircd-ircdev/include/msgq.h:1.3 --- ircd-ircdev/include/msgq.h:1.2 Sun Feb 22 08:13:21 2004 +++ ircd-ircdev/include/msgq.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: msgq.h,v 1.2 2004/02/22 16:13:21 zolty Exp $ + * $Id: msgq.h,v 1.3 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_msgq_h @@ -88,8 +88,8 @@ extern void msgq_add(struct MsgQ *mq, struct MsgBuf *mb, int prio); extern void msgq_count_memory(struct Client *cptr, size_t *msg_alloc, size_t *msgbuf_alloc); -extern unsigned int msgq_bufleft(struct MsgBuf *mb); extern void msgq_histogram(struct Client *cptr, struct StatDesc *sd, int stat, char *param); +extern unsigned int msgq_bufleft(struct MsgBuf *mb); #endif /* INCLUDED_msgq_h */ Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.5 ircd-ircdev/include/numeric.h:1.6 --- ircd-ircdev/include/numeric.h:1.5 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/include/numeric.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: numeric.h,v 1.5 2004/04/23 11:08:08 zolty Exp $ + * $Id: numeric.h,v 1.6 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_numeric_h @@ -177,6 +177,7 @@ /* RPL_END_NOTIFY 274 aircd */ /* RPL_STATSDELTA 274 IRCnet extension */ #define RPL_STATSDLINE 275 /* Undernet extension */ +#define RPL_STATSRLINE 276 /* Undernet extension */ #define RPL_GLIST 280 /* Undernet extension */ #define RPL_ENDOFGLIST 281 /* Undernet extension */ @@ -261,6 +262,7 @@ #define RPL_INVITING 341 /* RPL_SUMMONING 342 removed from RFC1459 */ +#define RPL_ISSUEDINVITE 345 /* Undernet extension */ #define RPL_INVITELIST 346 /* IRCnet, Undernet extension */ #define RPL_ENDOFINVITELIST 347 /* IRCnet, Undernet extension */ /* RPL_EXCEPTLIST 348 IRCnet extension */ @@ -271,6 +273,7 @@ #define RPL_NAMREPLY 353 /* See also RPL_ENDOFNAMES */ #define RPL_WHOSPCRPL 354 /* Undernet extension, See also RPL_ENDOFWHO */ +#define RPL_DELNAMREPLY 355 /* QuakeNet extension */ #define RPL_KILLDONE 361 /* not used */ #define RPL_CLOSING 362 @@ -356,7 +359,7 @@ #define ERR_NICKTOOFAST 438 /* Undernet extension */ /* ERR_DEAD 438 IRCnet reserved for later use */ #define ERR_TARGETTOOFAST 439 /* Undernet extension */ -/* ERR_SERVICESDOWN 440 Dalnet,unreal */ +#define ERR_SERVICESDOWN 440 /* Dalnet,unreal,Undernet */ #define ERR_USERNOTINCHANNEL 441 #define ERR_NOTONCHANNEL 442 #define ERR_USERONCHANNEL 443 Index: ircd-ircdev/include/parse.h diff -u ircd-ircdev/include/parse.h:1.2 ircd-ircdev/include/parse.h:1.3 --- ircd-ircdev/include/parse.h:1.2 Sun Feb 22 08:13:21 2004 +++ ircd-ircdev/include/parse.h Fri May 21 08:39:34 2004 @@ -18,13 +18,14 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: parse.h,v 1.2 2004/02/22 16:13:21 zolty Exp $ + * $Id: parse.h,v 1.3 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_parse_h #define INCLUDED_parse_h struct Client; +struct s_map; /* * Prototypes @@ -34,4 +35,7 @@ extern int parse_server(struct Client *cptr, char *buffer, char *bufend); extern void initmsgtree(void); +extern int register_mapping(struct s_map *map); +extern int unregister_mapping(struct s_map *map); + #endif /* INCLUDED_parse_h */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.10 ircd-ircdev/include/patchlevel.h:1.11 --- ircd-ircdev/include/patchlevel.h:1.10 Fri Apr 23 04:08:08 2004 +++ ircd-ircdev/include/patchlevel.h Fri May 21 08:39:34 2004 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.10 2004/04/23 11:08:08 zolty Exp $ + * $Id: patchlevel.h,v 1.11 2004/05/21 15:39:34 zolty Exp $ * */ -#define PATCHLEVEL ".alpha9" +#define PATCHLEVEL ".alpha10" #define RELEASE "1.0" Index: ircd-ircdev/include/s_conf.h diff -u ircd-ircdev/include/s_conf.h:1.4 ircd-ircdev/include/s_conf.h:1.5 --- ircd-ircdev/include/s_conf.h:1.4 Sun Feb 22 08:13:21 2004 +++ ircd-ircdev/include/s_conf.h Fri May 21 08:39:34 2004 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: s_conf.h,v 1.4 2004/02/22 16:13:21 zolty Exp $ + * $Id: s_conf.h,v 1.5 2004/05/21 15:39:34 zolty Exp $ * */ #ifndef INCLUDED_s_conf_h @@ -41,6 +41,7 @@ struct Client; struct SLink; struct TRecord; +struct Message; /* @@ -55,14 +56,12 @@ #define CONF_MATCH 0x40000000 #define CONF_CLIENT 0x0002 #define CONF_SERVER 0x0004 -#define CONF_LOCOP 0x0010 #define CONF_OPERATOR 0x0020 #define CONF_LEAF 0x1000 #define CONF_HUB 0x4000 #define CONF_UWORLD 0x8000 -#define CONF_OPS (CONF_OPERATOR | CONF_LOCOP) -#define CONF_CLIENT_MASK (CONF_CLIENT | CONF_OPS | CONF_SERVER) +#define CONF_CLIENT_MASK (CONF_CLIENT | CONF_OPERATOR | CONF_SERVER) #define IsIllegal(x) ((x)->status & CONF_ILLEGAL) @@ -177,6 +176,21 @@ ACR_BAD_SOCKET }; +struct nick_host { + struct nick_host *next; + int nicklen; /* of... [truncated message content] |