Thread: [IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed (Page 2)
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2004-05-28 10:16:16
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-05-28 10:16:06 UTC Modified files: doc/ircd.sample-en.conf doc/ircd.sample-es.conf Log message: fixes de errores sintaticos en los ircd.conf ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.6 ircd-ircdev/doc/ircd.sample-en.conf:1.7 --- ircd-ircdev/doc/ircd.sample-en.conf:1.6 Fri May 28 03:01:20 2004 +++ ircd-ircdev/doc/ircd.sample-en.conf Fri May 28 03:15:55 2004 @@ -231,19 +231,17 @@ # Technical description (for examples, see below): # For every connecting client, the IP address is known. A reverse lookup # on this IP-number is done to get the (/all) hostname(s). -# Each hostname that belongs to this IP-number is matched to <hostmask>, -# and the "Client" block is used when any matches; the client will then -show -FIX FIX +# Each hostname that belongs to this IP-number is matched to "host" field, +# and the "Client" block is used when any matches; the client will then show # with this particular hostname. If none of the hostnames match, then -# the IP-number is matched against the <IP mask ...> field, if this matches -# then the Client{} is used nevertheless and the client will show with the +# the IP-number is matched against the "ip" field, if this matches then the +# "Client" block is used nevertheless and the client will show with the # first (main) hostname if any; if the IP-number did not resolve then the # client will show with the dot notation of the IP-number. # There is a special case for the UNIX domain sockets and localhost connections -# though; in this case the <IP mask ...> field is compared with the -# name of the server (thus not with any IP-number representation). The name -# of the server is the one returned in the numeric 002 reply, for example: +# though; in this case the "ip" field is compared with the name of the server +# (thus not with any IP-number representation). The name of the server is the +# one returned in the numeric 002 reply, for example: # 002 Your host is 2.irc-dev.net[jolan.ppro], running version ... # Then the "jolan.ppro" is the name used for matching. # Therefore, unix domain sockets, and connections to localhost would Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.1 ircd-ircdev/doc/ircd.sample-es.conf:1.2 --- ircd-ircdev/doc/ircd.sample-es.conf:1.1 Fri May 28 03:03:11 2004 +++ ircd-ircdev/doc/ircd.sample-es.conf Fri May 28 03:15:56 2004 @@ -214,7 +214,7 @@ # badchan (puede poner Gchans a otros servidores) # force_opmode (puede utilizar OPMODE/CLEARMODE en canales quarantined globales) # - # PAra los opers globales (con "propagate = yes" o "local = no"), por + # Para los opers globales (con "propagate = yes" o "local = no"), por # defecto es conceder todos los privilegios antes mencionados. Para los # opers locales, por defecto es conceder SOLO los siguientes privilegios: # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, @@ -245,16 +245,16 @@ # Para cada cliente que conecta, su dirección IP es conocida. Se hace una # consulta de dns inverso a la IP númerica para obtener el/los(todos) # hostnames. -# Cada hostname que pertenece a esa IP numérica se compara con <hostmask>, -# y el bloque "Client" se usa cuando cualquiera de ellos encaja; el cliente -# entonces se mostrará con ese hostname en concreto. Si ninguno de los -# hostnames encanjan, entonces la IP numérica se compara contra el campo -# <IP mask>, y si esta concuerda entonces el bloque "Client" se usa a pesar +# Cada hostname que pertenece a esa IP numérica se compara con el campo +# "host", y el bloque "Client" se usa cuando cualquiera de ellos encaja; +# el cliente entonces se mostrará con ese hostname en concreto. Si ninguno +# de los hostnames encajan, entonces la IP numérica se compara contra el +# campo "ip", y si esta concuerda entonces el bloque "Client" se usa a pesar # de todo y el cliente mostrará el primer (principal) hostname si existe; # si la IP numérica no resuelve, el cliente mostrará la notación decimal de # la IP númerica. # Hay un caso especial para los sockets de los dominios UNIX y las -# conexiones del host local (localhost); en este caso el campo <IP mask> +# conexiones del host local (localhost); en este caso el campo "ip" # se compara con el nombre del servidor (de tal suerte que no se hace # con ninguna representación de una IP numérica). El nombre del servidor # es el devuelto en la respuesta del numérico 002, por ejemplo: ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-11-16 17:59:05
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-16 17:58:58 UTC Modified files: ChangeLog ChangeLog.es include/handlers.h include/msg.h include/patchlevel.h ircd/Makefile.in ircd/ddb.c ircd/parse.c Added files: include/ddb.h ircd/m_db.c ircd/m_dbq.c Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 * IRCD IRC-Dev Ha Vuelto!! * Vesion preliminar de Base de Datos Distribuidas ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.11 ircd-ircdev/ChangeLog:1.12 --- ircd-ircdev/ChangeLog:1.11 Fri May 21 08:39:32 2004 +++ ircd-ircdev/ChangeLog Tue Nov 16 09:58:47 2004 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.11 2004/05/21 15:39:32 zolty Exp $ +# $Id: ChangeLog,v 1.12 2004/11/16 17:58:47 zolty Exp $ # # Insert new changes at beginning of the change list. # +2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 + * IRCD IRC-Dev Reloaded!! + * Distribuited DataBase preliminary version + 2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 * Disallow nick change on a moderated channel * Mapping service commands Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.11 ircd-ircdev/ChangeLog.es:1.12 --- ircd-ircdev/ChangeLog.es:1.11 Fri May 21 08:39:33 2004 +++ ircd-ircdev/ChangeLog.es Tue Nov 16 09:58:47 2004 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.11 2004/05/21 15:39:33 zolty Exp $ +# $Id: ChangeLog.es,v 1.12 2004/11/16 17:58:47 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 + * IRCD IRC-Dev Ha Vuelto!! + * Vesion preliminar de Base de Datos Distribuidas + 2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 * Deshabilitar el cambio de nick en canales moderados * Mapeo de comandos de services Index: ircd-ircdev/include/ddb.h diff -u /dev/null ircd-ircdev/include/ddb.h:1.1 --- /dev/null Tue Nov 16 09:58:58 2004 +++ ircd-ircdev/include/ddb.h Tue Nov 16 09:58:47 2004 @@ -0,0 +1,104 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ddb.h + * + * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004 Toni Garcia (zoltan) <zo...@ir...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id: ddb.h,v 1.1 2004/11/16 17:58:47 zolty Exp $ + * + */ +#ifndef INCLUDED_ddb_h +#define INCLUDED_ddb_h + +#include "config.h" +#include "client.h" + +#if defined(DDB) + +/* + * General defines + */ + +#define DDB_TABLE_MAX 256 + +/* + * Distributed DataBase Tables + */ +#define DDB_INIT 'a' /* First table */ + +#define DDB_CHANDB 'c' /* ChanDB table */ +#define DDB_NICKDB 'n' /* NickDB table */ + +#define DDB_END 'z' /* Last table */ + + +/* + * Structures + */ +struct Ddb { + char *key; + char *content; + struct Ddb *next; +}; + +struct ddb_memory_table { + char *position; + unsigned int len; + char *point_r; + char *point_w; +}; + + +/* + * Prototypes + */ +extern struct Ddb **ddb_data_table[DDB_TABLE_MAX]; +extern int ddb_resident_table[DDB_TABLE_MAX]; +extern unsigned long int ddb_count_table[DDB_TABLE_MAX]; +extern unsigned long int ddb_id_table[DDB_TABLE_MAX]; +extern unsigned long int ddb_hashtable_hi[DDB_TABLE_MAX]; +extern unsigned long int ddb_hashtable_lo[DDB_TABLE_MAX]; + +extern int ddb_table_is_resident(unsigned char table); +extern unsigned long int ddb_id_in_table(unsigned char table); +extern unsigned long int ddb_count_in_table(unsigned char table); + +extern void ddb_init(void); +extern int ddb_open(unsigned int registry, char *buf, unsigned char table, + struct ddb_memory_table *dump); +extern int ddb_read(struct ddb_memory_table *dump, char *buf); +extern void ddb_add(char *registry, unsigned char table, int save_disk); +extern void ddb_del(char *registry, unsigned char table); +extern void ddb_drop(unsigned char table); +extern void ddb_close(struct ddb_memory_table *dump); +extern void ddb_hash_write(unsigned char table); +extern struct Ddb *ddb_find_reg(unsigned char table, char *key); +extern int ddb_is_member(unsigned char table, char *key, char *subcadena); +extern char *ddb_get_botname(char *bot); + +extern struct Ddb *ddb_iterator_init(unsigned char table); +extern struct Ddb *ddb_iterator_next(void); + +extern void ddb_reload(void); +extern void ddb_die(char *msg, unsigned char table); +extern void ddb_burst(struct Client *cptr); +extern void report_ddb(struct Client *cptr); + +#endif /* defined(DDB) */ + +#endif /* INCLUDED_ddb_h */ + Index: ircd-ircdev/include/handlers.h diff -u ircd-ircdev/include/handlers.h:1.6 ircd-ircdev/include/handlers.h:1.7 --- ircd-ircdev/include/handlers.h:1.6 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/handlers.h Tue Nov 16 09:58:47 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.6 2004/05/21 15:39:34 zolty Exp $ + * $Id: handlers.h,v 1.7 2004/11/16 17:58:47 zolty Exp $ * */ #ifndef INCLUDED_handlers_h @@ -151,6 +151,9 @@ extern int mo_clearmode(struct Client*, struct Client*, int, char*[]); extern int mo_close(struct Client*, struct Client*, int, char*[]); extern int mo_connect(struct Client*, struct Client*, int, char*[]); +#if defined(DDB) +extern int mo_dbq(struct Client*, struct Client*, int, char*[]); +#endif extern int mo_die(struct Client*, struct Client*, int, char*[]); extern int mo_get(struct Client*, struct Client*, int, char*[]); extern int mo_gline(struct Client*, struct Client*, int, char*[]); @@ -198,6 +201,10 @@ extern int ms_clearmode(struct Client*, struct Client*, int, char*[]); extern int ms_connect(struct Client*, struct Client*, int, char*[]); extern int ms_create(struct Client*, struct Client*, int, char*[]); +#if defined(DDB) +extern int ms_db(struct Client*, struct Client*, int, char*[]); +extern int ms_dbq(struct Client*, struct Client*, int, char*[]); +#endif extern int ms_destruct(struct Client*, struct Client*, int, char*[]); extern int ms_desynch(struct Client*, struct Client*, int, char*[]); extern int ms_end_of_burst(struct Client*, struct Client*, int, char*[]); Index: ircd-ircdev/include/msg.h diff -u ircd-ircdev/include/msg.h:1.5 ircd-ircdev/include/msg.h:1.6 --- ircd-ircdev/include/msg.h:1.5 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/msg.h Tue Nov 16 09:58:47 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.5 2004/05/21 15:39:34 zolty Exp $ + * $Id: msg.h,v 1.6 2004/11/16 17:58:47 zolty Exp $ * */ #ifndef INCLUDED_msg_h @@ -363,6 +363,16 @@ #define MSG_WATCH "WATCH" /* WATC */ #define TOK_WATCH "WATCH" + +#if defined(DDB) +#define MSG_DB "DB" /* DB */ +#define TOK_DB "DB" + +#define MSG_DBQ "DBQ" /* DBQ */ +#define TOK_DBQ "DBQ" +#endif /* defined(DDB) */ + + /* * Constants */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.11 ircd-ircdev/include/patchlevel.h:1.12 --- ircd-ircdev/include/patchlevel.h:1.11 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/patchlevel.h Tue Nov 16 09:58:47 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.11 2004/05/21 15:39:34 zolty Exp $ + * $Id: patchlevel.h,v 1.12 2004/11/16 17:58:47 zolty Exp $ * */ -#define PATCHLEVEL ".alpha10" +#define PATCHLEVEL ".alpha11" #define RELEASE "1.0" Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.10 ircd-ircdev/ircd/Makefile.in:1.11 --- ircd-ircdev/ircd/Makefile.in:1.10 Fri May 21 08:39:34 2004 +++ ircd-ircdev/ircd/Makefile.in Tue Nov 16 09:58:47 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: Makefile.in,v 1.10 2004/05/21 15:39:34 zolty Exp $ +# $Id: Makefile.in,v 1.11 2004/11/16 17:58:47 zolty Exp $ #### Start of system configuration section. #### @@ -95,6 +95,7 @@ client.c \ crule.c \ dbuf.c \ + ddb.c \ destruct_event.c \ fda.c \ fileio.c \ @@ -126,6 +127,8 @@ m_connect.c \ m_cprivmsg.c \ m_create.c \ + m_db.c \ + m_dbq.c \ m_defaults.c \ m_destruct.c \ m_desynch.c \ @@ -370,960 +373,971 @@ # DO NOT DELETE THIS LINE -- make depend depends on it. -IPcheck.o: IPcheck.c ../config.h ../include/IPcheck.h \ - ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ - ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/ircd.h ../include/struct.h ../include/msg.h \ - ../include/numnicks.h ../include/ircd_alloc.h ../include/s_debug.h \ - ../include/s_user.h ../include/send.h +IPcheck.o: IPcheck.c ../config.h ../include/IPcheck.h ../include/client.h \ + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ + ../include/struct.h ../include/msg.h ../include/numnicks.h \ + ../include/ircd_alloc.h ../include/ircd_features.h ../include/s_debug.h \ + ../include/s_user.h ../include/send.h channel.o: channel.c ../config.h ../include/channel.h \ - ../include/ircd_defs.h ../include/client.h ../include/dbuf.h \ - ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/hash.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_alloc.h ../include/ircd_chattr.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/list.h ../include/match.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/querycmds.h ../include/s_bsd.h ../include/s_conf.h \ - ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/support.h ../include/sys.h \ - ../include/whowas.h + ../include/ircd_defs.h ../include/client.h ../include/dbuf.h \ + ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ + ../include/destruct_event.h ../include/hash.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_snprintf.h \ + ../include/ircd_string.h ../include/list.h ../include/match.h \ + ../include/msg.h ../include/numeric.h ../include/numnicks.h \ + ../include/querycmds.h ../include/s_bsd.h ../include/s_conf.h \ + ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ + ../include/send.h ../include/support.h ../include/sys.h \ + ../include/whowas.h class.o: class.c ../config.h ../include/class.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_features.h ../include/ircd_reply.h ../include/list.h \ - ../include/numeric.h ../include/s_conf.h ../include/s_debug.h \ - ../include/send.h -client.o: client.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/class.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ - ../include/ircd_reply.h ../include/list.h ../include/numeric.h \ - ../include/s_conf.h ../include/s_debug.h ../include/send.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/list.h ../include/numeric.h \ + ../include/s_conf.h ../include/s_debug.h ../include/send.h +client.o: client.c ../config.h ../include/client.h ../include/ircd_defs.h \ + ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ + ../include/ircd_handler.h ../include/class.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_features.h ../include/ircd_reply.h \ + ../include/list.h ../include/numeric.h ../include/s_conf.h \ + ../include/s_debug.h ../include/send.h crule.o: crule.c ../config.h ../include/crule.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ - ../include/ircd_string.h ../include/match.h ../include/s_bsd.h \ - ../include/s_debug.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ + ../include/ircd_string.h ../include/match.h ../include/s_bsd.h \ + ../include/s_debug.h dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd_alloc.h \ - ../include/ircd_chattr.h ../include/ircd_features.h ../include/send.h \ - ../include/sys.h + ../include/ircd_chattr.h ../include/ircd_features.h ../include/send.h \ + ../include/sys.h +ddb.o: ddb.c ../config.h ../include/ddb.h +destruct_event.o: destruct_event.c ../config.h ../include/channel.h \ + ../include/ircd_defs.h ../include/s_debug.h ../include/ircd_alloc.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_events.h \ + ../include/send.h ../include/msg.h ../include/ircd_handler.h fda.o: fda.c ../config.h fileio.o: fileio.c ../config.h ../include/fileio.h \ - ../include/ircd_alloc.h + ../include/ircd_alloc.h gline.o: gline.c ../config.h ../include/gline.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/match.h \ - ../include/numeric.h ../include/s_bsd.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/support.h ../include/msg.h ../include/numnicks.h \ - ../include/sys.h ../include/whocmds.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_reply.h \ + ../include/ircd_snprintf.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/match.h ../include/numeric.h \ + ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ + ../include/s_stats.h ../include/send.h ../include/support.h \ + ../include/msg.h ../include/numnicks.h ../include/sys.h \ + ../include/whocmds.h hash.o: hash.c ../config.h ../include/hash.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/channel.h ../include/ircd_chattr.h \ - ../include/ircd_string.h ../include/ircd.h ../include/struct.h \ - ../include/msg.h ../include/send.h ../include/support.h \ - ../include/sys.h ../include/watch.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/channel.h \ + ../include/ircd_chattr.h ../include/ircd_string.h ../include/ircd.h \ + ../include/struct.h ../include/msg.h ../include/send.h \ + ../include/support.h ../include/sys.h ../include/watch.h ircd.o: ircd.c ../config.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_defs.h ../include/IPcheck.h ../include/class.h \ - ../include/client.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/crule.h \ - ../include/hash.h ../include/ircd_alloc.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_signal.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/jupe.h ../include/list.h \ - ../include/match.h ../include/motd.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ - ../include/parse.h ../include/res.h ../include/s_auth.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h ../include/uping.h ../include/userload.h \ - ../include/version.h ../include/whowas.h + ../include/ircd_defs.h ../include/IPcheck.h ../include/class.h \ + ../include/client.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/crule.h \ + ../include/destruct_event.h ../include/channel.h ../include/hash.h \ + ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_signal.h \ + ../include/ircd_string.h ../include/ircd_chattr.h ../include/jupe.h \ + ../include/list.h ../include/match.h ../include/motd.h ../include/msg.h \ + ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ + ../include/parse.h ../include/res.h ../include/s_auth.h \ + ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ + ../include/s_misc.h ../include/s_stats.h ../include/send.h \ + ../include/sys.h ../include/uping.h ../include/userload.h \ + ../include/version.h ../include/whowas.h ircd_alloc.o: ircd_alloc.c ../config.h ../include/ircd_alloc.h \ - ../include/ircd_string.h ../include/ircd_chattr.h \ - ../include/s_debug.h ../include/ircd_defs.h + ../include/ircd_string.h ../include/ircd_chattr.h ../include/s_debug.h \ + ../include/ircd_defs.h ircd_events.o: ircd_events.c ../config.h ../include/ircd_events.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_defs.h \ - ../include/ircd_alloc.h ../include/ircd_log.h \ - ../include/ircd_snprintf.h ../include/s_debug.h -ircd_features.o: ircd_features.c ../config.h \ - ../include/ircd_features.h ../include/channel.h \ - ../include/ircd_defs.h ../include/class.h ../include/client.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ - ../include/ircd_handler.h ../include/hash.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/match.h ../include/motd.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/random.h ../include/s_bsd.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/support.h ../include/sys.h ../include/whowas.h + ../include/ircd.h ../include/struct.h ../include/ircd_defs.h \ + ../include/ircd_alloc.h ../include/ircd_log.h \ + ../include/ircd_snprintf.h ../include/s_debug.h +ircd_features.o: ircd_features.c ../config.h ../include/ircd_features.h \ + ../include/channel.h ../include/ircd_defs.h ../include/class.h \ + ../include/client.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ + ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/match.h ../include/motd.h \ + ../include/msg.h ../include/numeric.h ../include/numnicks.h \ + ../include/random.h ../include/s_bsd.h ../include/s_debug.h \ + ../include/s_misc.h ../include/s_stats.h ../include/send.h \ + ../include/support.h ../include/sys.h ../include/whowas.h ircd_log.o: ircd_log.c ../config.h ../include/ircd_log.h \ - ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ - ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/ircd_alloc.h ../include/ircd_reply.h \ - ../include/ircd_snprintf.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/ircd.h ../include/struct.h \ - ../include/numeric.h ../include/s_debug.h ../include/send.h + ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ + ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ + ../include/ircd_alloc.h ../include/ircd_reply.h \ + ../include/ircd_snprintf.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/ircd.h ../include/struct.h \ + ../include/numeric.h ../include/s_debug.h ../include/send.h ircd_relay.o: ircd_relay.c ../config.h ../include/ircd_relay.h \ - ../include/channel.h ../include/ircd_defs.h ../include/client.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ - ../include/ircd_handler.h ../include/hash.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_chattr.h \ - ../include/ircd_features.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/match.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_user.h ../include/send.h + ../include/channel.h ../include/ircd_defs.h ../include/client.h \ + ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ + ../include/ircd_handler.h ../include/hash.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_chattr.h ../include/ircd_features.h \ + ../include/ircd_reply.h ../include/ircd_string.h ../include/match.h \ + ../include/msg.h ../include/numeric.h ../include/numnicks.h \ + ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ + ../include/send.h ircd_reply.o: ircd_reply.c ../config.h ../include/ircd_reply.h \ - ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ - ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_snprintf.h \ - ../include/msg.h ../include/numeric.h ../include/s_conf.h \ - ../include/s_debug.h ../include/send.h + ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ + ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_snprintf.h \ + ../include/msg.h ../include/numeric.h ../include/s_conf.h \ + ../include/s_debug.h ../include/send.h ircd_signal.o: ircd_signal.c ../config.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_defs.h ../include/ircd_events.h \ - ../include/ircd_signal.h ../include/s_conf.h + ../include/struct.h ../include/ircd_defs.h ../include/ircd_events.h \ + ../include/ircd_signal.h ../include/s_conf.h ../include/client.h \ + ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h ircd_snprintf.o: ircd_snprintf.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/channel.h ../include/ircd_snprintf.h ../include/struct.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/channel.h \ + ../include/ircd_snprintf.h ../include/struct.h ircd_string.o: ircd_string.c ../config.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/ircd_defs.h ../include/ircd_log.h \ - chattr.tab.c + ../include/ircd_chattr.h ../include/ircd_defs.h ../include/ircd_log.h \ + chattr.tab.c +ircd_tea.o: ircd_tea.c ../config.h ircd_xopen.o: ircd_xopen.c ../config.h ../include/ircd_xopen.h jupe.o: jupe.c ../config.h ../include/jupe.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ - ../include/s_misc.h ../include/send.h ../include/support.h \ - ../include/sys.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ + ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ + ../include/s_misc.h ../include/send.h ../include/support.h \ + ../include/sys.h +lex.yy.o: lex.yy.c ../include/ircd.h ../include/struct.h \ + ../include/ircd_defs.h y.tab.h list.o: list.c ../config.h ../include/list.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/ircd_chattr.h \ - ../include/listener.h ../include/match.h ../include/numeric.h \ - ../include/res.h ../include/s_auth.h ../include/s_bsd.h \ - ../include/s_conf.h ../include/s_debug.h ../include/s_misc.h \ - ../include/s_user.h ../include/send.h ../include/support.h \ - ../include/whowas.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_reply.h \ + ../include/ircd_string.h ../include/ircd_chattr.h ../include/listener.h \ + ../include/match.h ../include/numeric.h ../include/res.h \ + ../include/s_auth.h ../include/s_bsd.h ../include/s_conf.h \ + ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ + ../include/send.h ../include/support.h ../include/whowas.h listener.o: listener.c ../config.h ../include/listener.h \ - ../include/ircd_defs.h ../include/ircd_events.h ../include/client.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_features.h ../include/ircd_osdep.h \ - ../include/ircd_reply.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/ircd_chattr.h \ - ../include/numeric.h ../include/s_bsd.h ../include/s_conf.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h -m_account.o: m_account.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_reply.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/msg.h ../include/numnicks.h \ - ../include/s_user.h ../include/send.h + ../include/ircd_defs.h ../include/ircd_events.h ../include/client.h \ + ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ + ../include/ircd_features.h ../include/ircd_osdep.h \ + ../include/ircd_reply.h ../include/ircd_snprintf.h \ + ../include/ircd_string.h ../include/ircd_chattr.h ../include/numeric.h \ + ../include/s_bsd.h ../include/s_conf.h ../include/s_misc.h \ + ../include/s_stats.h ../include/send.h ../include/sys.h +m_account.o: m_account.c ../config.h m_admin.o: m_admin.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ - ../include/ircd_reply.h ../include/msg.h ../include/numeric.h \ - ../include/numnicks.h ../include/s_conf.h ../include/s_user.h -m_asll.o: m_asll.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/ircd_chattr.h \ - ../include/numeric.h ../include/numnicks.h ../include/match.h \ - ../include/msg.h ../include/send.h ../include/s_bsd.h \ - ../include/s_user.h -m_away.o: m_away.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/s_user.h \ - ../include/send.h + ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ + ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ + ../include/ircd_reply.h ../include/msg.h ../include/numeric.h \ + ../include/numnicks.h ../include/s_conf.h ../include/s_user.h +m_asll.o: m_asll.c ../config.h ../include/client.h ../include/ircd_defs.h \ + ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ + ../include/ircd_handler.h ../include/hash.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-17 11:46:20
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-17 11:46:01 UTC Modified files: ChangeLog ChangeLog.es doc/ircd.sample-en.conf doc/ircd.sample-es.conf doc/history/Undernet/ChangeLog-u2.10.11 include/ircd_features.h include/patchlevel.h include/s_conf.h ircd/Makefile.in ircd/channel.c ircd/gline.c ircd/ircd_features.c ircd/ircd_relay.c ircd/listener.c ircd/m_away.c ircd/m_kill.c ircd/m_notice.c ircd/m_ping.c ircd/m_pong.c ircd/m_privmsg.c ircd/m_topic.c ircd/m_version.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/m_whois.c ircd/parse.c ircd/s_bsd.c ircd/s_conf.c ircd/s_err.c ircd/s_user.c ircd/test/ircd_chattr.0.dat tools/crypter Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-17 Toni García <zo...@ir...> 1.0.alpha12 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.12 ircd-ircdev/ChangeLog:1.13 --- ircd-ircdev/ChangeLog:1.12 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/ChangeLog Wed Nov 17 03:45:48 2004 @@ -1,13 +1,16 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.12 2004/11/16 17:58:47 zolty Exp $ +# $Id: ChangeLog,v 1.13 2004/11/17 11:45:48 zolty Exp $ # # Insert new changes at beginning of the change list. # +2004-11-17 Toni García <zo...@ir...> 1.0.alpha12 + * Undernet synchronization + 2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 * IRCD IRC-Dev Reloaded!! - * Distribuited DataBase preliminary version + * Distribuited DataBase preliminary version 2004-05-21 Toni García <zo...@ir...> 1.0.alpha10 * Disallow nick change on a moderated channel Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.12 ircd-ircdev/ChangeLog.es:1.13 --- ircd-ircdev/ChangeLog.es:1.12 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/ChangeLog.es Wed Nov 17 03:45:48 2004 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.12 2004/11/16 17:58:47 zolty Exp $ +# $Id: ChangeLog.es,v 1.13 2004/11/17 11:45:48 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2004-11-17 Toni García <zo...@ir...> 1.0.alpha12 + * Sincronizacion Undernet + 2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 * IRCD IRC-Dev Ha Vuelto!! * Vesion preliminar de Base de Datos Distribuidas Index: ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.11 diff -u ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.11:1.1 ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.11:1.2 --- ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.11:1.1 Fri Apr 23 03:07:50 2004 +++ ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.11 Wed Nov 17 03:45:49 2004 @@ -1,3 +1,188 @@ +2004-09-17 Kevin L Mitchell <kl...@mi...> + + * include/patchlevel.h (PATCHLEVEL): Release the sucker. + +2004-09-13 Kevin L Mitchell <kl...@mi...> + + * doc/readme.features: update feature name--forgotten in a prior + commit + + * doc/ircd.conf.sample: update feature name--forgotten in a prior + commit + + * doc/example.conf: update feature name--forgotten in a prior + commit + + * include/patchlevel.h (PATCHLEVEL): bump patchlevel (again!), + just so we know who's runnin' what... + + * ircd/listener.c (add_listener): a listener needs to be listed as + a server port listener BEFORE we open the listening port! + +2004-09-11 Kevin L Mitchell <kl...@mi...> + + * ircd/m_topic.c (do_settopic): oh, bah, stupid bug... + +2004-06-17 Fredrik Soderblom <fr...@qu...> + + * ircd/s_conf.c (rehash): added restart_resolver() + +2003-07-04 Bas Steendijk <ste...@xs...> + + * include/client.h, ircd/m_userhost.c, ircd/m_userip.c, ircd/m_who.c, + ircd/m_whois.c, ircd/whocmds.c: the same code, for "can user A see user + B is an oper", appeared in a lot of places. made it a define SeeOper. + +2004-09-11 Kevin L Mitchell <kl...@mi...> + + * ircd/m_topic.c (do_settopic): Don't allow banned users to set a + topic in a channel (adapted from patch by Alexander Maassen + <out...@ke...>) + + * tools/Bounce/Bounce.h: drop file location + + * tools/Bounce/Bounce.cpp: drop file location + + * tools/crypter: drop file location; do some minor fixup; does + anyone actually use this script? + + * tools/Makefile.crypt: drop file location + + * ircd/test/ircd_chattr.0.dat (IsChannelPrefix): drop + from + channel prefix list + + * ircd/s_user.c (hide_hostmask): use the already calculated hidden + host + + * ircd/s_err.c: use the already calculated hidden host + + * ircd/m_version.c (mo_version): fix up a comment + + * ircd/m_topic.c (ms_topic): fix up a couple of comments + + * ircd/m_quit.c: drop the "template" moniker + + * ircd/m_privmsg.c: drop the "template" moniker + + * ircd/m_pong.c: drop the "template" moniker + + * ircd/m_ping.c: drop the "template" moniker + + * ircd/m_opmode.c: update file location + + * ircd/m_notice.c: drop the "template" moniker + + * ircd/m_kill.c: drop the "template" moniker + + * ircd/m_clearmode.c: update file location + + * ircd/m_away.c: drop the "template" moniker + + * ircd/ircd_relay.c (relay_directed_message): X does say it's a + service, now... + + * config.h.in: drop file location + + * acconfig.h: drop file location + + * ircd/m_whois.c (do_whois): rename FEAT_HIS_LOCAL_CHAN_WHOIS to + satisfy reed :P + + * ircd/ircd_features.c: rename FEAT_HIS_LOCAL_CHAN_WHOIS to + satisfy reed :P + + * include/ircd_features.h: rename FEAT_HIS_LOCAL_CHAN_WHOIS to + satisfy reed :P + + * include/patchlevel.h (PATCHLEVEL): bump patch level + + * ircd/channel.c (is_banned): apply patch #888640 + +2003-06-08 Matthias Crauwels <ult...@wo...> + * include/ircd_features.h: new feature FEAT_HIS_LOCAL_CHAN_WHOIS + + * ircd/ircd_features.c: new feature FEAT_HIS_LOCAL_CHAN_WHOIS + + * ircd/m_whois.c: hide local channels in local WHOIS, this breaks HIS + + * doc/readme.features: documented FEAT_HIS_LOCAL_CHAN_WHOIS + + * doc/ircd.conf.sample: default value for FEAT_HIS_LOCAL_CHAN_WHOIS + +2004-09-11 Kevin L Mitchell <kl...@mi...> + + * ircd/m_wallvoices.c (ms_wallvoices): Don't accept & channel + WALLVOICES from servers (Bug #721494) + + * ircd/m_wallchops.c (ms_wallchops): Don't accept & channel + WALLCHOPS from servers (Bug #721494) + + * ircd/ircd_relay.c: Don't accept & channel messages/notices from + servers (Bug #721494) + + * ircd/gline.c (gline_add): fix GLINE logging (Bug #750927) + + * ircd/channel.c: removing limits shouldn't gobble an argument; + this was a subtle interaction issue with modebuf...fixed by adding + MODE_LIMIT to modebuf_flush_int() and short-circuiting + modebuf_mode_uint() to add MODE_LIMIT to mbuf->mb_rem in the + removal case. Note that this is not proof against the sequence, + "modebuf_mode_uint(mbuf, MODE_ADD | MODE_LIMIT, 10); + modebuf_mode_uint(mbuf, MODE_DEL | MODE_LIMIT, 10);" + (Bug #916138) + +2004-08-31 Isomer <is...@un...> + * ircd/m_account.c: Back out untested login-on-connect extensions, + we'll relook at these for .12 + +2004-04-17 Isomer <is...@un...> + * ircd/parse.c: Don't rate limit /gline messages + +2004-08-26 Kevin L Mitchell <kl...@mi...> + + * ircd/s_conf.c (lookup_confhost): if field 1 of a C-line contains + a '/', interpret the text before the '/' as an IP address to bind + to locally, and use the text after the '/' as the host to connect + to + + * ircd/s_bsd.c (connect_inet): if origin field in struct ConfItem + is set, bind to the identified address + + * include/s_conf.h: add origin field to struct ConfItem + +2004-06-20 Alex Badea <dec...@us...> + + * ircd/m_account.c: login-on-connect extensions, part 1: + added message sub-types and implemented routing + +2004-06-18 Alex Badea <dec...@us...> + + * ircd/gline.c (gline_lookup): only return a gline if it's + active + + * ircd/s_conf.c (find_kill): don't check for active gline, + since gline_lookup does now + +2004-06-08 Kevin L Mitchell <kl...@mi...> + + * ircd/parse.c: don't let rank-and-file users escape HIS + limitations with /jupe... + +2004-05-14 Kevin L Mitchell <kl...@mi...> + + * ircd/ircd_features.c: per CFV-0243, NICKLEN default is increased + to 12 + + * 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-03-20 Isomer <is...@un...> * ircd/m_invite.c: Disallow invites to non existant channels Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.7 ircd-ircdev/doc/ircd.sample-en.conf:1.8 --- ircd-ircdev/doc/ircd.sample-en.conf:1.7 Fri May 28 03:15:55 2004 +++ ircd-ircdev/doc/ircd.sample-en.conf Wed Nov 17 03:45:49 2004 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 28, May 2004. +# Last Updated: 17, Nov 2004. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -821,6 +821,7 @@ # "HIS_STATS_z" = "TRUE"; # "HIS_WHOIS_SERVERNAME" = "TRUE"; # "HIS_WHOIS_IDLETIME" = "TRUE"; +# "HIS_WHOIS_LOCALCHAN" = "TRUE"; # "HIS_WHO_SERVERNAME" = "TRUE"; # "HIS_WHO_HOPCOUNT" = TRUE"; # "HIS_BANWHO" = "TRUE"; Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.2 ircd-ircdev/doc/ircd.sample-es.conf:1.3 --- ircd-ircdev/doc/ircd.sample-es.conf:1.2 Fri May 28 03:15:56 2004 +++ ircd-ircdev/doc/ircd.sample-es.conf Wed Nov 17 03:45:49 2004 @@ -1,6 +1,6 @@ # ircd.conf - archivo de configuración para el IRCD de IRC-Dev. # -# Ultima actualización: 28, May 2004. +# Ultima actualización: 17, Nov 2004. # # Escrito por Niels <ni...@un...>, basado en el archivo example.conf # original, en el código del servidor y la experiencia de la vida real. @@ -858,6 +858,7 @@ # "HIS_STATS_z" = "TRUE"; # "HIS_WHOIS_SERVERNAME" = "TRUE"; # "HIS_WHOIS_IDLETIME" = "TRUE"; +# "HIS_WHOIS_LOCALCHAN" = "TRUE"; # "HIS_WHO_SERVERNAME" = "TRUE"; # "HIS_WHO_HOPCOUNT" = TRUE"; # "HIS_BANWHO" = "TRUE"; Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.6 ircd-ircdev/include/ircd_features.h:1.7 --- ircd-ircdev/include/ircd_features.h:1.6 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/ircd_features.h Wed Nov 17 03:45:49 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.6 2004/05/21 15:39:34 zolty Exp $ + * $Id: ircd_features.h,v 1.7 2004/11/17 11:45:49 zolty Exp $ * */ #ifndef INCLUDED_features_h @@ -137,6 +137,7 @@ FEAT_HIS_STATS_z, FEAT_HIS_WHOIS_SERVERNAME, FEAT_HIS_WHOIS_IDLETIME, + FEAT_HIS_WHOIS_LOCALCHAN, FEAT_HIS_WHO_SERVERNAME, FEAT_HIS_WHO_HOPCOUNT, FEAT_HIS_BANWHO, Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.12 ircd-ircdev/include/patchlevel.h:1.13 --- ircd-ircdev/include/patchlevel.h:1.12 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/include/patchlevel.h Wed Nov 17 03:45:49 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.12 2004/11/16 17:58:47 zolty Exp $ + * $Id: patchlevel.h,v 1.13 2004/11/17 11:45:49 zolty Exp $ * */ -#define PATCHLEVEL ".alpha11" +#define PATCHLEVEL ".alpha12" #define RELEASE "1.0" Index: ircd-ircdev/include/s_conf.h diff -u ircd-ircdev/include/s_conf.h:1.5 ircd-ircdev/include/s_conf.h:1.6 --- ircd-ircdev/include/s_conf.h:1.5 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/s_conf.h Wed Nov 17 03:45:49 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.5 2004/05/21 15:39:34 zolty Exp $ + * $Id: s_conf.h,v 1.6 2004/11/17 11:45:49 zolty Exp $ * */ #ifndef INCLUDED_s_conf_h @@ -74,6 +74,7 @@ unsigned int status; /* If CONF_ILLEGAL, delete when no clients */ unsigned int clients; /* Number of *LOCAL* clients using this */ struct ConnectionClass* conn_class; /* Class of connection */ + struct in_addr origin; /* ip number of connect origin */ struct in_addr ipnum; /* ip number of host field */ char* host; char* passwd; Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.11 ircd-ircdev/ircd/Makefile.in:1.12 --- ircd-ircdev/ircd/Makefile.in:1.11 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/ircd/Makefile.in Wed Nov 17 03:45:49 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: Makefile.in,v 1.11 2004/11/16 17:58:47 zolty Exp $ +# $Id: Makefile.in,v 1.12 2004/11/17 11:45:49 zolty Exp $ #### Start of system configuration section. #### @@ -414,7 +414,7 @@ dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd_alloc.h \ ../include/ircd_chattr.h ../include/ircd_features.h ../include/send.h \ ../include/sys.h -ddb.o: ddb.c ../config.h ../include/ddb.h +ddb.o: ddb.c ../config.h destruct_event.o: destruct_event.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/s_debug.h ../include/ircd_alloc.h \ ../include/ircd.h ../include/struct.h ../include/ircd_events.h \ @@ -605,12 +605,8 @@ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_debug.h ../include/s_misc.h \ ../include/s_user.h ../include/send.h -m_db.o: m_db.c ../config.h ../include/ddb.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/msg.h -m_dbq.o: m_dbq.c ../config.h ../include/ddb.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/msg.h +m_db.o: m_db.c ../config.h +m_dbq.o: m_dbq.c ../config.h m_defaults.o: m_defaults.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.7 ircd-ircdev/ircd/channel.c:1.8 --- ircd-ircdev/ircd/channel.c:1.7 Fri May 21 08:39:34 2004 +++ ircd-ircdev/ircd/channel.c Wed Nov 17 03:45:50 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: channel.c,v 1.7 2004/05/21 15:39:34 zolty Exp $ + * $Id: channel.c,v 1.8 2004/11/17 11:45:50 zolty Exp $ * */ #include "config.h" @@ -501,7 +501,7 @@ if (match(tmp->value.ban.banstr, ip_s) == 0) break; } - else if (match(tmp->value.ban.banstr, s) == 0) + if (match(tmp->value.ban.banstr, s) == 0) break; else if (sr && match(tmp->value.ban.banstr, sr) == 0) break; @@ -1611,7 +1611,7 @@ MODE_WASDELJOINS, 'd', /* MODE_KEY, 'k', */ /* MODE_BAN, 'b', */ -/* MODE_LIMIT, 'l', */ + MODE_LIMIT, 'l', #if defined(UNDERNET) /* MODE_APASS, 'A', */ /* MODE_UPASS, 'u', */ @@ -2033,6 +2033,11 @@ assert(0 != mbuf); assert(0 != (mode & (MODE_ADD | MODE_DEL))); + if (mode == (MODE_LIMIT | MODE_DEL)) { + mbuf->mb_rem |= mode; + return; + } + MB_TYPE(mbuf, mbuf->mb_count) = mode; MB_UINT(mbuf, mbuf->mb_count) = uint; Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.6 ircd-ircdev/ircd/gline.c:1.7 --- ircd-ircdev/ircd/gline.c:1.6 Fri May 21 08:39:34 2004 +++ ircd-ircdev/ircd/gline.c Wed Nov 17 03:45:50 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.c,v 1.6 2004/05/21 15:39:34 zolty Exp $ + * $Id: gline.c,v 1.7 2004/11/17 11:45:50 zolty Exp $ * */ #include "config.h" @@ -448,9 +448,11 @@ /* and log it */ log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE, - "%#C adding %s %s for %s, expiring at %Tu: %s", sptr, + "%#C adding %s %s for %s%s%s, expiring at %Tu: %s", sptr, flags & GLINE_LOCAL ? "local" : "global", - flags & GLINE_BADCHAN ? "BADCHAN" : "GLINE", userhost, + flags & GLINE_BADCHAN ? "BADCHAN" : "GLINE", user, + flags & (GLINE_BADCHAN|GLINE_REALNAME) ? "" : "@", + flags & (GLINE_BADCHAN|GLINE_REALNAME) ? "" : host, expire + TSoffset, reason); /* make the gline */ @@ -666,7 +668,8 @@ Debug((DEBUG_DEBUG,"realname gline: '%s' '%s'",gline->gl_user,cli_info(cptr))); if (match(gline->gl_user+2, cli_info(cptr)) != 0) continue; - + if (!GlineIsActive(gline)) + continue; return gline; } else { @@ -683,7 +686,8 @@ continue; } } - return gline; + if (GlineIsActive(gline)) + return gline; } /* * No Glines matched Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.6 ircd-ircdev/ircd/ircd_features.c:1.7 --- ircd-ircdev/ircd/ircd_features.c:1.6 Fri May 21 08:39:34 2004 +++ ircd-ircdev/ircd/ircd_features.c Wed Nov 17 03:45:50 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.c,v 1.6 2004/05/21 15:39:34 zolty Exp $ + * $Id: ircd_features.c,v 1.7 2004/11/17 11:45:50 zolty Exp $ * */ #include "config.h" @@ -344,6 +344,7 @@ F_B(HIS_STATS_z, 0, 1, 0), F_B(HIS_WHOIS_SERVERNAME, 0, 1, 0), F_B(HIS_WHOIS_IDLETIME, 0, 1, 0), + F_B(HIS_WHOIS_LOCALCHAN, 0, 1, 0), F_B(HIS_WHO_SERVERNAME, 0, 1, 0), F_B(HIS_WHO_HOPCOUNT, 0, 1, 0), F_B(HIS_BANWHO, 0, 1, 0), Index: ircd-ircdev/ircd/ircd_relay.c diff -u ircd-ircdev/ircd/ircd_relay.c:1.4 ircd-ircdev/ircd/ircd_relay.c:1.5 --- ircd-ircdev/ircd/ircd_relay.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/ircd_relay.c Wed Nov 17 03:45:50 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_relay.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: ircd_relay.c,v 1.5 2004/11/17 11:45:50 zolty Exp $ * */ #include "config.h" @@ -109,7 +109,7 @@ assert(0 != name); assert(0 != text); - if (0 == (chptr = FindChannel(name))) { + if (*name == '&' || 0 == (chptr = FindChannel(name))) { /* * XXX - do we need to send this back from a remote server? */ @@ -135,7 +135,7 @@ assert(0 != name); assert(0 != text); - if (0 == (chptr = FindChannel(name))) + if (*name == '&' || 0 == (chptr = FindChannel(name))) return; /* * This first: Almost never a server/service Index: ircd-ircdev/ircd/listener.c diff -u ircd-ircdev/ircd/listener.c:1.3 ircd-ircdev/ircd/listener.c:1.4 --- ircd-ircdev/ircd/listener.c:1.3 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/listener.c Wed Nov 17 03:45:50 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: listener.c,v 1.3 2004/02/22 16:11:42 zolty Exp $ + * $Id: listener.c,v 1.4 2004/11/17 11:45:50 zolty Exp $ * */ #include "config.h" @@ -350,11 +350,12 @@ listener = make_listener(port, vaddr); + set_listener_mask(listener, mask); + listener->hidden = is_hidden; + listener->server = is_server; + if (inetport(listener)) { listener->active = 1; - set_listener_mask(listener, mask); - listener->hidden = is_hidden; - listener->server = is_server; listener->next = ListenerPollList; ListenerPollList = listener; } Index: ircd-ircdev/ircd/m_away.c diff -u ircd-ircdev/ircd/m_away.c:1.2 ircd-ircdev/ircd/m_away.c:1.3 --- ircd-ircdev/ircd/m_away.c:1.2 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/m_away.c Wed Nov 17 03:45:50 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: m_away.c,v 1.2 2004/02/22 16:11:42 zolty Exp $ + * $Id: m_away.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ * */ @@ -141,7 +141,7 @@ /* - * m_away - generic message handler template + * m_away - generic message handler * - Added 14 Dec 1988 by jto. * * parv[0] = sender prefix @@ -171,7 +171,7 @@ } /* - * ms_away - server message handler template + * ms_away - server message handler * - Added 14 Dec 1988 by jto. * * parv[0] = sender prefix Index: ircd-ircdev/ircd/m_kill.c diff -u ircd-ircdev/ircd/m_kill.c:1.2 ircd-ircdev/ircd/m_kill.c:1.3 --- ircd-ircdev/ircd/m_kill.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_kill.c Wed Nov 17 03:45:50 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: m_kill.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_kill.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ * */ @@ -161,7 +161,7 @@ } /* - * ms_kill - server message handler template + * ms_kill - server message handler * * NOTE: IsServer(cptr) == true; * @@ -226,7 +226,7 @@ } /* - * mo_kill - oper message handler template + * mo_kill - oper message handler * * NOTE: IsPrivileged(sptr), IsAnOper(sptr) == true * IsServer(cptr), IsServer(sptr) == false Index: ircd-ircdev/ircd/m_notice.c diff -u ircd-ircdev/ircd/m_notice.c:1.2 ircd-ircdev/ircd/m_notice.c:1.3 --- ircd-ircdev/ircd/m_notice.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_notice.c Wed Nov 17 03:45:50 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: m_notice.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_notice.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ * */ @@ -147,7 +147,7 @@ } /* - * ms_notice - server message handler template + * ms_notice - server message handler */ int ms_notice(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_ping.c diff -u ircd-ircdev/ircd/m_ping.c:1.4 ircd-ircdev/ircd/m_ping.c:1.5 --- ircd-ircdev/ircd/m_ping.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_ping.c Wed Nov 17 03:45:50 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: m_ping.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_ping.c,v 1.5 2004/11/17 11:45:50 zolty Exp $ * */ @@ -230,7 +230,7 @@ */ /* - * ms_ping - server message handler template + * ms_ping - server message handler */ int ms_ping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_pong.c diff -u ircd-ircdev/ircd/m_pong.c:1.2 ircd-ircdev/ircd/m_pong.c:1.3 --- ircd-ircdev/ircd/m_pong.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_pong.c Wed Nov 17 03:45:50 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: m_pong.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_pong.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ * */ @@ -97,7 +97,7 @@ #include <stdlib.h> /* - * ms_pong - server message handler template + * ms_pong - server message handler * * parv[0] = sender prefix * parv[1] = origin Index: ircd-ircdev/ircd/m_privmsg.c diff -u ircd-ircdev/ircd/m_privmsg.c:1.2 ircd-ircdev/ircd/m_privmsg.c:1.3 --- ircd-ircdev/ircd/m_privmsg.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_privmsg.c Wed Nov 17 03:45:50 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: m_privmsg.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_privmsg.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ */ /* @@ -143,7 +143,7 @@ } /* - * ms_privmsg - server message handler template + * ms_privmsg - server message handler */ int ms_privmsg(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_topic.c diff -u ircd-ircdev/ircd/m_topic.c:1.3 ircd-ircdev/ircd/m_topic.c:1.4 --- ircd-ircdev/ircd/m_topic.c:1.3 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_topic.c Wed Nov 17 03:45:50 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: m_topic.c,v 1.3 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_topic.c,v 1.4 2004/11/17 11:45:50 zolty Exp $ * */ @@ -108,12 +108,16 @@ from = sptr; member = find_channel_member(sptr, chptr); - /* if +n and not @'d, return an error and ignore the topic */ + /* if +t and not @'d, return an error and ignore the topic */ if ((chptr->mode.mode & MODE_TOPICLIMIT) != 0 && (!member || !IsChanOp(member))) { send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname); return; } + if (!client_can_send_to_channel(sptr, chptr, 1)) { + send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname); + return; + } if (member && IsDelayedJoin(member)) RevealDelayedJoin(member); /* Note if this is just a refresh of an old topic, and don't @@ -125,7 +129,7 @@ ircd_strncpy(chptr->topic, topic, TOPICLEN); ircd_strncpy(chptr->topic_nick, cli_name(from), NICKLEN); chptr->topic_time = ts ? ts : TStime(); - /* Fixed in 2.10.11: Don't propergate local topics */ + /* Fixed in 2.10.11: Don't propagate local topics */ if (!IsLocalChannel(chptr->chname)) sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H %Tu %Tu :%s", chptr, chptr->creationtime, chptr->topic_time, chptr->topic); @@ -192,7 +196,7 @@ } /* - * ms_topic - generic message handler + * ms_topic - server message handler * * parv[0] = sender prefix * parv[1] = channel Index: ircd-ircdev/ircd/m_version.c diff -u ircd-ircdev/ircd/m_version.c:1.2 ircd-ircdev/ircd/m_version.c:1.3 --- ircd-ircdev/ircd/m_version.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_version.c Wed Nov 17 03:45:50 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: m_version.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_version.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ */ /* @@ -119,7 +119,7 @@ } /* - * mo_version - generic message handler + * mo_version - oper message handler * * parv[0] = sender prefix * parv[1] = servername Index: ircd-ircdev/ircd/m_wallchops.c diff -u ircd-ircdev/ircd/m_wallchops.c:1.3 ircd-ircdev/ircd/m_wallchops.c:1.4 --- ircd-ircdev/ircd/m_wallchops.c:1.3 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_wallchops.c Wed Nov 17 03:45:50 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: m_wallchops.c,v 1.3 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_wallchops.c,v 1.4 2004/11/17 11:45:50 zolty Exp $ */ /* @@ -141,7 +141,7 @@ if (parc < 3 || !IsUser(sptr)) return 0; - if ((chptr = FindChannel(parv[1]))) { + if (*parv[1] != '&' && (chptr = FindChannel(parv[1]))) { if (client_can_send_to_channel(sptr, chptr, 0)) { sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr, SKIP_DEAF | SKIP_BURST | SKIP_NONOPS, Index: ircd-ircdev/ircd/m_wallvoices.c diff -u ircd-ircdev/ircd/m_wallvoices.c:1.3 ircd-ircdev/ircd/m_wallvoices.c:1.4 --- ircd-ircdev/ircd/m_wallvoices.c:1.3 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_wallvoices.c Wed Nov 17 03:45:50 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: m_wallvoices.c,v 1.3 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_wallvoices.c,v 1.4 2004/11/17 11:45:50 zolty Exp $ */ /* @@ -141,7 +141,7 @@ if (parc < 3 || !IsUser(sptr)) return 0; - if ((chptr = FindChannel(parv[1]))) { + if (*parv[1] != '&' && (chptr = FindChannel(parv[1]))) { if (client_can_send_to_channel(sptr, chptr, 0)) { sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr, SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES, Index: ircd-ircdev/ircd/m_whois.c diff -u ircd-ircdev/ircd/m_whois.c:1.7 ircd-ircdev/ircd/m_whois.c:1.8 --- ircd-ircdev/ircd/m_whois.c:1.7 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_whois.c Wed Nov 17 03:45:50 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: m_whois.c,v 1.7 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_whois.c,v 1.8 2004/11/17 11:45:50 zolty Exp $ */ /* @@ -156,6 +156,14 @@ if (acptr != sptr && IsZombie(chan)) continue; + + /* Don't show local channels when HIS is defined, unless it's a + * remote WHOIS --ULtimaTe_ + */ + if (IsLocalChannel(chptr->chname) && (parc == 2) && + feature_bool(FEAT_HIS_WHOIS_LOCALCHAN) && (acptr != sptr) && + !IsAnOper(sptr)) + continue; if (len+strlen(chptr->chname) + mlen > BUFSIZE - 5) { Index: ircd-ircdev/ircd/parse.c diff -u ircd-ircdev/ircd/parse.c:1.7 ircd-i... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-17 12:20:39
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-17 12:20:28 UTC Removed files: libs/adns/COPYING libs/adns/Makefile libs/adns/Makefile.in libs/adns/README libs/adns/README.html libs/adns/README.ircu libs/adns/aclocal.m4 libs/adns/configure libs/adns/configure.in libs/adns/settings.make.in libs/adns/src/Makefile.in libs/adns/src/adns.h libs/adns/src/adns.make libs/adns/src/check.c libs/adns/src/config.h libs/adns/src/config.h.in libs/adns/src/dlist.h libs/adns/src/event.c libs/adns/src/general.c libs/adns/src/internal.h libs/adns/src/parse.c libs/adns/src/poll.c libs/adns/src/query.c libs/adns/src/reply.c libs/adns/src/setup.c libs/adns/src/transmit.c libs/adns/src/tvarith.h libs/adns/src/types.c Log message: Author: zoltan <zo...@ir...> Log message: Borrando libreria ADNS porque no se va a utilizar ---------------------- diff included ---------------------- Index: ircd-ircdev/libs/adns/COPYING diff -u ircd-ircdev/libs/adns/COPYING:1.1 ircd-ircdev/libs/adns/COPYING:removed --- ircd-ircdev/libs/adns/COPYING:1.1 Sat Nov 1 09:28:12 2003 +++ ircd-ircdev/libs/adns/COPYING Wed Nov 17 04:20:28 2004 @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. Index: ircd-ircdev/libs/adns/Makefile diff -u ircd-ircdev/libs/adns/Makefile:1.1 ircd-ircdev/libs/adns/Makefile:removed --- ircd-ircdev/libs/adns/Makefile:1.1 Sat Nov 1 09:28:12 2003 +++ ircd-ircdev/libs/adns/Makefile Wed Nov 17 04:20:28 2004 @@ -1,69 +0,0 @@ -# Generated automatically from Makefile.in by configure. -# Makefile - top-level Makefile -# -# This file is -# Copyright (C) 1997-2000 Ian Jackson <ia...@da...> -# -# It is part of adns, which is -# Copyright (C) 1997-2000 Ian Jackson <ia...@da...> -# Copyright (C) 1999-2000 Tony Finch <do...@do...> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Remember to change ADNS_VERSION_STRING in client/client.h too, and -# possibly library soname (MAJOR and MINOR in settings.make.in). -DISTVERSION= 1.0 - -srcdir= . - -SUBDIRS= src - -build: all - -all install uninstall clean distclean mostlyclean maintainer-clean distprep: - set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done - $(MAKE) $@-here - -all-here install-here uninstall-here distprep-here: README - -clean-here mostlyclean-here: - rm -f *~ ./#*# core *.orig *.rej adns-*.tar.gz - rm -rf dist_tmp - -distclean-here maintainer-clean-here: clean-here - rm -f settings.make config.h config.cache config.log config.status - -install-strip: - $(MAKE) INSTALL_PROGRAM_FLAGS=-s - -dist_tmp=dist_tmp/adns-$(DISTVERSION) -dist: distprep - rm -rf dist_tmp* - mkdir dist_tmp $(dist_tmp) - find \( -name CVS -o -name dist_tmp* \) -prune -o -type d -print | \ - sed -e 's#.*#mkdir -p $(dist_tmp)/&#' | sh - find \( -name CVS -o -name dist_tmp* \) -prune -o -type f -print | \ - sed -e 's#.*#ln & $(dist_tmp)/&#' | sh - $(MAKE) -C dist_tmp/adns-$(DISTVERSION) distclean - cd dist_tmp && tar cf ../$(dist_tmp).tar `basename $(dist_tmp)` - gzip -9 $(dist_tmp).tar - mv $(dist_tmp).tar.gz . - -README: README.html - lynx -dump -number_links -cfg=/dev/null $(srcdir)/README.html >README.tmp - mv -f README.tmp README - -TAGS info dvi: - # do nothing Index: ircd-ircdev/libs/adns/Makefile.in diff -u ircd-ircdev/libs/adns/Makefile.in:1.1 ircd-ircdev/libs/adns/Makefile.in:removed --- ircd-ircdev/libs/adns/Makefile.in:1.1 Sat Nov 1 09:28:12 2003 +++ ircd-ircdev/libs/adns/Makefile.in Wed Nov 17 04:20:28 2004 @@ -1,69 +0,0 @@ -# Makefile - top-level Makefile -# -# This file is -# Copyright (C) 1997-2000 Ian Jackson <ia...@da...> -# -# It is part of adns, which is -# Copyright (C) 1997-2000 Ian Jackson <ia...@da...> -# Copyright (C) 1999-2000 Tony Finch <do...@do...> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Remember to change ADNS_VERSION_STRING in client/client.h too, and -# possibly library soname (MAJOR and MINOR in settings.make.in). -DISTVERSION= 1.0 - -srcdir= @srcdir@ -VPATH= @srcdir@ - -SUBDIRS= src - -build: all - -all install uninstall clean distclean mostlyclean maintainer-clean distprep: - set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done - $(MAKE) $@-here - -all-here install-here uninstall-here distprep-here: README - -clean-here mostlyclean-here: - rm -f *~ ./#*# core *.orig *.rej adns-*.tar.gz - rm -rf dist_tmp - -distclean-here maintainer-clean-here: clean-here - rm -f settings.make config.h config.cache config.log config.status - -install-strip: - $(MAKE) INSTALL_PROGRAM_FLAGS=-s - -dist_tmp=dist_tmp/adns-$(DISTVERSION) -dist: distprep - rm -rf dist_tmp* - mkdir dist_tmp $(dist_tmp) - find \( -name CVS -o -name dist_tmp* \) -prune -o -type d -print | \ - sed -e 's#.*#mkdir -p $(dist_tmp)/&#' | sh - find \( -name CVS -o -name dist_tmp* \) -prune -o -type f -print | \ - sed -e 's#.*#ln & $(dist_tmp)/&#' | sh - $(MAKE) -C dist_tmp/adns-$(DISTVERSION) distclean - cd dist_tmp && tar cf ../$(dist_tmp).tar `basename $(dist_tmp)` - gzip -9 $(dist_tmp).tar - mv $(dist_tmp).tar.gz . - -README: README.html - lynx -dump -number_links -cfg=/dev/null $(srcdir)/README.html >README.tmp - mv -f README.tmp README - -TAGS info dvi: - # do nothing Index: ircd-ircdev/libs/adns/README diff -u ircd-ircdev/libs/adns/README:1.2 ircd-ircdev/libs/adns/README:removed --- ircd-ircdev/libs/adns/README:1.2 Sat Nov 1 16:47:33 2003 +++ ircd-ircdev/libs/adns/README Wed Nov 17 04:20:29 2004 @@ -1,167 +0,0 @@ - - GNU adns - - Advanced, easy to use, asynchronous-capable DNS client library and - utilities. - - adns is a resolver library for C (and C++) programs, and a collection - of useful DNS resolver utilities. - -C library - - In contrast with the standard interfaces, gethostbyname et al and - libresolv, it has the following features: - * It is reasonably easy to use for simple programs which just want - to translate names to addresses, look up MX records, etc. - * It can be used in an asynchronous, non-blocking, manner. Many - queries can be handled simultaneously. - * Responses are decoded automatically into a natural representation - for a C program - there is no need to deal with DNS packet - formats. - * Sanity checking (eg, name syntax checking, reverse/forward - correspondence, CNAME pointing to CNAME) is performed - automatically. - * Time-to-live, CNAME and other similar information is returned in - an easy-to-use form, without getting in the way. - * There is no global state in the library; resolver state is an - opaque data structure which the client creates explicitly. A - program can have several instances of the resolver. - * Errors are reported to the application in a way that distinguishes - the various causes of failure properly. - * Understands conventional resolv.conf, but this can overridden by - environment variables. - * Flexibility. For example, the application can tell adns to: ignore - environment variables (for setuid programs), disable hostname - syntax sanity checks to return arbitrary data, override or ignore - resolv.conf in favour of supplied configuration, etc. - * Believed to be correct ! For example, will correctly back off to - TCP in case of long replies or queries, or to other nameservers if - several are available. It has sensible handling of bad responses - etc. - -DNS utility programs - - adns also comes with a number of utility programs for use from the - command line and in scripts: - * adnslogres is a much faster version of Apache's logresolv program. - * adnsresfilter is a filter which copies its input to its output, - replacing IP addresses by the corresponding names, without unduly - delaying the output. For example, you can usefully pipe the output - of netstat -n, tcpdump -ln, and the like, into it. - * adnshost is a general-purpose DNS lookup utility which can be used - easily in from the command line and from shell scripts to do - simple lookups. In a more advanced mode it can be used as a - general-purpose DNS helper program for scripting languages which - can invoke and communicate with subprocesses. See the [1]adnshost - usage message for a summary of its capabilities. - -Documentation - - I'm afraid there is no manual yet. However, competent C programmers - should be able to use the library based on the [2]commented adns.h - header file, and the usage messages for the programs should be - sufficient. - -Feedback - - I'd be pleased if you would let me know if you're using my library in - your project, and what you think of it. - - If you are subscribed to adns-discuss please send feedback, including - bug reports, there; otherwise send mail to - adn...@ch.... If you'd prefer that your - message wasn't forwarded to the adns-bugreports list, send it to - adn...@ch.... - -Mailinglists - - I have set up mailinglists adns-announce and adns-discuss. The - announcements list is moderated and will contain only announcements of - important bugs, new versions, etc. The bug reports address mentioned - above is also a mailing list; feel free to subscribe to it. - - There are [3]archives and subscription web pages, or you can subscribe - by sending mail containing the word `subscribe' to - adn...@ch... or - adn...@ch.... - -Download - - Available for download from [4]chiark.greenend.org.uk are: - * The [5]current release as a gzipped tarfile. - * [6]adns.h API header file with comments, and [7]usage message for - adnshost (currently there is no manual, sorry). - * All versions released so far are also available via [8]anonymous - FTP and [9]HTTP, - * A mirror of my CVS repository is available via rsync from - rsync.chiark.greenend.org.uk::ftp/users/ian/cvs-pub/adns (use FTP - first to find your way around), or via [10]cvsweb. - - adns is also available from the [11]GNU Project FTP servers and their - [12]mirrors. - -Technical note - - adns requires a real nameserver like [13]BIND or [14]Dents running on - the same system or a nearby one, which must be willing to provide - `recursive service'. I.e., adns is a `stub resolver'. All properly - configured UN*X and GNU systems will already have such nameserver(s); - they are usually listed in /etc/resolv.conf. - -Copyright and licensing - - ... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-17 12:23:24
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-17 12:23:14 UTC Removed files: libs/adns/src/.cvsignore Log message: Author: zoltan <zo...@ir...> Log message: Borrando libreria ADNS porque no se va a utilizar ---------------------- diff included ---------------------- Index: ircd-ircdev/libs/adns/src/.cvsignore diff -u ircd-ircdev/libs/adns/src/.cvsignore:1.1 ircd-ircdev/libs/adns/src/.cvsignore:removed --- ircd-ircdev/libs/adns/src/.cvsignore:1.1 Sat Nov 1 09:28:12 2003 +++ ircd-ircdev/libs/adns/src/.cvsignore Wed Nov 17 04:23:17 2004 @@ -1 +0,0 @@ -Makefile ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-11-17 12:25:21
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-17 12:25:12 UTC Removed files: libs/adns/.cvsignore Log message: Author: zoltan <zo...@ir...> Log message: Borrando libreria ADNS porque no se va a utilizar ---------------------- diff included ---------------------- Index: ircd-ircdev/libs/adns/.cvsignore diff -u ircd-ircdev/libs/adns/.cvsignore:1.1 ircd-ircdev/libs/adns/.cvsignore:removed --- ircd-ircdev/libs/adns/.cvsignore:1.1 Sat Nov 1 09:28:12 2003 +++ ircd-ircdev/libs/adns/.cvsignore Wed Nov 17 04:25:12 2004 @@ -1,3 +0,0 @@ -config.log -config.status -settings.make ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-11-24 16:01:53
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:00:55 UTC Modified files: include/IPcheck.h include/channel.h include/class.h include/client.h include/crule.h include/dbuf.h include/destruct_event.h include/fileio.h include/gline.h include/handlers.h include/hash.h include/ircd.h include/ircd_alloc.h include/ircd_chattr.h include/ircd_defs.h include/ircd_events.h include/ircd_features.h include/ircd_handler.h include/ircd_log.h include/ircd_osdep.h include/ircd_relay.h include/ircd_reply.h include/ircd_signal.h include/ircd_snprintf.h include/ircd_string.h include/ircd_tea.h include/jupe.h include/list.h include/listener.h include/match.h include/motd.h include/msg.h include/msgq.h include/numeric.h include/numnicks.h include/opercmds.h include/packet.h include/parse.h include/patchlevel.h include/querycmds.h include/random.h include/res.h include/s_auth.h include/s_bsd.h include/s_conf.h include/s_debug.h include/s_misc.h include/s_numeric.h include/s_serv.h include/s_stats.h include/s_user.h include/send.h include/struct.h include/supported.h include/uping.h include/userload.h include/whocmds.h include/whowas.h Added files: include/.cvsignore include/ircd_auth.h include/ircd_crypt.h include/ircd_crypt_native.h include/ircd_crypt_plain.h include/ircd_crypt_smd5.h include/ircd_reslib.h include/memdebug.h include/umkpasswd.h Removed files: include/fda.h include/iauth.h include/ircd_xopen.h include/support.h Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/include/.cvsignore diff -u /dev/null ircd-ircdev/include/.cvsignore:1.1 --- /dev/null Wed Nov 24 08:00:55 2004 +++ ircd-ircdev/include/.cvsignore Wed Nov 24 08:00:42 2004 @@ -0,0 +1 @@ +patchlist.h Index: ircd-ircdev/include/IPcheck.h diff -u ircd-ircdev/include/IPcheck.h:1.2 ircd-ircdev/include/IPcheck.h:1.3 --- ircd-ircdev/include/IPcheck.h:1.2 Sun Feb 22 08:13:20 2004 +++ ircd-ircdev/include/IPcheck.h Wed Nov 24 08:00:43 2004 @@ -18,8 +18,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: IPcheck.h,v 1.2 2004/02/22 16:13:20 zolty Exp $ - * + */ +/** @file + * @brief Interface to count users connected from particular IP addresses. + * @version $Id: IPcheck.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ */ #ifndef INCLUDED_ipcheck_h #define INCLUDED_ipcheck_h @@ -28,19 +30,16 @@ #include <sys/types.h> /* time_t, size_t */ #define INCLUDED_sys_types_h #endif -#ifndef INCLUDED_netinet_in_h -#include <netinet/in.h> /* in_addr */ -#define INCLUDED_netinet_in_h -#endif struct Client; +struct irc_in_addr; /* * Prototypes */ extern void IPcheck_init(void); -extern int IPcheck_local_connect(struct in_addr ip, time_t* next_target_out); -extern void IPcheck_connect_fail(struct in_addr ip); +extern int IPcheck_local_connect(const struct irc_in_addr *ip, time_t *next_target_out); +extern void IPcheck_connect_fail(const struct irc_in_addr *ip); extern void IPcheck_connect_succeeded(struct Client *cptr); extern int IPcheck_remote_connect(struct Client *cptr, int is_burst); extern void IPcheck_disconnect(struct Client *cptr); Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.5 ircd-ircdev/include/channel.h:1.6 --- ircd-ircdev/include/channel.h:1.5 Fri May 21 08:39:33 2004 +++ ircd-ircdev/include/channel.h Wed Nov 24 08:00:43 2004 @@ -19,8 +19,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: channel.h,v 1.5 2004/05/21 15:39:33 zolty Exp $ - * + */ +/** @file + * @brief Channel management and maintenance. + * @version $Id: channel.h,v 1.6 2004/11/24 16:00:43 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -32,6 +34,9 @@ #include <sys/types.h> #define INCLUDED_sys_types_h #endif +#ifndef INCLUDED_res_h +#include "res.h" +#endif struct SLink; struct Client; @@ -40,17 +45,17 @@ * General defines */ -#define MAXMODEPARAMS 6 -#define MODEBUFLEN 200 +#define MAXMODEPARAMS 6 /**< Maximum number of mode parameters */ +#define MODEBUFLEN 200 /**< Maximum length of a mode */ -#define KEYLEN 23 +#define KEYLEN 23 /**< Maximum length of a key */ #if defined(UNDERNET) -#define PASSLEN 23 +#define PASSLEN 23 /**< Maximum length of a password */ #endif -#define CHANNELLEN 200 +#define CHANNELLEN 200 /**< Maximum length of a channel */ -#define MAXJOINARGS 15 /* number of slots for join buffer */ -#define STARTJOINLEN 10 /* fuzzy numbers */ +#define MAXJOINARGS 15 /**< number of slots for join buffer */ +#define STARTJOINLEN 10 /**< fuzzy numbers */ #define STARTCREATELEN 20 /* @@ -59,27 +64,32 @@ #define ChannelExists(n) (0 != FindChannel(n)) -#define CHFL_CHANOP 0x0001 /* Channel operator */ -#define CHFL_VOICE 0x0002 /* the power to speak */ -#define CHFL_DEOPPED 0x0004 /* Is de-opped by a server */ -#define CHFL_SERVOPOK 0x0008 /* Server op allowed */ -#define CHFL_ZOMBIE 0x0010 /* Kicked from channel */ -#define CHFL_BAN 0x0020 /* ban channel flag */ -#define CHFL_BAN_IPMASK 0x0040 /* ban mask is an IP-number mask */ -#define CHFL_BAN_OVERLAPPED 0x0080 /* ban overlapped, need bounce */ -#define CHFL_BURST_JOINED 0x0100 /* Just joined by net.junction */ -#define CHFL_BURST_BAN 0x0200 /* Ban part of last BURST */ -#define CHFL_BURST_BAN_WIPEOUT 0x0400 /* Ban will be wiped at end of BURST */ -#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_CHANOP 0x0001 /**< Channel operator */ +#define CHFL_VOICE 0x0002 /**< the power to speak */ +#define CHFL_DEOPPED 0x0004 /**< Is de-opped by a server */ +#define CHFL_SERVOPOK 0x0008 /**< Server op allowed */ +#define CHFL_ZOMBIE 0x0010 /**< Kicked from channel */ +#define CHFL_BURST_JOINED 0x0100 /**< Just joined by net.junction */ +#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 a CIDR */ #if defined(UNDERNET) -#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_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) @@ -87,54 +97,60 @@ /* Channel Visibility macros */ -#define MODE_CHANOP CHFL_CHANOP -#define MODE_VOICE CHFL_VOICE -#define MODE_PRIVATE 0x0004 -#define MODE_SECRET 0x0008 -#define MODE_MODERATED 0x0010 -#define MODE_TOPICLIMIT 0x0020 -#define MODE_INVITEONLY 0x0040 -#define MODE_NOPRIVMSGS 0x0080 -#define MODE_KEY 0x0100 -#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 */ +#define MODE_CHANOP CHFL_CHANOP /**< +o Chanop */ +#define MODE_VOICE CHFL_VOICE /**< +v Voice */ +#define MODE_PRIVATE 0x0004 /**< +p Private */ +#define MODE_SECRET 0x0008 /**< +s Secret */ +#define MODE_MODERATED 0x0010 /**< +m Moderated */ +#define MODE_TOPICLIMIT 0x0020 /**< +t Topic Limited */ +#define MODE_INVITEONLY 0x0040 /**< +i Invite only */ +#define MODE_NOPRIVMSGS 0x0080 /**< +n No Private Messages */ +#define MODE_KEY 0x0100 /**< +k Keyed */ +#define MODE_BAN 0x0200 /**< +b Ban */ +#define MODE_LIMIT 0x0400 /**< +l Limit */ +#define MODE_REGONLY 0x0800 /**< Only +r users may join */ +#define MODE_DELJOINS 0x1000 /**< New join messages are delayed */ +#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 #endif -#define MODE_WASDELJOINS 0x400000 /* Not DELJOINS, but some joins pending */ -/* - * mode flags which take another parameter (With PARAmeterS) - */ +#define MODE_WASDELJOINS 0x400000 /**< Not DELJOINS, but some joins + * pending */ #if defined(UNDERNET) +/** mode flags which take another parameter (With PARAmeterS) + */ #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" +/** Available Channel modes */ +#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrD" : "biklmnopstvrD" +/** Available Channel modes that take parameters */ +#define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" : "bklov" #else +/** mode flags which take another parameter (With PARAmeterS) + */ #define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT) +/** Available Channel modes */ #define infochanmodes "biklmnopstvrD" +/** Available Channel modes that take parameters */ #define infochanmodeswithparams "bklov" #endif #define HoldChannel(x) (!(x)) -/* name invisible */ +/** name invisible */ #define SecretChannel(x) ((x) && ((x)->mode.mode & MODE_SECRET)) -/* channel not shown but names are */ +/** channel not shown but names are */ #define HiddenChannel(x) ((x) && ((x)->mode.mode & MODE_PRIVATE)) -/* channel visible */ +/** channel visible */ #define ShowChannel(v,c) (PubChannel(c) || find_channel_member((v),(c)) || \ (IsAnOper(v) && HasPriv(v, PRIV_LIST_CHAN))) #define PubChannel(x) ((!x) || ((x)->mode.mode & \ (MODE_PRIVATE | MODE_SECRET)) == 0) -#define is_listed(x) ((x)->mode.mode & MODE_LISTED) #define IsGlobalChannel(name) (*(name) == '#') #define IsLocalChannel(name) (*(name) == '&') @@ -156,7 +172,7 @@ #define LISTARG_TOPICLIMITS 0x0001 #define LISTARG_SHOWSECRET 0x0002 -/* +/** * Maximum acceptable lag time in seconds: A channel younger than * this is not protected against hacking admins. * Mainly here to check if the TS clocks really sync (otherwise this @@ -169,14 +185,16 @@ */ #define TS_LAG_TIME 86400 -/* +/** * A Magic TS that is used for channels that are created by JOIN, * a channel with this TS accepts all TS without complaining that * it might receive later via MODE or CREATE. + * + * Part of the P9 compatibility, shouldn't occur on a P10 network. */ #define MAGIC_REMOTE_JOIN_TS 1270080000 -/* +/** * used in can_join to determine if an oper forced a join on a channel */ #define MAGIC_OPER_OVERRIDE 1000 @@ -192,16 +210,24 @@ * Structures */ +/** Information about a client on one channel + * + * This structure forms a sparse matrix with users down the side, and + * channels across the top. This matrix holds all the information about + * which users are on what channels, and what modes that user has on that + * channel (if they are op'd, voice'd and cached information if they are + * banned or not) + */ struct Membership { - struct Client* user; - struct Channel* channel; - struct Membership* next_member; - struct Membership* prev_member; - struct Membership* next_channel; - struct Membership* prev_channel; - unsigned int status; + struct Client* user; /**< The user */ + struct Channel* channel; /**< The channel */ + struct Membership* next_member; /**< The next user on this channel */ + struct Membership* prev_member; /**< The previous user on this channel*/ + struct Membership* next_channel; /**< Next channel this user is on */ + struct Membership* prev_channel; /**< Previous channel this user is on*/ + unsigned int status; /**< Flags for op'd, voice'd, etc */ #if defined(UNDERNET) - unsigned short oplevel; + unsigned short oplevel; /**< Op level */ #endif }; @@ -210,7 +236,7 @@ #define MAXOPLEVEL 999 #endif -#define IsZombie(x) ((x)->status & CHFL_ZOMBIE) +#define IsZombie(x) ((x)->status & CHFL_ZOMBIE) /**< see \ref zombie */ #define IsDeopped(x) ((x)->status & CHFL_DEOPPED) #define IsBanned(x) ((x)->status & CHFL_BANNED) #define IsBanValid(x) ((x)->status & CHFL_BANVALID) @@ -248,7 +274,7 @@ #define ClearBurstJoined(x) ((x)->status &= ~CHFL_BURST_JOINED) #define ClearDelayedJoin(x) ((x)->status &= ~CHFL_DELAYED) - +/** Mode information for a channel */ struct Mode { unsigned int mode; unsigned int limit; @@ -259,23 +285,49 @@ #endif }; +#define BAN_IPMASK 0x0001 /**< ban mask is an IP-number mask */ +#define BAN_OVERLAPPED 0x0002 /**< ban overlapped, need bounce */ +#define BAN_BURSTED 0x0004 /**< Ban part of last BURST */ +#define BAN_BURST_WIPEOUT 0x0008 /**< Ban will be wiped at EOB */ +#define BAN_EXCEPTION 0x0010 /**< Ban is an exception */ +#define BAN_DEL 0x4000 /**< Ban is being removed */ +#define BAN_ADD 0x8000 /**< Ban is being added */ + +/** A single ban for a channel. */ +struct Ban { + struct Ban* next; /**< next ban in the channel */ + struct irc_in_addr address; /**< addres for BAN_IPMASK bans */ + time_t when; /**< timestamp when ban was added */ + unsigned short flags; /**< modifier flags for the ban */ + unsigned char nu_len; /**< length of nick!user part of banstr */ + unsigned char addrbits; /**< netmask length for BAN_IPMASK bans */ + char *who; /**< name of client that set the ban */ + char *banstr; /**< hostmask that the ban matches */ +}; + +/** Information about a channel */ struct Channel { - struct Channel* next; - struct Channel* prev; - struct Channel* hnext; - struct DestructEvent* destruct_event; - time_t creationtime; - time_t topic_time; - unsigned int users; - struct Membership* members; - struct SLink* invites; - struct SLink* banlist; - struct Mode mode; - char topic[TOPICLEN + 1]; - char topic_nick[NICKLEN + 1]; - char chname[1]; + struct Channel* next; /**< next channel in the global channel list */ + struct Channel* prev; /**< previous channel */ + struct Channel* hnext; /**< Next channel in the hash table */ + struct DestructEvent* destruct_event; + time_t creationtime; /**< Creation time of this channel */ + time_t topic_time; /**< Modification time of the topic */ + unsigned int users; /**< Number of clients on this channel */ + struct Membership* members; /**< Pointer to the clients on this channel*/ + struct SLink* invites; /**< List of invites on this channel */ + struct Ban* banlist; /**< List of bans on this channel */ + struct Mode mode; /**< This channels mode */ + char topic[TOPICLEN + 1]; /**< Channels topic */ + char topic_nick[NICKLEN + 1]; /**< Nick of the person who set + * The topic + */ + char chname[1]; /**< Dynamically allocated string of the + * channel name + */ }; +/** Information about a /list in progress */ struct ListingArgs { time_t max_time; time_t min_time; @@ -284,63 +336,64 @@ unsigned int flags; time_t max_topic_time; time_t min_topic_time; - struct Channel *chptr; + unsigned int bucket; }; struct ModeBuf { - unsigned int mb_add; /* Modes to add */ - unsigned int mb_rem; /* Modes to remove */ - struct Client *mb_source; /* Source of MODE changes */ - struct Client *mb_connect; /* Connection of MODE changes */ - struct Channel *mb_channel; /* Channel they affect */ - unsigned int mb_dest; /* Destination of MODE changes */ - unsigned int mb_count; /* Number of modes w/args */ + unsigned int mb_add; /**< Modes to add */ + unsigned int mb_rem; /**< Modes to remove */ + struct Client *mb_source; /**< Source of MODE changes */ + struct Client *mb_connect; /**< Connection of MODE changes */ + struct Channel *mb_channel; /**< Channel they affect */ + unsigned int mb_dest; /**< Destination of MODE changes */ + unsigned int mb_count; /**< Number of modes w/args */ struct { - unsigned int mbm_type; /* Type of argument */ + unsigned int mbm_type; /**< Type of argument */ union { - unsigned int mbma_uint; /* A limit */ - char *mbma_string; /* A string */ - struct Client *mbma_client; /* A client */ - } mbm_arg; /* The mode argument */ + unsigned int mbma_uint; /**< A limit */ + char *mbma_string; /**< A string */ + struct Client *mbma_client; /**< A client */ + } mbm_arg; /**< The mode argument */ } mb_modeargs[MAXMODEPARAMS]; - /* A mode w/args */ + /**< A mode w/args */ }; -#define MODEBUF_DEST_CHANNEL 0x00001 /* Mode is flushed to channel */ -#define MODEBUF_DEST_SERVER 0x00002 /* Mode is flushed to server */ +#define MODEBUF_DEST_CHANNEL 0x00001 /**< Mode is flushed to channel */ +#define MODEBUF_DEST_SERVER 0x00002 /**< Mode is flushed to server */ -#define MODEBUF_DEST_OPMODE 0x00100 /* Send server mode as OPMODE */ -#define MODEBUF_DEST_DEOP 0x00200 /* Deop the offender */ -#define MODEBUF_DEST_BOUNCE 0x00400 /* Bounce the modes */ -#define MODEBUF_DEST_LOG 0x00800 /* Log the mode changes to OPATH */ - -#define MODEBUF_DEST_HACK2 0x02000 /* Send a HACK(2) notice, reverse */ -#define MODEBUF_DEST_HACK3 0x04000 /* Send a HACK(3) notice, TS == 0 */ -#define MODEBUF_DEST_HACK4 0x08000 /* Send a HACK(4) notice, TS == 0 */ +#define MODEBUF_DEST_OPMODE 0x00100 /**< Send server mode as OPMODE */ +#define MODEBUF_DEST_DEOP 0x00200 /**< Deop the offender */ +#define MODEBUF_DEST_BOUNCE 0x00400 /**< Bounce the modes */ +#define MODEBUF_DEST_LOG 0x00800 /**< Log the mode changes to OPATH */ + +#define MODEBUF_DEST_HACK2 0x02000 /**< Send a HACK(2) notice, reverse */ +#define MODEBUF_DEST_HACK3 0x04000 /**< Send a HACK(3) notice, TS == 0 */ +#define MODEBUF_DEST_HACK4 0x08000 /**< Send a HACK(4) notice, TS == 0 */ -#define MODEBUF_DEST_NOKEY 0x10000 /* Don't send the real key */ +#define MODEBUF_DEST_NOKEY 0x10000 /**< Don't send the real key */ #define MB_TYPE(mb, i) ((mb)->mb_modeargs[(i)].mbm_type) #define MB_UINT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_uint) #define MB_STRING(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_string) #define MB_CLIENT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_client) +/** A buffer represeting a list of joins to send */ struct JoinBuf { - struct Client *jb_source; /* Source of joins (ie, joiner) */ - struct Client *jb_connect; /* Connection of joiner */ - unsigned int jb_type; /* Type of join (JOIN or CREATE) */ - char *jb_comment; /* part comment */ - time_t jb_create; /* Creation timestamp */ - unsigned int jb_count; /* Number of channels */ - unsigned int jb_strlen; /* length so far */ + struct Client *jb_source; /**< Source of joins (ie, joiner) */ + struct Client *jb_connect; /**< Connection of joiner */ + unsigned int jb_type; /**< Type of join (JOIN or CREATE) */ + char *jb_comment; /**< part comment */ + time_t jb_create; /**< Creation timestamp */ + unsigned int jb_count; /**< Number of channels */ + unsigned int jb_strlen; /**< length so far */ struct Channel *jb_channels[MAXJOINARGS]; - /* channels joined or whatever */ + /**< channels joined or whatever */ }; -#define JOINBUF_TYPE_JOIN 0 /* send JOINs */ -#define JOINBUF_TYPE_CREATE 1 /* send CREATEs */ -#define JOINBUF_TYPE_PART 2 /* send PARTs */ -#define JOINBUF_TYPE_PARTALL 3 /* send local PARTs, but not remote */ +#define JOINBUF_TYPE_JOIN 0 /**< send JOINs */ +#define JOINBUF_TYPE_CREATE 1 /**< send CREATEs */ +#define JOINBUF_TYPE_PART 2 /**< send PARTs */ +#define JOINBUF_TYPE_PARTALL 3 /**< send local PARTs, but not remote */ extern struct Channel* GlobalChannelList; extern int LocalChanOperMode; @@ -350,7 +403,8 @@ */ extern void clean_channelname(char* name); extern void channel_modes(struct Client *cptr, char *mbuf, char *pbuf, - int buflen, struct Channel *chptr, struct Membership *member); + int buflen, struct Channel *chptr, + struct Membership *member); extern int set_mode(struct Client* cptr, struct Client* sptr, struct Channel* chptr, int parc, char* parv[], char* mbuf, char* pbuf, char* npbuf, int* badop); @@ -365,15 +419,6 @@ extern int can_join(struct Client *sptr, struct Channel *chptr, char *key); extern void add_user_to_channel(struct Channel* chptr, struct Client* who, unsigned int flags, int oplevel); -extern void cancel_mode(struct Client *sptr, struct Channel *chptr, char m, - const char *param, int *count); -extern void add_token_to_sendbuf(char *token, size_t *sblenp, int *firstp, - int *send_itp, char is_a_ban, int mode); -extern int add_banid(struct Client *cptr, struct Channel *chptr, char *banid, - int change, int firsttime); -extern struct SLink *next_removed_overlapped_ban(void); -extern void cancel_mode(struct Client *sptr, struct Channel *chptr, char m, - const char *param, int *count); extern void make_zombie(struct Membership* member, struct Client* who, struct Client* cptr, struct Client* sptr, struct Channel* chptr); @@ -382,7 +427,6 @@ int number_of_zombies(struct Channel *chptr); 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, int reveal); extern int client_can_send_to_channel(struct Client *cptr, struct Channel *chptr, int reveal); @@ -402,7 +446,6 @@ extern void send_channel_modes(struct Client *cptr, struct Channel *chptr); extern char *pretty_mask(char *mask); extern void del_invite(struct Client *cptr, struct Channel *chptr); -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); @@ -429,14 +472,14 @@ int parc, char *parv[], unsigned int flags, struct Membership* member); -#define MODE_PARSE_SET 0x01 /* actually set channel modes */ -#define MODE_PARSE_STRICT 0x02 /* +m +n +t style not supported */ -#define MODE_PARSE_FORCE 0x04 /* force the mode to be applied */ -#define MODE_PARSE_BOUNCE 0x08 /* we will be bouncing the modes */ -#define MODE_PARSE_NOTOPER 0x10 /* send "not chanop" to user */ -#define MODE_PARSE_NOTMEMBER 0x20 /* send "not member" to user */ -#define MODE_PARSE_WIPEOUT 0x40 /* wipe out +k and +l during burst */ -#define MODE_PARSE_BURST 0x80 /* be even more strict w/extra args */ +#define MODE_PARSE_SET 0x01 /**< actually set channel modes */ +#define MODE_PARSE_STRICT 0x02 /**< +m +n +t style not supported */ +#define MODE_PARSE_FORCE 0x04 /**< force the mode to be applied */ +#define MODE_PARSE_BOUNCE 0x08 /**< we will be bouncing the modes */ +#define MODE_PARSE_NOTOPER 0x10 /**< send "not chanop" to user */ +#define MODE_PARSE_NOTMEMBER 0x20 /**< send "not member" to user */ +#define MODE_PARSE_WIPEOUT 0x40 /**< wipe out +k and +l during burst */ +#define MODE_PARSE_BURST 0x80 /**< be even more strict w/extra args */ extern void joinbuf_init(struct JoinBuf *jbuf, struct Client *source, struct Client *connect, unsigned int type, @@ -444,5 +487,9 @@ extern void joinbuf_join(struct JoinBuf *jbuf, struct Channel *chan, unsigned int flags); extern int joinbuf_flush(struct JoinBuf *jbuf); +extern struct Ban *make_ban(const char *banstr); +extern struct Ban *find_ban(struct Client *cptr, struct Ban *banlist); +extern int apply_ban(struct Ban **banlist, struct Ban *newban); +extern void free_ban(struct Ban *ban); #endif /* INCLUDED_channel_h */ Index: ircd-ircdev/include/class.h diff -u ircd-ircdev/include/class.h:1.4 ircd-ircdev/include/class.h:1.5 --- ircd-ircdev/include/class.h:1.4 Fri May 21 08:39:34 2004 +++ ircd-ircdev/include/class.h Wed Nov 24 08:00:43 2004 @@ -19,8 +19,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: class.h,v 1.4 2004/05/21 15:39:34 zolty Exp $ - * + */ +/** @file + * @brief Declarations and interfaces for handling connection classes. + * @version $Id: class.h,v 1.5 2004/11/24 16:00:43 zolty Exp $ */ #ifndef INCLUDED_class_h #define INCLUDED_class_h @@ -37,37 +39,55 @@ /* * Structures */ +/** Represents a connection class. */ 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; - short max_links; - unsigned char valid; - int ref_count; + struct ConnectionClass* next; /**< Link to next connection class. */ + char *cc_name; /**< Name of connection class. */ + char *default_umode; /**< Default usermode for users + in this class. */ + struct Privs privs; /**< Privilege bits that are set on + or off. */ + struct Privs privs_dirty; /**< Indication of which bits in + ConnectionClass::privs are valid. */ + unsigned int max_sendq; /**< Maximum client SendQ in bytes. */ + unsigned int max_links; /**< Maximum connections allowed. */ + unsigned int ref_count; /**< Number of references to class. */ + unsigned short ping_freq; /**< Ping frequency for clients. */ + unsigned short conn_freq; /**< Auto-connect frequency. */ + unsigned char valid; /**< Valid flag (cleared after this + class is removed from the config).*/ }; /* * Macro's */ +/** Get class name for \a x. */ #define ConClass(x) ((x)->cc_name) +/** Get ping frequency for \a x. */ #define PingFreq(x) ((x)->ping_freq) +/** Get connection frequency for \a x. */ #define ConFreq(x) ((x)->conn_freq) +/** Get maximum links allowed for \a x. */ #define MaxLinks(x) ((x)->max_links) +/** Get maximum SendQ size for \a x. */ #define MaxSendq(x) ((x)->max_sendq) +/** Get number of references to \a x. */ #define Links(x) ((x)->ref_count) +/** Get class name for ConfItem \a x. */ #define ConfClass(x) ((x)->conn_class->cc_name) +/** Get ping frequency for ConfItem \a x. */ #define ConfPingFreq(x) ((x)->conn_class->ping_freq) +/** Get connection frequency for ConfItem \a x. */ #define ConfConFreq(x) ((x)->conn_class->conn_freq) +/** Get maximum links allowed for ConfItem \a x. */ #define ConfMaxLinks(x) ((x)->conn_class->max_links) +/** Get maximum SendQ size for ConfItem \a x. */ #define ConfSendq(x) ((x)->conn_class->max_sendq) +/** Get number of references to class in ConfItem \a x. */ #define ConfLinks(x) ((x)->conn_class->ref_count) +/** Get default usermode for ConfItem \a x. */ #define ConfUmode(x) ((x)->conn_class->default_umode) /* @@ -88,10 +108,10 @@ extern int get_conf_ping(const struct ConfItem *aconf); extern char *get_client_class(struct Client *acptr); extern void add_class(char *name, unsigned int ping, - unsigned int confreq, unsigned int maxli, unsigned int sendq); -extern void check_class(void); -extern void report_classes(struct Client *sptr, struct StatDesc *sd, int stat, - char *param); + ... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:03:03
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:02:39 UTC Modified files: ircd/m_account.c ircd/m_admin.c ircd/m_away.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_create.c ircd/m_endburst.c ircd/m_gline.c ircd/m_info.c ircd/m_invite.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_links.c ircd/m_list.c ircd/m_lusers.c ircd/m_map.c ircd/m_mode.c ircd/m_nick.c ircd/m_oper.c ircd/m_opmode.c ircd/m_pong.c ircd/m_quit.c ircd/m_server.c ircd/m_settime.c ircd/m_silence.c ircd/m_squit.c ircd/m_stats.c ircd/m_topic.c ircd/m_trace.c ircd/m_userip.c ircd/m_version.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/m_who.c ircd/m_whois.c Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/m_account.c diff -u ircd-ircdev/ircd/m_account.c:1.4 ircd-ircdev/ircd/m_account.c:1.5 --- ircd-ircdev/ircd/m_account.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_account.c Wed Nov 24 08:02:28 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: m_account.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_account.c,v 1.5 2004/11/24 16:02:28 zolty Exp $ * */ @@ -101,7 +101,6 @@ * parv[0] = sender prefix * parv[1] = numeric of client to act on * parv[2] = account name (12 characters or less) - * */ int ms_account(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) @@ -125,9 +124,11 @@ assert(0 == cli_user(acptr)->account[0]); - if (strlen(parv[2]) > ACCOUNTLEN) { - return protocol_violation(cptr, "Received account (%s) longer than %d for %s; ignoring.", parv[2], ACCOUNTLEN, cli_name(acptr)); - } + if (strlen(parv[2]) > ACCOUNTLEN) + return protocol_violation(cptr, + "Received account (%s) longer than %d for %s; " + "ignoring.", + parv[2], ACCOUNTLEN, cli_name(acptr)); if (parc > 3) { cli_user(acptr)->acc_create = atoi(parv[3]); Index: ircd-ircdev/ircd/m_admin.c diff -u ircd-ircdev/ircd/m_admin.c:1.2 ircd-ircdev/ircd/m_admin.c:1.3 --- ircd-ircdev/ircd/m_admin.c:1.2 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/m_admin.c Wed Nov 24 08:02:28 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: m_admin.c,v 1.2 2004/02/22 16:11:42 zolty Exp $ + * $Id: m_admin.c,v 1.3 2004/11/24 16:02:28 zolty Exp $ * */ @@ -111,7 +111,6 @@ * * parv[0] = sender prefix * parv[1] = servername - * */ int m_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { @@ -120,7 +119,7 @@ assert(0 != cptr); assert(cptr == sptr); - if (parc > 1 && (!(acptr = find_match_server(parv[1])) || !IsMe(acptr))) + if (parc > 1 && (!(acptr = find_match_server(parv[1])) || !IsMe(acptr))) return send_reply(sptr, ERR_NOPRIVILEGES); return send_admin_info(sptr); @@ -131,7 +130,6 @@ * * parv[0] = sender prefix * parv[1] = servername - * */ int mo_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { @@ -139,7 +137,7 @@ assert(cptr == sptr); if (hunt_server_cmd(sptr, CMD_ADMIN, cptr, feature_int(FEAT_HIS_REMOTE), - ":%C", 1, parc, parv) != HUNTED_ISME) + ":%C", 1, parc, parv) != HUNTED_ISME) return 0; return send_admin_info(sptr); } @@ -149,7 +147,6 @@ * * parv[0] = sender prefix * parv[1] = servername - * */ int ms_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_away.c diff -u ircd-ircdev/ircd/m_away.c:1.3 ircd-ircdev/ircd/m_away.c:1.4 --- ircd-ircdev/ircd/m_away.c:1.3 Wed Nov 17 03:45:50 2004 +++ ircd-ircdev/ircd/m_away.c Wed Nov 24 08:02:28 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: m_away.c,v 1.3 2004/11/17 11:45:50 zolty Exp $ + * $Id: m_away.c,v 1.4 2004/11/24 16:02:28 zolty Exp $ * */ @@ -128,9 +128,8 @@ len = AWAYLEN; } if (away) - away = (char*) MyRealloc(away, len + 1); - else - away = (char*) MyMalloc(len + 1); + MyFree(away); + away = (char*) MyMalloc(len + 1); assert(0 != away); user->away = away; @@ -158,9 +157,10 @@ assert(0 != cptr); assert(cptr == sptr); - if (user_set_away(cli_user(sptr), away_message)) { - if (!was_away) - sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ":%s", away_message); + if (user_set_away(cli_user(sptr), away_message)) + { + if (!was_away) + sendcmdto_serv_butone(sptr, CMD_AWAY, cptr, ":%s", away_message); send_reply(sptr, RPL_NOWAWAY); } else { @@ -176,7 +176,6 @@ * * parv[0] = sender prefix * parv[1] = away message - * */ int ms_away(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.4 ircd-ircdev/ircd/m_burst.c:1.5 --- ircd-ircdev/ircd/m_burst.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_burst.c Wed Nov 24 08:02:28 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: m_burst.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_burst.c,v 1.5 2004/11/24 16:02:28 zolty Exp $ * */ @@ -99,13 +99,39 @@ #include "s_misc.h" #include "send.h" #include "struct.h" -#include "support.h" #include <assert.h> #include <ctype.h> #include <stdlib.h> #include <string.h> +static int +netride_modes(int parc, char **parv, const char *curr_key) +{ + char *modes = parv[0]; + int result = 0; + + assert(modes && modes[0] == '+'); + while (*modes) { + switch (*modes++) { + case 'i': + result |= MODE_INVITEONLY; + break; + case 'k': + if (strcmp(curr_key, *++parv)) + result |= MODE_KEY; + break; + case 'l': + ++parv; + break; + case 'r': + result |= MODE_REGONLY; + break; + } + } + return result; +} + /* * ms_burst - server message handler * @@ -190,7 +216,7 @@ struct Channel *chptr; time_t timestamp; struct Membership *member, *nmember; - struct SLink *lp, **lp_p; + struct Ban *lp, **lp_p; unsigned int parse_flags = (MODE_PARSE_FORCE | MODE_PARSE_BURST); int param, nickpos = 0, banpos = 0; char modestr[BUFSIZE], nickstr[BUFSIZE], banstr[BUFSIZE]; @@ -215,17 +241,31 @@ */ for (param = 3; param < parc; param++) { + int check_modes; if (parv[param][0] != '+') continue; - if (strchr(parv[param], 'i') || strchr(parv[param], 'k')) + check_modes = netride_modes(parc - param, parv + param, chptr->mode.key); + if (check_modes) { /* Clear any outstanding rogue invites */ mode_invite_clear(chptr); for (member = chptr->members; member; member = nmember) { - nmember=member->next_member; + nmember = member->next_member; if (!MyUser(member->user) || IsZombie(member)) continue; + /* Kick as netrider if key mismatch *or* remote channel is + * +i (unless user is an oper) *or* remote channel is +r + * (unless user has an account). + */ + if (!(check_modes & MODE_KEY) + && (!(check_modes & MODE_INVITEONLY) || IsAnOper(member->user)) +#if defined(UNDERNET) + && (!(check_modes & MODE_REGONLY) || IsAccount(member->user))) +#else + ) +#endif + continue; sendcmdto_serv_butone(&me, CMD_KICK, NULL, "%H %C :Net Rider", chptr, member->user); sendcmdto_channel_butserv_butone(&me, CMD_KICK, chptr, NULL, 0, "%H %C :Net Rider", chptr, member->user); make_zombie(member, member->user, &me, &me, chptr); @@ -257,15 +297,13 @@ modebuf_init(mbuf = &modebuf, &me, cptr, chptr, MODEBUF_DEST_CHANNEL | MODEBUF_DEST_NOKEY); modebuf_mode(mbuf, MODE_DEL | chptr->mode.mode); /* wipeout modes */ - chptr->mode.mode &= ~(MODE_ADD | MODE_DEL | MODE_PRIVATE | MODE_SECRET | - MODE_MODERATED | MODE_TOPICLIMIT | MODE_INVITEONLY | - MODE_NOPRIVMSGS | MODE_DELJOINS); + chptr->mode.mode &= MODE_BURSTADDED | MODE_WASDELJOINS; parse_flags |= (MODE_PARSE_SET | MODE_PARSE_WIPEOUT); /* wipeout keys */ /* mark bans for wipeout */ for (lp = chptr->banlist; lp; lp = lp->next) - lp->flags |= CHFL_BURST_BAN_WIPEOUT; + lp->flags |= BAN_BURST_WIPEOUT; /* clear topic set by netrider (if set) */ if (*chptr->topic) { @@ -293,7 +331,7 @@ case '%': /* parameter contains bans */ if (parse_flags & MODE_PARSE_SET) { char *banlist = parv[param] + 1, *p = 0, *ban, *ptr; - struct SLink *newban; + struct Ban *newban; for (ban = ircd_strtok(&p, banlist, " "); ban; ban = ircd_strtok(&p, 0, " ")) { @@ -308,16 +346,16 @@ * shown below *sigh* */ for (lp = chptr->banlist; lp; lp = lp->next) { - if (!ircd_strcmp(lp->value.ban.banstr, ban)) { + if (!ircd_strcmp(lp->banstr, ban)) { ban = 0; /* don't add ban */ - lp->flags &= ~CHFL_BURST_BAN_WIPEOUT; /* not wiping out */ + lp->flags &= ~BAN_BURST_WIPEOUT; /* not wiping out */ break; /* new ban already existed; don't even repropagate */ - } else if (!(lp->flags & CHFL_BURST_BAN_WIPEOUT) && - !mmatch(lp->value.ban.banstr, ban)) { + } else if (!(lp->flags & BAN_BURST_WIPEOUT) && + !mmatch(lp->banstr, ban)) { ban = 0; /* don't add ban unless wiping out bans */ break; /* new ban is encompassed by an existing one; drop */ - } else if (!mmatch(ban, lp->value.ban.banstr)) - lp->flags |= CHFL_BAN_OVERLAPPED; /* remove overlapping ban */ + } else if (!mmatch(ban, lp->banstr)) + lp->flags |= BAN_OVERLAPPED; /* remove overlapping ban */ if (!lp->next) break; @@ -334,18 +372,15 @@ for (ptr = ban; *ptr; ptr++) /* add ban to buffer */ banstr[banpos++] = *ptr; - newban = make_link(); /* create new ban */ - - DupString(newban->value.ban.banstr, ban); + newban = make_ban(ban); /* create new ban */ - DupString(newban->value.ban.who, - cli_name(feature_bool(FEAT_HIS_BANWHO) ? &me : sptr)); + DupString(newban->who, + cli_name(feature_bool(FEAT_HIS_BANWHO) ? &me : sptr)); + newban->when = TStime(); - newban->value.ban.when = TStime(); - - newban->flags = CHFL_BAN | CHFL_BURST_BAN; /* set flags */ + newban->flags = BAN_BURSTED; /* set flags */ if ((ptr = strrchr(ban, '@')) && check_if_ipmask(ptr + 1)) - newban->flags |= CHFL_BAN_IPMASK; + newban->flags |= BAN_IPMASK; newban->next = 0; if (lp) @@ -547,19 +582,18 @@ lp = *lp_p; /* remove ban from channel */ - if (lp->flags & (CHFL_BAN_OVERLAPPED | CHFL_BURST_BAN_WIPEOUT)) { + if (lp->flags & (BAN_OVERLAPPED | BAN_BURST_WIPEOUT)) { modebuf_mode_string(mbuf, MODE_DEL | MODE_BAN, - lp->value.ban.banstr, 1); /* let it free banstr */ - + lp->banstr, 1); /* let it free banstr */ + lp->banstr = NULL; /* do not free this string */ *lp_p = lp->next; /* clip out of list */ - MyFree(lp->value.ban.who); /* free who */ - free_link(lp); /* free ban */ + free_ban(lp); continue; - } else if (lp->flags & CHFL_BURST_BAN) /* add ban to channel */ + } else if (lp->flags & BAN_BURSTED) /* add ban to channel */ modebuf_mode_string(mbuf, MODE_ADD | MODE_BAN, - lp->value.ban.banstr, 0); /* don't free banstr */ + lp->banstr, 0); /* don't free banstr */ - lp->flags &= (CHFL_BAN | CHFL_BAN_IPMASK); /* reset the flag */ + lp->flags &= BAN_IPMASK; /* reset the flag */ lp_p = &(*lp_p)->next; } } Index: ircd-ircdev/ircd/m_clearmode.c diff -u ircd-ircdev/ircd/m_clearmode.c:1.4 ircd-ircdev/ircd/m_clearmode.c:1.5 --- ircd-ircdev/ircd/m_clearmode.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_clearmode.c Wed Nov 24 08:02:28 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: m_clearmode.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_clearmode.c,v 1.5 2004/11/24 16:02:28 zolty Exp $ * */ @@ -95,7 +95,6 @@ #include "numnicks.h" #include "s_conf.h" #include "send.h" -#include "support.h" #include <assert.h> @@ -130,7 +129,7 @@ char control_buf[20]; int control_buf_i = 0; struct ModeBuf mbuf; - struct SLink *link, *next; + struct Ban *link, *next; struct Membership *member; /* Ok, so what are we supposed to get rid of? */ @@ -179,10 +178,10 @@ next = link->next; modebuf_mode_string(&mbuf, MODE_DEL | MODE_BAN, /* delete ban */ - link->value.ban.banstr, 1); - - MyFree(link->value.ban.who); /* free up who string */ - free_link(link); /* and of course the link itself */ + link->banstr, 1); + link->banstr = NULL; /* modebuf_mode_string() gave ownership of + * banstr to mbuf */ + free_ban(link); } chptr->banlist = 0; @@ -288,9 +287,12 @@ control = parv[2]; chname = parv[1]; - if (*chname == '!') { + if (*chname == '!') + { chname++; - if (!HasPriv(sptr, IsLocalChannel(chname) ? PRIV_FORCE_LOCAL_OPMODE : PRIV_FORCE_OPMODE)) + if (!HasPriv(sptr, IsLocalChannel(chname) ? + PRIV_FORCE_LOCAL_OPMODE : + PRIV_FORCE_OPMODE)) return send_reply(sptr, ERR_NOPRIVILEGES); force = 1; } @@ -299,7 +301,7 @@ IsLocalChannel(chname) ? PRIV_LOCAL_OPMODE : PRIV_OPMODE)) return send_reply(sptr, ERR_NOPRIVILEGES); - if (!(chptr = FindChannel(chname))) + if (('#' != *chname && '&' != *chname) || !(chptr = FindChannel(chname))) return send_reply(sptr, ERR_NOSUCHCHANNEL, chname); if (!force && (qreason = find_quarantine(chptr->chname))) Index: ircd-ircdev/ircd/m_connect.c diff -u ircd-ircdev/ircd/m_connect.c:1.3 ircd-ircdev/ircd/m_connect.c:1.4 --- ircd-ircdev/ircd/m_connect.c:1.3 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_connect.c Wed Nov 24 08:02:28 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: m_connect.c,v 1.3 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_connect.c,v 1.4 2004/11/24 16:02:28 zolty Exp $ * */ @@ -184,18 +184,17 @@ /* * save the old port */ - tmpport = aconf->port; - if (port) { - aconf->port = port; - } - else { - port = aconf->port; - } + tmpport = aconf->address.port; + if (port) + aconf->address.port = port; + else + port = aconf->address.port; + /* * Notify all operators about remote connect requests */ sendwallto_group_butone(&me, WALL_WALLOPS, 0, - "Remote CONNECT %s %s from %s", parv[1], + "Remote CONNECT %s %s from %s", parv[1], parv[2] ? parv[2] : "", get_client_name(sptr, HIDE_IP)); log_write(LS_NETWORK, L_INFO, 0, "CONNECT From %C : %s %s", sptr, parv[1], @@ -209,7 +208,7 @@ sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connection to %s failed", sptr, aconf->name); } - aconf->port = tmpport; + aconf->address.port = tmpport; return 0; } @@ -313,7 +312,7 @@ * use the default from configuration structure. If missing * from there, then use the precompiled default. */ - port = aconf->port; + port = aconf->address.port; if (parc > 2) { assert(0 != parv[2]); if (0 == (port = atoi(parv[2]))) { @@ -328,8 +327,8 @@ return 0; } - tmpport = aconf->port; - aconf->port = port; + tmpport = aconf->address.port; + aconf->address.port = port; if (connect_server(aconf, sptr)) { sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connecting to %s.", sptr, @@ -339,6 +338,6 @@ sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :*** Connection to %s failed", sptr, aconf->name); } - aconf->port = tmpport; + aconf->address.port = tmpport; return 0; } Index: ircd-ircdev/ircd/m_create.c diff -u ircd-ircdev/ircd/m_create.c:1.2 ircd-ircdev/ircd/m_create.c:1.3 --- ircd-ircdev/ircd/m_create.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_create.c Wed Nov 24 08:02:28 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: m_create.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_create.c,v 1.3 2004/11/24 16:02:28 zolty Exp $ * */ @@ -129,18 +129,19 @@ cli_serv(cli_user(sptr)->server)->lag = TStime() - chanTS; /* If this server is >1 minute fast, warn */ - if (TStime() - chanTS<-60) { + if (TStime() - chanTS<-60) + { static time_t rate; sendto_opmask_butone_ratelimited(0, SNO_NETWORK, &rate, - "Timestamp drift from %C (%is); issuing " - "SETTIME to correct this", + "Timestamp drift from %C (%is); issuing " + "SETTIME to correct this", cli_user(sptr)->server, chanTS - TStime()); /* Now issue a SETTIME to resync. If we're in the wrong, our * (RELIABLE_CLOCK) hub will bounce a SETTIME back to us. */ sendcmdto_prio_one(&me, CMD_SETTIME, cli_user(sptr)->server, - "%Tu %C", TStime(), cli_user(sptr)->server); + "%Tu %C", TStime(), cli_user(sptr)->server); } joinbuf_init(&join, sptr, cptr, JOINBUF_TYPE_JOIN, 0, 0); @@ -154,7 +155,8 @@ if (IsLocalChannel(name)) continue; - if ((chptr = FindChannel(name))) { + if ((chptr = FindChannel(name))) + { name = chptr->chname; /* Check if we need to bounce a mode */ @@ -172,7 +174,7 @@ badop = 1; } - } else /* Channel doesn't exist: create it */ + } else /* Channel doesn't exist: create it */ chptr = get_channel(sptr, name, CGT_CREATE); if (!badop) /* Set/correct TS */ Index: ircd-ircdev/ircd/m_endburst.c diff -u ircd-ircdev/ircd/m_endburst.c:1.2 ircd-ircdev/ircd/m_endburst.c:1.3 --- ircd-ircdev/ircd/m_endburst.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_endburst.c Wed Nov 24 08:02:28 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: m_endburst.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_endburst.c,v 1.3 2004/11/24 16:02:28 zolty Exp $ * */ @@ -126,11 +126,12 @@ next_chan = chan->next; if (!chan->members) { /* empty channel */ - if (!(chan->mode.mode & MODE_BURSTADDED)) + if ((chan->mode.mode & MODE_BURSTADDED)) + sub1_from_channel(chan); /* New empty channel, schedule it for removal. */ + /* FIX-ZOLTAN Añadido */ + else sendto_opmask_butone(0, SNO_OLDSNO, "Empty channel %H not added by " "BURST!", chan); - - sub1_from_channel(chan); /* ok, nuke channel now */ } chan->mode.mode &= ~MODE_BURSTADDED; Index: ircd-ircdev/ircd/m_gline.c diff -u ircd-ircdev/ircd/m_gline.c:1.2 ircd-ircdev/ircd/m_gline.c:1.3 --- ircd-ircdev/ircd/m_gline.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_gline.c Wed Nov 24 08:02:28 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: m_gline.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_gline.c,v 1.3 2004/11/24 16:02:28 zolty Exp $ * */ @@ -96,7 +96,6 @@ #include "s_conf.h" #include "s_misc.h" #include "send.h" -#include "support.h" #include <assert.h> #include <stdlib.h> @@ -129,23 +128,27 @@ time_t expire_off, lastmod = 0; char *mask = parv[2], *target = parv[1], *reason = "No reason"; - if (*mask == '!') { + if (*mask == '!') + { mask++; - flags |= GLINE_OPERFORCE; /* assume oper had WIDE_GLINE */ } - if ((parc == 3 && *mask == '-') || parc == 5) { + if ((parc == 3 && *mask == '-') || parc == 5) + { if (!find_conf_byhost(cli_confs(cptr), cli_name(sptr), CONF_UWORLD)) return need_more_params(sptr, "GLINE"); if (parc > 4) reason = parv[4]; flags |= GLINE_FORCE; - } else if (parc > 5) { + } + else if (parc > 5) + { lastmod = atoi(parv[4]); reason = parv[5]; - } else + } + else return need_more_params(sptr, "GLINE"); if (IsServer(sptr)) @@ -267,12 +270,16 @@ } else return need_more_params(sptr, "GLINE"); - if (target) { - if (!(target[0] == '*' && target[1] == '\0')) { + if (target) + { + if (!(target[0] == '*' && target[1] == '\0')) + { if (!(acptr = find_match_server(target))) return send_reply(sptr, ERR_NOSUCHSERVER, target); - if (!IsMe(acptr)) { /* manually propagate, since we don't set it */ + /* manually propagate, since we don't set it */ + if (!IsMe(acptr)) + { if (!feature_bool(FEAT_CONFIG_OPERCMDS)) return send_reply(sptr, ERR_DISABLED, "GLINE"); @@ -285,7 +292,6 @@ TStime(), reason); return 0; } - flags |= GLINE_LOCAL; } } Index: ircd-ircdev/ircd/m_info.c diff -u ircd-ircdev/ircd/m_info.c:1.2 ircd-ircdev/ircd/m_info.c:1.3 --- ircd-ircdev/ircd/m_info.c:1.2 Thu Apr 22 10:37:18 2004 +++ ircd-ircdev/ircd/m_info.c Wed Nov 24 08:02:28 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: m_info.c,v 1.2 2004/04/22 17:37:18 zolty Exp $ + * $Id: m_info.c,v 1.3 2004/11/24 16:02:28 zolty Exp $ * */ @@ -109,7 +109,7 @@ HUNTED_ISME) return 0; - while (text[2]) + while (text[212]) { send_reply(sptr, RPL_INFO, *text); text++; @@ -139,7 +139,7 @@ if (hunt_server_cmd(sptr, CMD_INFO, cptr, 1, ":%C", 1, parc, parv) != HUNTED_ISME) return 0; - while (text[2]) + while (text[212]) { if (!IsOper(sptr)) send_reply(sptr, RPL_INFO, *text); @@ -172,13 +172,13 @@ if (hunt_server_cmd(sptr, CMD_INFO, cptr, 1, ":%C", 1, parc, parv) == HUNTED_ISME) { - while (text[2]) + while (text[212]) { if (!IsOper(sptr)) send_reply(sptr, RPL_INFO, *text); text++; } - if (IsOper(sptr)) + if (IsOper(sptr) && (NULL != parv[1])) { while (*text) send_reply(sptr, RPL_INFO, *text++); Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.4 ircd-ircdev/ircd/m_invite.c:1.5 --- ircd-ircdev/ircd/m_invite.c:1.4 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_invite.c Wed Nov 24 08:02:28 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: m_invite.c,v 1.4 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_invite.c,v 1.5 2004/11/24 16:02:28 zolty Exp $ * */ @@ -180,17 +180,17 @@ if (!IsLocalChannel(chptr->chname) || MyConnect(acptr)) { if (feature_bool(FEAT_ANNOUNCE_INVITES)) { + /* Announce to channel operators. */ sendcmdto_channel_butserv_butone(&me, get_error_numeric(RPL_ISSUEDINVITE)->str, NULL, chptr, sptr, SKIP_NONOPS, - "%C %C :%C has been invited by %C", - acptr, sptr, acptr, sptr); - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, sptr, 0, + "%H %C %C :%C has been invited by %C", + chptr, acptr, sptr, acptr, sptr); + /* Announce to servers with channel operators, but skip acptr, + * since they will be notified below. */ + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, "%s :%H", cli_name(acptr), chptr); - if (MyConnect(acptr)) - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%H", cli_name(acptr), chptr); } - else - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%H", cli_name(acptr), chptr); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%H", cli_name(acptr), chptr); } return 0; @@ -241,27 +241,6 @@ send_reply(sptr, ERR_NOSUCHNICK, parv[1]); return 0; } - if (feature_bool(FEAT_ANNOUNCE_INVITES)) { - sendcmdto_channel_butserv_butone(&me, get_error_numeric(RPL_ISSUEDINVITE)->str, - NULL, chptr, sptr, SKIP_NONOPS, - "%C %C :%C has been invited by %C", - acptr, sptr, acptr, sptr); - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, sptr, 0, - "%s :%H", cli_name(acptr), chptr); - if (MyConnect(acptr)) - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%H", cli_name(acptr), chptr); - return 0; - } - if (!MyUser(acptr)) { - /* - * just relay the message - */ - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%s", cli_name(acptr), parv[2]); - return 0; - } - - if (is_silenced(sptr, acptr)) - return 0; if (!(chptr = FindChannel(parv[2]))) { /* @@ -274,16 +253,34 @@ /* Allow remote +k users who aren't on the channel to invite people - * needed for off-channel services to work properly */ - if (!IsChannelService(sptr) && !find_channel_member(sptr, chptr)) { - send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname); - return 0; - } + if (!IsChannelService(sptr) && !find_channel_member(sptr, chptr)) { + send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname); + return 0; + } if (find_channel_member(acptr, chptr)) { send_reply(sptr, ERR_USERONCHANNEL, cli_name(acptr), chptr->chname); return 0; } - add_invite(acptr, chptr); + + if (is_silenced(sptr, acptr)) + return 0; + + if (MyConnect(acptr)) + add_invite(acptr, chptr); + + if (feature_bool(FEAT_ANNOUNCE_INVITES)) { + /* Announce to channel operators. */ + sendcmdto_channel_butserv_butone(&me, get_error_numeric(RPL_ISSUEDINVITE)->str, + NULL, chptr, sptr, SKIP_NONOPS, + "%H %C %C :%C has been invited by %C", + chptr, acptr, sptr, acptr, sptr); + /* Announce to servers with channel operators, but skip acptr, + * since they will be notified below. */ + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, + "%s :%H", cli_name(acptr), chptr); + } + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s :%H", cli_name(acptr), chptr); return 0; } Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.6 ircd-ircdev/ircd/m_join.c:1.7 --- ircd-ircdev/ircd/m_join.c:1.6 Fri May 21 08:39:35 2004 +++ ircd-ircdev/ircd/m_join.c Wed Nov 24 08:02:28 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: m_join.c,v 1.6 2004/05/21 15:39:35 zolty Exp $ + * $Id: m_join.c,v 1.7 2004/11/24 16:02:28 zolty Exp $ * */ @@ -152,8 +152,8 @@ while ((member = cli_user(sptr)->channel)) joinbuf_join(&part, member->channel, IsZombie(member) ? CHFL_ZOMBIE : - IsDelayedJoin(member) ? CHFL_DELAYED : - 0); + IsDelayedJoin(member) ? CHFL_DELAYED : + 0); joinbuf_flush(&part); @@ -196,7 +196,9 @@ if (join0(&join, cptr, sptr, name)) /* did client do a JOIN 0? */ continue; - if (!IsChannelName(name)) { /* bad channel name */ + /* bad channel name */ + if (!IsChannelName(name)) + { send_reply(sptr, ERR_NOSUCHCHANNEL, name); continue; } @@ -206,9 +208,9 @@ */ for (k = 0, j = 0; name[j]; j++) if (IsCntrl(name[j])) - k++; - - if ( k > 0 ) { + k++; + if (k > 0) + { send_reply(sptr, ERR_NOSUCHCHANNEL, name); continue; } @@ -220,7 +222,8 @@ continue; } - if ((chptr = FindChannel(name))) { + if ((chptr = FindChannel(name))) + { if (find_member_link(chptr, sptr)) continue; /* already on channel */ @@ -317,7 +320,8 @@ #endif } else if (!(chptr = get_channel(sptr, name, CGT_CREATE))) continue; /* couldn't get channel */ - else if (check_target_limit(sptr, chptr, chptr->chname, 1)) { + else if (check_target_limit(sptr, chptr, chptr->chname, 1)) + { /* Note: check_target_limit will only ever return 0 here */ #if defined(UNDERNET) /* FIXME zoltan */ @@ -327,7 +331,8 @@ sub1_from_channel(chptr); /* created it... */ #endif continue; - } else + } + else joinbuf_join(&create, chptr, flags); del_invite(sptr, chptr); @@ -361,12 +366,14 @@ char *chanlist; char *name; - if (IsServer(sptr)) { + if (IsServer(sptr)) + { return protocol_violation(cptr, - "%s tried to JOIN %s, duh!", - cli_name(sptr), - (parc < 2 || *parv[1] == '\0') ? "a channel":parv[1] - ); + "%s tried to JOIN %s, duh!", + cli_name(sptr), + (parc < 2 || *parv[1] == '\0') ? "a channel" : + parv[1] + ); } if (parc < 2 || *parv[1] == '\0') @@ -386,14 +393,17 @@ if (join0(&join, cptr, sptr, name)) /* did client do a JOIN 0? */ continue; ... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:03:58
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:03:38 UTC Modified files: ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/s_auth.c diff -u ircd-ircdev/ircd/s_auth.c:1.4 ircd-ircdev/ircd/s_auth.c:1.5 --- ircd-ircdev/ircd/s_auth.c:1.4 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/s_auth.c Wed Nov 24 08:03:18 2004 @@ -19,8 +19,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: s_auth.c,v 1.4 2004/02/22 16:11:42 zolty Exp $ - * + */ +/** @file + * @brief Implementation of DNS and ident lookups. + * @version $Id: s_auth.c,v 1.5 2004/11/24 16:03:18 zolty Exp $ */ #include "config.h" @@ -59,27 +61,27 @@ #include <sys/file.h> #include <sys/ioctl.h> -/* - * a bit different approach - * this replaces the original sendheader macros - */ +/** Array of message text (with length) pairs for AUTH status + * messages. Indexed using #ReportType. */ static struct { const char* message; unsigned int length; } HeaderMessages [] = { - /* 123456789012345678901234567890123456789012345678901234567890 */ - { "NOTICE AUTH :*** Looking up your hostname\r\n", 43 }, - { "NOTICE AUTH :*** Found your hostname\r\n", 38 }, - { "NOTICE AUTH :*** Found your hostname, cached\r\n", 46 }, - { "NOTICE AUTH :*** Couldn't look up your hostname\r\n", 49 }, - { "NOTICE AUTH :*** Checking Ident\r\n", 33 }, - { "NOTICE AUTH :*** Got ident response\r\n", 37 }, - { "NOTICE AUTH :*** No ident response\r\n", 36 }, - { "NOTICE AUTH :*** Your forward and reverse DNS do not match, " \ - "ignoring hostname.\r\n", 80 }, - { "NOTICE AUTH :*** Invalid hostname\r\n", 35 } +#define MSG(STR) { STR, sizeof(STR) - 1 } + MSG("NOTICE AUTH :*** Looking up your hostname\r\n"), + MSG("NOTICE AUTH :*** Found your hostname\r\n"), + MSG("NOTICE AUTH :*** Found your hostname, cached\r\n"), + MSG("NOTICE AUTH :*** Couldn't look up your hostname\r\n"), + MSG("NOTICE AUTH :*** Checking Ident\r\n"), + MSG("NOTICE AUTH :*** Got ident response\r\n"), + MSG("NOTICE AUTH :*** No ident response\r\n"), + MSG("NOTICE AUTH :*** Your forward and reverse DNS do not match, " + "ignoring hostname.\r\n"), + MSG("NOTICE AUTH :*** Invalid hostname\r\n") +#undef MSG }; +/** Enum used to index messages in the HeaderMessages[] array. */ typedef enum { REPORT_DO_DNS, REPORT_FIN_DNS, @@ -92,22 +94,21 @@ REPORT_INVAL_DNS } ReportType; +/** Sends response \a r (from #ReportType) to client \a c. */ #define sendheader(c, r) \ send(cli_fd(c), HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0) -struct AuthRequest* AuthPollList = 0; /* GLOBAL - auth queries pending io */ -static struct AuthRequest* AuthIncompleteList = 0; - static void release_auth_client(struct Client* client); -static void unlink_auth_request(struct AuthRequest* request, - struct AuthRequest** list); void free_auth_request(struct AuthRequest* auth); -/* auth_verify_hostname - verify that a hostname is valid, i.e., only - * contains characters valid for a hostname and that a hostname is not - * too long. +/** Verify that a hostname is valid, i.e., only contains characters + * valid for a hostname and that a hostname is not too long. + * @param host Hostname to check. + * @param maxlen Maximum length of hostname, not including NUL terminator. + * @return Non-zero if the hostname is valid. */ -static int auth_verify_hostname(char *host, int maxlen) +static int +auth_verify_hostname(char *host, int maxlen) { int i; @@ -120,8 +121,9 @@ return 1; /* it's a valid hostname */ } -/* - * auth_timeout - timeout a given auth request +/** Timeout a given auth request. + * @param ev A timer event whose associated data is the expired struct + * AuthRequest. */ static void auth_timeout_callback(struct Event* ev) { @@ -130,7 +132,7 @@ assert(0 != ev_timer(ev)); assert(0 != t_data(ev_timer(ev))); - auth = (struct AuthRequest *)t_data(ev_timer(ev)); + auth = (struct AuthRequest*) t_data(ev_timer(ev)); if (ev_type(ev) == ET_DESTROY) { /* being destroyed */ auth->flags &= ~AM_TIMEOUT; @@ -147,8 +149,9 @@ } } -/* - * auth_sock_callback - called when an event occurs on the socket +/** Handle socket I/O activity. + * @param ev A socket event whos associated data is the active struct + * AuthRequest. */ static void auth_sock_callback(struct Event* ev) { @@ -157,7 +160,7 @@ assert(0 != ev_socket(ev)); assert(0 != s_data(ev_socket(ev))); - auth = (struct AuthRequest *)s_data(ev_socket(ev)); + auth = (struct AuthRequest*) s_data(ev_socket(ev)); switch (ev_type(ev)) { case ET_DESTROY: /* being destroyed */ @@ -185,22 +188,19 @@ break; default: -#ifndef NDEBUG - abort(); /* unrecognized event */ -#endif + assert(0 && "Unrecognized event in auth_socket_callback()."); break; } } -/* - * destroy_auth_request - stop an auth request completely +/** Stop an auth request completely. + * @param auth The struct AuthRequest to cancel. + * @param send_reports If non-zero, report the failure to the user and + * resolver log. */ void destroy_auth_request(struct AuthRequest* auth, int send_reports) { - struct AuthRequest** authList; - if (IsDoingAuth(auth)) { - authList = &AuthPollList; if (-1 < auth->fd) { close(auth->fd); auth->fd = -1; @@ -209,8 +209,7 @@ if (send_reports && IsUserPort(auth->client)) sendheader(auth->client, REPORT_FAIL_ID); - } else - authList = &AuthIncompleteList; + } if (IsDNSPending(auth)) { delete_resolver_queries(auth); @@ -224,12 +223,12 @@ release_auth_client(auth->client); } - unlink_auth_request(auth, authList); free_auth_request(auth); } -/* - * make_auth_request - allocate a new auth request +/** Allocate a new auth request. + * @param client The client being looked up. + * @return The newly allocated auth request. */ static struct AuthRequest* make_auth_request(struct Client* client) { @@ -246,8 +245,8 @@ return auth; } -/* - * free_auth_request - cleanup auth request allocations +/** Clean up auth request allocations (event loop objects, etc). + * @param auth The request to clean up. */ void free_auth_request(struct AuthRequest* auth) { @@ -260,37 +259,10 @@ timer_del(&auth->timeout); } -/* - * unlink_auth_request - remove auth request from a list - */ -static void unlink_auth_request(struct AuthRequest* request, - struct AuthRequest** list) -{ - if (request->next) - request->next->prev = request->prev; - if (request->prev) - request->prev->next = request->next; - else - *list = request->next; -} - -/* - * link_auth_request - add auth request to a list - */ -static void link_auth_request(struct AuthRequest* request, - struct AuthRequest** list) -{ - request->prev = 0; - request->next = *list; - if (*list) - (*list)->prev = request; - *list = request; -} - -/* - * release_auth_client - release auth client from auth system - * this adds the client into the local client lists so it can be read by - * the main io processing loop +/** Release auth client from auth system. This adds the client into + * the local client lists so it can be read by the main io processing + * loop. + * @param client The client to release. */ static void release_auth_client(struct Client* client) { @@ -306,13 +278,14 @@ Debug((DEBUG_INFO, "Auth: release_auth_client %s@%s[%s]", cli_username(client), cli_sockhost(client), cli_sock_ip(client))); } - + +/** Terminate a client's connection due to auth failure. + * @param auth The client to terminate. + */ static void auth_kill_client(struct AuthRequest* auth) { assert(0 != auth); - unlink_auth_request(auth, (IsDoingAuth(auth)) ? &AuthPollList : &AuthIncompleteList); - if (IsDNSPending(auth)) delete_resolver_queries(auth); IPcheck_disconnect(auth->client); @@ -322,18 +295,16 @@ free_auth_request(auth); } -/* - * auth_dns_callback - called when resolver query finishes - * if the query resulted in a successful search, hp will contain - * a non-null pointer, otherwise hp will be null. - * set the client on it's way to a connection completion, regardless - * of success of failure +/** Handle a complete DNS lookup. Send the client on it's way to a + * connection completion, regardless of success or failure -- unless + * there was a mismatch and KILL_IPMISMATCH is set. + * @param vptr The pending struct AuthRequest. + * @param hp Pointer to the DNS reply (or NULL, if lookup failed). */ -static void auth_dns_callback(void* vptr, struct hostent* hp) +static void auth_dns_callback(void* vptr, struct DNSReply* hp) { struct AuthRequest* auth = (struct AuthRequest*) vptr; - - assert(0 != auth); + assert(auth); /* * need to do this here so auth_kill_client doesn't * try have the resolver delete the query it's about @@ -342,30 +313,28 @@ ClearDNSPending(auth); if (hp) { - int i; /* * Verify that the host to ip mapping is correct both ways and that * the ip#(s) for the socket is listed for the host. */ - for (i = 0; hp->h_addr_list[i]; ++i) { - if (0 == memcmp(hp->h_addr_list[i], &(cli_ip(auth->client)), - sizeof(struct in_addr))) - break; - } - if (!hp->h_addr_list[i]) { + if (irc_in_addr_cmp(&hp->addr, &cli_ip(auth->client))) { if (IsUserPort(auth->client)) sendheader(auth->client, REPORT_IP_MISMATCH); sendto_opmask_butone(0, SNO_IPMISMATCH, "IP# Mismatch: %s != %s[%s]", - cli_sock_ip(auth->client), hp->h_name, - ircd_ntoa(hp->h_addr_list[0])); + cli_sock_ip(auth->client), hp->h_name, + ircd_ntoa(&hp->addr)); if (feature_bool(FEAT_KILL_IPMISMATCH)) { auth_kill_client(auth); return; } - } else if (!auth_verify_hostname(hp->h_name, HOSTLEN)) { + } + else if (!auth_verify_hostname(hp->h_name, HOSTLEN)) + { if (IsUserPort(auth->client)) sendheader(auth->client, REPORT_INVAL_DNS); - } else { + } + else + { cli_dns_reply(auth->client) = hp; ircd_strncpy(cli_sockhost(auth->client), hp->h_name, HOSTLEN); if (IsUserPort(auth->client)) @@ -383,13 +352,13 @@ } if (!IsDoingAuth(auth)) { release_auth_client(auth->client); - unlink_auth_request(auth, &AuthIncompleteList); free_auth_request(auth); } } -/* - * authsenderr - handle auth send errors +/** Handle auth send errors. + * @param auth The request that saw the failure. + * @param kill If non-zero, a critical error; close the client's connection. */ static void auth_error(struct AuthRequest* auth, int kill) { @@ -415,66 +384,47 @@ } ClearAuth(auth); - unlink_auth_request(auth, &AuthPollList); - if (IsDNSPending(auth)) - link_auth_request(auth, &AuthIncompleteList); - else { + if (!IsDNSPending(auth)) { release_auth_client(auth->client); free_auth_request(auth); } } -/* - * start_auth_query - Flag the client to show that an attempt to - * contact the ident server on the client's host. The connect and - * subsequently the socket are all put into 'non-blocking' mode. - * Should the connect or any later phase of the identifing process fail, - * it is aborted and the user is given a username of "unknown". +/** Flag the client to show an attempt to contact the ident server on + * the client's host. Should the connect or any later phase of the + * identifing process fail, it is aborted and the user is given a + * username of "unknown". + * @param auth The request for which to start the ident lookup. + * @return Non-zero on success; zero if unable to start the lookup. */ static int start_auth_query(struct AuthRequest* auth) { - struct sockaddr_in remote_addr; - struct sockaddr_in local_addr; + struct irc_sockaddr remote_addr; + struct irc_sockaddr local_addr; int fd; IOResult result; assert(0 != auth); assert(0 != auth->client); - if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { - ++ServerStats->is_abad; - return 0; - } - if ((MAXCONNECTIONS - 10) < fd) { - close(fd); - return 0; - } - if (!os_set_nonblocking(fd)) { - close(fd); - return 0; - } - if (IsUserPort(auth->client)) - sendheader(auth->client, REPORT_DO_ID); - /* + /* * get the local address of the client and bind to that to * make the auth request. This used to be done only for * ifdef VIRTTUAL_HOST, but needs to be done for all clients * since the ident request must originate from that same address-- * and machines with multiple IP addresses are common now */ - memset(&local_addr, 0, sizeof(struct sockaddr_in)); + memset(&local_addr, 0, sizeof(local_addr)); os_get_sockname(cli_fd(auth->client), &local_addr); - local_addr.sin_port = htons(0); - - if (bind(fd, (struct sockaddr*) &local_addr, sizeof(struct sockaddr_in))) { - close(fd); + local_addr.port = 0; + fd = os_socket(&local_addr, SOCK_STREAM, "auth query"); + if (fd < 0) return 0; - } - - remote_addr.sin_addr.s_addr = (cli_ip(auth->client)).s_addr; - remote_addr.sin_port = htons(113); - remote_addr.sin_family = AF_INET; + if (IsUserPort(auth->client)) + sendheader(auth->client, REPORT_DO_ID); + memcpy(&remote_addr.addr, &cli_ip(auth->client), sizeof(remote_addr.addr)); + remote_addr.port = 113; if ((result = os_connect_nonb(fd, &remote_addr)) == IO_FAILURE || !socket_add(&auth->socket, auth_sock_callback, (void*) auth, @@ -500,7 +450,7 @@ return 1; } - +/** Enum used to index ident reply fields in a human-readable way. */ enum IdentReplyFields { IDENT_PORT_NUMBERS, IDENT_REPLY_TYPE, @@ -509,6 +459,10 @@ USERID_TOKEN_COUNT }; +/** Parse an ident reply line and extract the userid from it. + * @param reply The ident reply line. + * @return The userid, or NULL on parse failure. + */ static char* check_ident_reply(char* reply) { char* token; @@ -577,11 +531,9 @@ return token; } -/* - * start_auth - starts auth (identd) and dns queries for a client +/** Starts auth (identd) and dns queries for a client. + * @param client The client for which to start queries. */ -enum { LOOPBACK = 127 }; - void start_auth(struct Client* client) { struct AuthRequest* auth = 0; @@ -594,7 +546,7 @@ Debug((DEBUG_INFO, "Beginning auth request on client %p", client)); if (!feature_bool(FEAT_NODNS)) { - if (LOOPBACK == inet_netof(cli_ip(client))) + if (irc_in_addr_is_loopback(&cli_ip(client))) strcpy(cli_sockhost(client), cli_name(&me)); else { struct DNSQuery query; @@ -605,7 +557,7 @@ if (IsUserPort(auth->client)) sendheader(client, REPORT_DO_DNS); - gethost_byaddr((const char*) &(cli_ip(client)), &query); + gethost_byaddr(&cli_ip(client), &query); SetDNSPending(auth); } } @@ -613,11 +565,9 @@ if (start_auth_query(auth)) { Debug((DEBUG_LIST, "identd query for %p initiated successfully", auth->client)); - link_auth_request(auth, &AuthPollList); } else if (IsDNSPending(auth)) { Debug((DEBUG_LIST, "identd query for %p not initiated successfully; " "waiting on DNS", auth->client)); - link_auth_request(auth, &AuthIncompleteList); } else { Debug((DEBUG_LIST, "identd query for %p not initiated successfully; " "no DNS pending; releasing immediately", auth->client)); @@ -626,17 +576,17 @@ } } -/* - * send_auth_query - send the ident server a query giving "theirport , ourport" - * The write is only attempted *once* so it is deemed to be a fail if the +/** Send the ident server a query giving "theirport , ourport". The + * write is only attempted *once* so it is deemed to be a fail if the * entire write doesn't write all the data given. This shouldnt be a - * problem since the socket should have a write buffer far greater than - * this message to store it in should problems arise. -avalon + * problem since the socket should have a write buffer far greater + * than this message to store it in should problems arise. -avalon + * @param auth The request to send. */ void send_auth_query(struct AuthRequest* auth) { - struct sockaddr_in us; - struct sockaddr_in them; + struct irc_sockaddr us; + struct irc_sockaddr them; char authbuf[32]; unsigned int count; @@ -649,8 +599,8 @@ return; } ircd_snprintf(0, authbuf, sizeof(authbuf), "%u , %u\r\n", - (unsigned int) ntohs(them.sin_port), - (unsigned int) ntohs(us.sin_port)); + (unsigned int) them.port, + (unsigned int) us.port); if (IO_SUCCESS == os_send_nonb(auth->fd, authbuf, strlen(authbuf), &count)) { ClearAuthConnect(auth); @@ -661,11 +611,10 @@ } -/* - * read_auth_reply - read the reply (if any) from the ident server - * we connected to. - * We only give it one shot, if the reply isn't good the first time - * fail the authentication entirely. --Bleep +/** Read the reply (if any) from the ident server we connected to. We + * only give it one shot, if the reply isn't good the first time fail + * the authentication entirely. --Bleep + * @param auth The request to read. */ void read_auth_reply(struct AuthRequest* auth) { @@ -692,7 +641,7 @@ Debug((DEBUG_LIST, "Deleting auth [%p] socket %p", auth, &auth->socket)); socket_del(&auth->socket); ClearAuth(auth); - + if (!EmptyString(username)) { ircd_strncpy(cli_username(auth->client), username, USERLEN); /* @@ -707,11 +656,8 @@ else { ++ServerStats->is_abad; } - unlink_auth_request(auth, &AuthPollList); - if (IsDNSPending(auth)) - link_auth_request(auth, &AuthIncompleteList); - else { + if (!IsDNSPending(auth)) { release_auth_client(auth->client); free_auth_request(auth); } Index: ircd-ircdev/ircd/s_bsd.c diff -u ircd-ircdev/ircd/s_bsd.c:1.5 ircd-ircdev/ircd/s_bsd.c:1.6 --- ircd-ircdev/ircd/s_bsd.c:1.5 Wed Nov 17 03:45:50 2004 +++ ircd-ircdev/ircd/s_bsd.c Wed Nov 24 08:03:28 2004 @@ -18,8 +18,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: s_bsd.c,v 1.5 2004/11/17 11:45:50 zolty Exp $ - * + */ +/** @file + * @brief Functions that now (or in the past) relied on BSD APIs. + * @version $Id: s_bsd.c,v 1.6 2004/11/24 16:03:28 zolty Exp $ */ #include "config.h" @@ -54,18 +56,15 @@ #include "s_user.h" #include "send.h" #include "struct.h" -#include "support.h" #include "sys.h" #include "uping.h" #include "version.h" #include <arpa/inet.h> -#include <arpa/nameser.h> #include <assert.h> #include <errno.h> #include <fcntl.h> #include <netdb.h> -#include <resolv.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -79,13 +78,13 @@ #include <sys/poll.h> #endif /* USE_POLL */ -#ifndef INADDR_NONE -#define INADDR_NONE 0xffffffff -#endif - +/** Array of my own clients, indexed by file descriptor. */ struct Client* LocalClientArray[MAXCONNECTIONS]; +/** Maximum file descriptor in current use. */ int HighestFd = -1; -struct sockaddr_in VirtualHost; +/** Default local address for outbound connections. */ +struct irc_sockaddr VirtualHost; +/** Temporary buffer for reading data from a peer. */ static char readbuf[SERVER_TCP_WINDOW]; /* @@ -135,19 +134,14 @@ * been reassigned to a normal connection... */ -/* - * report_error - * - * This a replacement for perror(). Record error to log and - * also send a copy to all *LOCAL* opers online. - * - * text is a *format* string for outputting error. It must - * contain only two '%s', the first will be replaced - * by the sockhost from the cptr, and the latter will - * be taken from sys_errlist[errno]. - * - * cptr if not NULL, is the *LOCAL* client associated with - * the error. +/** Replacement for perror(). Record error to log. Send a copy to all + * *LOCAL* opers, but only if no errors were sent to them in the last + * 20 seconds. + * @param text A *format* string for outputting error. It must contain + * only two '%s', the first will be replaced by the sockhost from the + * cptr, and the latter will be taken from sys_errlist[errno]. + * @param who The client associated with the error. + * @param err The errno value to display. */ void report_error(const char* text, const char* who, int err) { @@ -173,19 +167,19 @@ } -/* - * connect_dns_callback - called when resolver query finishes - * if the query resulted in a successful search, reply will contain - * a non-null pointer, otherwise reply will be null. - * if successful start the connection, otherwise notify opers +/** Called when resolver query finishes. If the DNS lookup was + * successful, start the connection; otherwise notify opers of the + * failure. + * @param vptr The struct ConfItem representing the Connect block. + * @param hp A pointer to the DNS lookup results (NULL on failure). */ -static void connect_dns_callback(void* vptr, struct hostent* hp) +static void connect_dns_callback(void* vptr, struct DNSReply* hp) { struct ConfItem* aconf = (struct ConfItem*) vptr; assert(aconf); aconf->dns_pending = 0; if (hp) { - memcpy(&aconf->ipnum, hp->h_addr, sizeof(struct in_addr)); + memcpy(&aconf->address, &hp->addr, sizeof(aconf->address)); MyFree(hp); connect_server(aconf, 0); } @@ -194,9 +188,8 @@ aconf->name); } -/* - * close_connections - closes all connections - * close stderr if specified +/** Closes all file descriptors. + * @param close_stderr If non-zero, also close stderr. */ void close_connections(int close_stderr) { @@ -209,9 +202,7 @@ close(i); } -/* - * init_connection_limits - initialize process fd limit to - * MAXCONNECTIONS +/** Initialize process fd limit to MAXCONNECTIONS. */ int init_connection_limits(void) { @@ -229,12 +220,14 @@ return 0; } -/* - * connect_inet - set up address and port and make a connection +/** Set up address and port and make a connection. + * @param aconf Provides the connection information. + * @param cptr Client structure for the peer. + * @return Non-zero on success; zero on failure. */ static int connect_inet(struct ConfItem* aconf, struct Client* cptr) { - static struct sockaddr_in sin, *locaddr = 0; + const struct irc_sockaddr *local; IOResult result; assert(0 != aconf); assert(0 != cptr); @@ -242,61 +235,19 @@ * Might as well get sockhost from here, the connection is attempted * with it so if it fails its useless. */ - cli_fd(cptr) = socket(AF_INET, SOCK_STREAM, 0); - if (-1 == cli_fd(cptr)) { - cli_error(cptr) = errno; - report_error(SOCKET_ERROR_MSG, cli_name(cptr), errno); - return 0; - } - if (cli_fd(cptr) >= MAXCLIENTS) { - report_error(CONNLIMIT_ERROR_MSG, cli_name(cptr), 0); - close(cli_fd(cptr)); - cli_fd(cptr) = -1; - return 0; - } - /* - * Bind to a local IP# (with unknown port - let unix decide) so - * we have some chance of knowing the IP# that gets used for a host - * with more than one IP#. - * - * No we don't bind it, not all OS's can handle connecting with - * an already bound socket, different ip# might occur anyway - * leading to a freezing select() on this side for some time. - * I had this on my Linux 1.1.88 --Run - */ - - /* - * No, we do bind it if we have virtual host support. If we don't - * explicitly bind it, it will default to IN_ADDR_ANY and we lose - * due to the other server not allowing our base IP --smg - */ - if (aconf->origin.s_addr != INADDR_NONE) { - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = aconf->origin.s_addr; - locaddr = &sin; - } else if (feature_bool(FEAT_VIRTUAL_HOST)) - locaddr = &VirtualHost; - - if (locaddr && - bind(cli_fd(cptr), (struct sockaddr*) locaddr, - sizeof(struct sockaddr_in))) { - report_error(BIND_ERROR_MSG, cli_name(cptr), errno); - close(cli_fd(cptr)); - cli_fd(cptr) = -1; + if (irc_in_addr_valid(&aconf->origin.addr)) + local = &aconf->origin; + else + local = &VirtualHost; + cli_fd(cptr) = os_socket(local, SOCK_STREAM, cli_name(cptr)); + if (cli_fd(cptr) < 0) return 0; - } - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = aconf->ipnum.s_addr; - sin.sin_port = htons(aconf->port); /* * save connection info in client */ - (cli_ip(cptr)).s_addr = aconf->ipnum.s_addr; - cli_port(cptr) = aconf->port; - ircd_ntoa_r(cli_sock_ip(cptr), (const char*) &(cli_ip(cptr))); + memcpy(&cli_ip(cptr), &aconf->address.addr, sizeof(cli_ip(cptr))); + ircd_ntoa_r(cli_sock_ip(cptr), &cli_ip(cptr)); /* * we want a big buffer for server connections */ @@ -307,17 +258,7 @@ cli_fd(cptr) = -1; return 0; } - /* - * ALWAYS set sockets non-blocking - */ - if (!os_set_nonblocking(cli_fd(cptr))) { - cli_error(cptr) = errno; - report_error(NONB_ERROR_MSG, cli_name(cptr), errno); - close(cli_fd(cptr)); - cli_fd(cptr) = -1; - return 0; - } - if ((result = os_connect_nonb(cli_fd(cptr), &sin)) == IO_FAILURE) { + if ((result = os_connect_nonb(cli_fd(cptr), &aconf->address)) == IO_FAILURE) { cli_error(cptr) = errno; report_error(CONNECT_ERROR_MSG, cli_name(cptr), errno); close(cli_fd(cptr)); @@ -338,28 +279,13 @@ return 1; } -/* - * deliver_it - * Attempt to send a sequence of bytes to the connection. - * Returns - * - * < 0 Some fatal error occurred, (but not EWOULDBLOCK). - * This return is a request to close the socket and - * clean up the link. - * - * >= 0 No real error occurred, returns the number of - * bytes actually transferred. EWOULDBLOCK and other - * possibly similar conditions should be mapped to - * zero return. Upper level routine will have to - * decide what to do with those unwritten bytes... - * - * *NOTE* alarm calls have been preserved, so this should - * work equally well whether blocking or non-blocking - * mode is used... - * - * We don't use blocking anymore, that is impossible with the - * net.loads today anyway. Commented out the alarms to save cpu. - * --Run +/** Attempt to send a sequence of bytes to the connection. + * As a side effect, updates \a cptr's FLAG_BLOCKED setting + * and sendB/sendK fields. + * @param cptr Client that should receive data. + * @param buf Message buffer to send to client. + * @return Negative on connection-fatal error; otherwise + * number of bytes sent. */ unsigned int deliver_it(struct Client *cptr, struct MsgQ *buf) { @@ -373,18 +299,7 @@ cli_sendB(cptr) += bytes_written; cli_sendB(&me) += bytes_written; - if (cli_sendB(cptr) > 1023) { - cli_sendK(cptr) += (cli_sendB(cptr) >> 10); - cli_sendB(cptr) &= 0x03ff; /* 2^10 = 1024, 3ff = 1023 */ - } - if (cli_sendB(&me) > 1023) { - cli_sendK(&me) += (cli_sendB(&me) >> 10); - cli_sendB(&me) &= 0x03ff; - } - /* - * XXX - hrmm.. set blocked here? the socket didn't - * say it was blocked - */ + /* A partial write implies that future writes will block. */ if (bytes_written < bytes_count) SetFlag(cptr, FLAG_BLOCKED); break; @@ -399,26 +314,25 @@ return bytes_written; } - +/** Free the client's DNS reply, if any. + * @param cptr Client to operate on. + */ void release_dns_reply(struct Client* cptr) { assert(0 != cptr); assert(MyConnect(cptr)); if (cli_dns_reply(cptr)) { + MyFree(cli_dns_reply(cptr)->h_name); MyFree(cli_dns_reply(cptr)); cli_dns_reply(cptr) = 0; } } -/* - * completed_connection - * - * Complete non-blocking connect()-sequence. Check access and +/** Complete non-blocking connect()-sequence. Check access and * terminate connection, if trouble detected. - * - * Return TRUE, if successfully completed - * FALSE, if failed and ClientExit + * @param cptr Client to which we have connected, with all Confitem structs attached. + * @return Zero on failure (caller should exit_client()), non-zero on success. */ static int completed_connection(struct Client* cptr) { @@ -480,11 +394,9 @@ return (IsDead(cptr)) ? 0 : 1; } -/* - * close_connection - * - * Close the physical connection. This function must make - * MyConnect(cptr) == FALSE, and set cptr->from == NULL. +/** Close the physical connection. Side effects: MyConnect(cptr) + * becomes false and cptr->from becomes NULL. + * @param cptr Client to disconnect. */ void close_connection(struct Client *cptr) { @@ -494,22 +406,12 @@ ServerStats->is_sv++; ServerStats->is_sbs += cli_sendB(cptr); ServerStats->is_sbr += cli_receiveB(cptr); - ServerStats->is_sks += cli_sendK(cptr); - ServerStats->is_skr += cli_receiveK(cptr); ServerStats->is_sti += CurrentTime - cli_firsttime(cptr); - if (ServerStats->is_sbs > 1023) { - ServerStats->is_sks += (ServerStats->is_sbs >> 10); - ServerStats->is_sbs &= 0x3ff; - } - if (ServerStats->is_sbr > 1023) { - ServerStats->is_skr += (ServerStats->is_sbr >> 10); - ServerStats->is_sbr &= 0x3ff; - } /* * If the connection has been up for a long amount of time, schedule * a 'quick' reconnect, else reset the next-connect cycle. */ - if ((aconf = find_conf_exact(cli_name(cptr), 0, cli_sockhost(cptr), CONF_SERVER))) { + if ((aconf = find_conf_exact(cli_name(cptr), cptr, CONF_SERVE... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:05:43
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:05:11 UTC Modified files: ircd/ircd_alloc.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_relay.c ircd/ircd_reply.c ircd/ircd_signal.c ircd/ircd_snprintf.c ircd/ircd_string.c Added files: ircd/ircd_auth.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_crypt_plain.c ircd/ircd_crypt_smd5.c ircd/ircd_md5.c ircd/ircd_res.c ircd/ircd_reslib.c Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/ircd_alloc.c diff -u ircd-ircdev/ircd/ircd_alloc.c:1.2 ircd-ircdev/ircd/ircd_alloc.c:1.3 --- ircd-ircdev/ircd/ircd_alloc.c:1.2 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/ircd_alloc.c Wed Nov 24 08:05:00 2004 @@ -18,146 +18,86 @@ * 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_alloc.c,v 1.2 2004/02/22 16:11:42 zolty Exp $ - * + */ +/** @file + * @brief IRC daemon memory allocation functions. + * @version $Id: ircd_alloc.c,v 1.3 2004/11/24 16:05:00 zolty Exp $ */ #include "config.h" #include "ircd_alloc.h" #include "ircd_string.h" #include "s_debug.h" -#include <string.h> #include <assert.h> +#include <string.h> -#if !defined(MDEBUG) -/* - * RELEASE: allocation functions - */ - -static void nomem_handler(void) -{ - Debug((DEBUG_FATAL, "Out of memory, exiting")); - exit(2); -} +static void nomem_handler(void); +/** Variable holding out-of-memory callback. */ static OutOfMemoryHandler noMemHandler = nomem_handler; -void set_nomem_handler(OutOfMemoryHandler handler) -{ - noMemHandler = handler; -} - -#if defined(FROBONFREE) || defined(FROBONMALLOC) +/** Default handler for out-of-memory conditions. */ static void -memfrob(void *ptr, size_t size) -{ - unsigned char *p = ptr, *ep = p + size - 4; - while (p <= ep) - { - *(unsigned long*)p = 0xDEADBEEF; - p += 4; - } - switch (ep - p) - { - case 3: - *(unsigned short*)p = 0xDEAD; - p[2] = 0xBE; - return; - case 2: - *(unsigned short*)p = 0xDEAD; - return; - case 1: - *p++ = 0xDE; - return; - } - return; -} -#endif - -void* MyMalloc(size_t size) +nomem_handler(void) { - void* p = -#ifdef FROBONFREE - malloc(size + sizeof(size_t)); +#ifdef MDEBUG + assert(0); #else - malloc(size); -#endif - if (!p) - (*noMemHandler)(); -#ifdef FROBONFREE - *(size_t*)p = size; - p = ((size_t*)p) + 1; -#endif -#ifdef FROBONMALLOC - memfrob(p, size); + Debug((DEBUG_FATAL, "Out of memory, exiting")); + exit(2); #endif - return p; } -void* MyRealloc(void* x, size_t size) +/** Set callback function for out-of-memory conditions. */ +void +set_nomem_handler(OutOfMemoryHandler handler) { -#ifdef FROBONFREE - size_t old_size = ((size_t*)x)[-1]; - if (old_size > size) - memfrob(((char*)x) + size, old_size - size); - x = realloc(((size_t*)x) - 1, size + sizeof(size_t)); -#else - x = realloc(x, size); -#endif - if (!x) - (*noMemHandler)(); - /* Both are needed in all cases to work with realloc... */ -#if defined(FROBONMALLOC) && defined(FROBONFREE) - if (old_size < size) - memfrob(((char*)x) + old_size, size - old_size); -#endif -#ifdef FROBONFREE - *(size_t*)x = size; - x = ((size_t*)x) + 1; -#endif - return x; + noMemHandler = handler; } -void* MyCalloc(size_t nelem, size_t size) +/** Allocate memory. + * @param[in] size Number of bytes to allocate. + * @param[in] x Type of allocation (ignored). + * @param[in] y Name of file doing allocation (ignored). + * @param[in] z Line number doing allocation (ignored). + * @return Newly allocated block of memory. + */ +void* DoMalloc(size_t size, const char* x, const char* y, int z) { - void* p = -#ifdef FROBONFREE - malloc(nelem * size + sizeof(size_t)); -#else - malloc(nelem * size); -#endif - if (!p) + void* t = malloc(size); + if (!t) (*noMemHandler)(); -#ifdef FROBONFREE - *((size_t*)p) = nelem * size; - p = ((size_t*)p) + 1; -#endif - memset(p, 0, size * nelem); - return p; + return t; } -#ifdef FROBONFREE -void -MyFrobulatingFree(void *p) +/** Allocate zero-initialized memory. + * @param[in] size Number of bytes to allocate. + * @param[in] x Type of allocation (ignored). + * @param[in] y Name of file doing allocation (ignored). + * @param[in] z Line number doing allocation (ignored). + * @return Newly allocated block of memory. + */ +void* DoMallocZero(size_t size, const char* x, const char* y, int z) { - size_t *stp = (size_t*)p; - if (p == NULL) - return; - memfrob(p, stp[-1]); - free(stp - 1); + void* t = malloc(size); + if (!t) + (*noMemHandler)(); + memset(t, 0, size); + return t; } -#endif -#else /* defined(MDEBUG) */ -/* - * DEBUG: allocation functions +/** Resize an allocated block of memory. + * @param[in] orig Original block to resize. + * @param[in] size Minimum size for new block. + * @param[in] file Name of file doing reallocation (ignored). + * @param[in] line Line number doing reallocation (ignored). */ -void set_nomem_handler(OutOfMemoryHandler handler) +void* DoRealloc(void *orig, size_t size, const char *file, int line) { - assert(0 != handler); - fda_set_nomem_handler(handler); + void* t = realloc(orig, size); + if (!t) + (*noMemHandler)(); + return t; } -#endif /* defined(MDEBUG) */ - Index: ircd-ircdev/ircd/ircd_auth.c diff -u /dev/null ircd-ircdev/ircd/ircd_auth.c:1.1 --- /dev/null Wed Nov 24 08:05:12 2004 +++ ircd-ircdev/ircd/ircd_auth.c Wed Nov 24 08:05:00 2004 @@ -0,0 +1,825 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_iauth.c + * + * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004 Michael Poole <md...@tr...> + * Copyright (C) 2001 Perry Lorier <is...@co...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +/** @file + * @brief IAuth client implementation for an IRC server. + * @version $Id: ircd_auth.c,v 1.1 2004/11/24 16:05:00 zolty Exp $ + */ +#include "config.h" +#include "client.h" +#include "ircd_alloc.h" +#include "ircd_auth.h" +#include "ircd_events.h" +#include "ircd_features.h" +#include "ircd_log.h" +#include "ircd_osdep.h" +#include "ircd_snprintf.h" +#include "ircd_string.h" +#include "ircd.h" +#include "msg.h" +#include "msgq.h" +#include "res.h" +#include "s_bsd.h" +#include "s_debug.h" +#include "s_misc.h" +#include "s_user.h" +#include "send.h" + +#include <assert.h> +#include <errno.h> +#include <netdb.h> +#include <string.h> +#include <unistd.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#ifdef HAVE_STDINT_H +#include <stdint.h> +#endif + +/** Describes state of a single pending IAuth request. */ +struct IAuthRequest { + struct IAuthRequest *iar_prev; /**< previous request struct */ + struct IAuthRequest *iar_next; /**< next request struct */ + struct Client *iar_client; /**< client being authenticated */ + char iar_timed; /**< if non-zero, using parent i_request_timer */ +}; + +/** Enumeration of IAuth connection flags. */ +enum IAuthFlag +{ + IAUTH_BLOCKED, /**< socket buffer full */ + IAUTH_CONNECTED, /**< server greeting/handshake done */ + IAUTH_ABORT, /**< abort connection asap */ + IAUTH_ICLASS, /**< tell iauth about all local users */ + IAUTH_CLOSING, /**< candidate to be disposed */ + IAUTH_LAST_FLAG /**< total number of flags */ +}; +/** Declare a bitset structure indexed by IAuthFlag. */ +DECLARE_FLAGSET(IAuthFlags, IAUTH_LAST_FLAG); + +/** Describes state of an IAuth connection. */ +struct IAuth { + struct IAuthRequest i_list_head; /**< doubly linked list of requests */ + struct MsgQ i_sendQ; /**< messages queued to send */ + struct Socket i_socket; /**< connection to server */ + struct Timer i_reconn_timer; /**< when to reconnect the connection */ + struct Timer i_request_timer; /**< when the current request times out */ + struct IAuthFlags i_flags; /**< connection state/status/flags */ + struct DNSQuery i_query; /**< DNS lookup for iauth server */ + unsigned int i_recvM; /**< messages received */ + unsigned int i_sendM; /**< messages sent */ + unsigned int i_recvK; /**< kilobytes received */ + unsigned int i_sendK; /**< kilobytes sent */ + unsigned short i_recvB; /**< bytes received modulo 1024 */ + unsigned short i_sendB; /**< bytes sent modulo 1024 */ + time_t i_reconnect; /**< seconds to wait before reconnecting */ + time_t i_timeout; /**< seconds to wait for a request */ + unsigned int i_count; /**< characters used in i_buffer */ + char i_buffer[BUFSIZE+1]; /**< partial unprocessed line from server */ + char i_passwd[PASSWDLEN+1]; /**< password for connection */ + char i_host[HOSTLEN+1]; /**< iauth server hostname */ + struct irc_sockaddr i_addr; /**< iauth server ip address and port */ + struct IAuth *i_next; /**< next connection in list */ +}; + +/** Return flags element of \a iauth. */ +#define i_flags(iauth) ((iauth)->i_flags) +/** Return whether flag \a flag is set on \a iauth. */ +#define IAuthGet(iauth, flag) FlagHas(&i_flags(iauth), flag) +/** Set flag \a flag on \a iauth. */ +#define IAuthSet(iauth, flag) FlagSet(&i_flags(iauth), flag) +/** Clear flag \a flag from \a iauth. */ +#define IAuthClr(iauth, flag) FlagClr(&i_flags(iauth), flag) +/** Get blocked state for \a iauth. */ +#define i_GetBlocked(iauth) IAuthGet(iauth, IAUTH_BLOCKED) +/** Set blocked state for \a iauth. */ +#define i_SetBlocked(iauth) IAuthSet(iauth, IAUTH_BLOCKED) +/** Clear blocked state for \a iauth. */ +#define i_ClrBlocked(iauth) IAuthClr(iauth, IAUTH_BLOCKED) +/** Get connected flag for \a iauth. */ +#define i_GetConnected(iauth) IAuthGet(iauth, IAUTH_CONNECTED) +/** Set connected flag for \a iauth. */ +#define i_SetConnected(iauth) IAuthSet(iauth, IAUTH_CONNECTED) +/** Clear connected flag for \a iauth. */ +#define i_ClrConnected(iauth) IAuthClr(iauth, IAUTH_CONNECTED) +/** Get abort flag for \a iauth. */ +#define i_GetAbort(iauth) IAuthGet(iauth, IAUTH_ABORT) +/** Set abort flag for \a iauth. */ +#define i_SetAbort(iauth) IAuthSet(iauth, IAUTH_ABORT) +/** Clear abort flag for \a iauth. */ +#define i_ClrAbort(iauth) IAuthClr(iauth, IAUTH_ABORT) +/** Get IClass flag for \a iauth. */ +#define i_GetIClass(iauth) IAuthGet(iauth, IAUTH_ICLASS) +/** Set IClass flag for \a iauth. */ +#define i_SetIClass(iauth) IAuthSet(iauth, IAUTH_ICLASS) +/** Clear IClass flag for \a iauth. */ +#define i_ClrIClass(iauth) IAuthClr(iauth, IAUTH_ICLASS) +/** Get closing flag for \a iauth. */ +#define i_GetClosing(iauth) IAuthGet(iauth, IAUTH_CLOSING) +/** Set closing flag for \a iauth. */ +#define i_SetClosing(iauth) IAuthSet(iauth, IAUTH_CLOSING) +/** Clear closing flag for \a iauth. */ +#define i_ClrClosing(iauth) IAuthClr(iauth, IAUTH_CLOSING) + +/** Return head of request linked list for \a iauth. */ +#define i_list_head(iauth) ((iauth)->i_list_head) +/** Return socket event generator for \a iauth. */ +#define i_socket(iauth) ((iauth)->i_socket) +/** Return reconnect timer for \a iauth. */ +#define i_reconn_timer(iauth) ((iauth)->i_reconn_timer) +/** Return request timeout timer for \a iauth. */ +#define i_request_timer(iauth) ((iauth)->i_request_timer) +/** Return DNS query for \a iauth. */ +#define i_query(iauth) ((iauth)->i_query) +/** Return received bytes (modulo 1024) for \a iauth. */ +#define i_recvB(iauth) ((iauth)->i_recvB) +/** Return received kilobytes (modulo 1024) for \a iauth. */ +#define i_recvK(iauth) ((iauth)->i_recvK) +/** Return received megabytes for \a iauth. */ +#define i_recvM(iauth) ((iauth)->i_recvM) +/** Return sent bytes (modulo 1024) for \a iauth. */ +#define i_sendB(iauth) ((iauth)->i_sendB) +/** Return sent kilobytes (modulo 1024) for \a iauth. */ +#define i_sendK(iauth) ((iauth)->i_sendK) +/** Return sent megabytes for \a iauth. */ +#define i_sendM(iauth) ((iauth)->i_sendM) +/** Return outbound message queue for \a iauth. */ +#define i_sendQ(iauth) ((iauth)->i_sendQ) +/** Return reconnection interval for \a iauth. */ +#define i_reconnect(iauth) ((iauth)->i_reconnect) +/** Return request timeout interval for \a iauth. */ +#define i_timeout(iauth) ((iauth)->i_timeout) +/** Return length of unprocessed message data for \a iauth. */ +#define i_count(iauth) ((iauth)->i_count) +/** Return start of unprocessed message data for \a iauth. */ +#define i_buffer(iauth) ((iauth)->i_buffer) +/** Return password we send for \a iauth. */ +#define i_passwd(iauth) ((iauth)->i_passwd) +/** Return server hostname for \a iauth. */ +#define i_host(iauth) ((iauth)->i_host) +/** Return address of IAuth server for \a iauth. */ +#define i_addr(iauth) ((iauth)->i_addr) +/** Return server port for \a iauth. */ +#define i_port(iauth) ((iauth)->i_addr.port) +/** Return next IAuth connection after \a iauth. */ +#define i_next(iauth) ((iauth)->i_next) + +/** Command table entry. */ +struct IAuthCmd { + const char *iac_name; /**< Name of command. */ + void (*iac_func)(struct IAuth *iauth, int, char *[]); /**< Handler function. */ +}; + +/** Active %IAuth connection(s). */ +struct IAuth *iauth_active; + +static void iauth_write(struct IAuth *iauth); +static void iauth_reconnect(struct IAuth *iauth); +static void iauth_disconnect(struct IAuth *iauth); +static void iauth_sock_callback(struct Event *ev); +static void iauth_send_request(struct IAuth *iauth, struct IAuthRequest *iar); +static void iauth_dispose_request(struct IAuth *iauth, struct IAuthRequest *iar); +static void iauth_cmd_doneauth(struct IAuth *iauth, int argc, char *argv[]); +static void iauth_cmd_badauth(struct IAuth *iauth, int argc, char *argv[]); + +/** Table of responses we might get from the IAuth server. */ +static const struct IAuthCmd iauth_cmdtab[] = { + { "DoneAuth", iauth_cmd_doneauth }, + { "BadAuth", iauth_cmd_badauth }, + { NULL, NULL } +}; + +/** Start (or update) a connection to an %IAuth server. + * If a connection already exists for the specified server name and + * port, update it with the other parameters; otherwise allocate a new + * IAuth record. + * @param[in] host %IAuth server hostname. + * @param[in] port %IAuth server port. + * @param[in] passwd Password to send. + * @param[in] reconnect Reconnect interval. + * @param[in] timeout Request timeout interval. + * @return IAuth structure for that connection. + */ +struct IAuth *iauth_connect(char *host, unsigned short port, char *passwd, time_t reconnect, time_t timeout) +{ + struct IAuth *iauth; + + for (iauth = iauth_active; iauth; iauth = i_next(iauth)) { + if (!ircd_strncmp(i_host(iauth), host, HOSTLEN) + && (i_port(iauth) == port)) { + i_ClrClosing(iauth); + i_reconnect(iauth) = reconnect; + if (t_active(&i_reconn_timer(iauth)) && (t_expire(&i_reconn_timer(iauth)) > CurrentTime + i_reconnect(iauth))) + timer_chg(&i_reconn_timer(iauth), TT_RELATIVE, i_reconnect(iauth)); + break; + } + } + if (NULL == iauth) { + if (iauth_active && !i_GetClosing(iauth_active)) { + log_write(LS_CONFIG, L_WARNING, 0, "Creating extra active IAuth connection to %s:%d.", host, port); + } + iauth = MyCalloc(1, sizeof(*iauth)); + i_list_head(iauth).iar_prev = &i_list_head(iauth); + i_list_head(iauth).iar_next = &i_list_head(iauth); + msgq_init(&i_sendQ(iauth)); + ircd_strncpy(i_host(iauth), host, HOSTLEN); + memset(&i_addr(iauth), 0, sizeof(i_addr(iauth))); + i_port(iauth) = port; + iauth_active = iauth; + i_reconnect(iauth) = reconnect; + iauth_reconnect(iauth); + } + if (passwd) + ircd_strncpy(i_passwd(iauth), passwd, PASSWDLEN); + else + i_passwd(iauth)[0] = '\0'; + i_timeout(iauth) = timeout; + i_SetIClass(iauth); + return iauth; +} + +/** Mark all %IAuth connections as closing. */ +void iauth_mark_closing(void) +{ + struct IAuth *iauth; + for (iauth = iauth_active; iauth; iauth = i_next(iauth)) + i_SetClosing(iauth); +} + +/** Close a particular %IAuth connection. + * @param[in] iauth %Connection to close. + */ +void iauth_close(struct IAuth *iauth) +{ + /* Figure out what to do with the closing connection's requests. */ + if (i_list_head(iauth).iar_next != &i_list_head(iauth)) { + struct IAuthRequest *iar; + if (iauth_active || i_next(iauth)) { + /* If iauth_active != NULL, send requests to it; otherwise if + * i_next(iauth) != NULL, we can hope it or some later + * connection will be active. + */ + struct IAuth *target = iauth_active ? iauth_active : i_next(iauth); + + /* Append iauth->i_list_head to end of target->i_list_head. */ + iar = i_list_head(iauth).iar_next; + iar->iar_prev = i_list_head(target).iar_prev; + i_list_head(target).iar_prev->iar_next = iar; + iar = i_list_head(iauth).iar_prev; + iar->iar_next = &i_list_head(target); + i_list_head(target).iar_prev = iar; + + /* If the target is not closing, send the requests. */ + for (iar = i_list_head(iauth).iar_next; + iar != &i_list_head(target); + iar = iar->iar_next) { + if (!i_GetClosing(target)) + iauth_send_request(target, iar); + } + } else { + /* No active connections - approve the requests and drop them. */ + while ((iar = i_list_head(iauth).iar_next) != &i_list_head(iauth)) { + struct Client *client = iar->iar_client; + iauth_dispose_request(iauth, iar); + register_user(client, client, cli_name(client), cli_username(client)); + } + } + } + /* Make sure the connection closes with an empty request list. */ + i_list_head(iauth).iar_prev = &i_list_head(iauth); + i_list_head(iauth).iar_next = &i_list_head(iauth); + /* Cancel the timer, if it is active. */ + if (t_active(&i_reconn_timer(iauth))) + timer_del(&i_reconn_timer(iauth)); + if (t_active(&i_request_timer(iauth))) + timer_del(&i_request_timer(iauth)); + /* Disconnect from the server. */ + if (s_fd(&i_socket(iauth)) != -1) + iauth_disconnect(iauth); + /* Free memory. */ + MyFree(iauth); +} + +/** Close all %IAuth connections marked as closing. */ +void iauth_close_unused(void) +{ + struct IAuth *prev, *iauth, *next; + + for (prev = NULL, iauth = iauth_active; iauth; iauth = next) { + next = i_next(iauth); + if (i_GetClosing(iauth)) { + /* Update iauth_active linked list. */ + if (prev) + i_next(prev) = next; + else + iauth_active = next; + /* Close and destroy the connection. */ + iauth_close(iauth); + } else { + prev = iauth; + } + } +} + +/** Send a line to an %IAuth server. + * @param[in] iauth %Connection to send on. + * @param[in] format Format string for message. + */ +static void iauth_send(struct IAuth *iauth, const char *format, ...) +{ + va_list vl; + struct MsgBuf *mb; + + va_start(vl, format); + mb = msgq_vmake(0, format, vl); + va_end(vl); + msgq_add(&i_sendQ(iauth), mb, 0); + msgq_clean(mb); +} + +/** Report a protocol violation from the %IAuth server. + * @param[in] iauth %Connection that experienced the violation. + * @param[in] format Format string for message to operators. + */ +static void iauth_protocol_violation(struct IAuth *iauth, const char *format, ...) +{ + struct VarData vd; + assert(iauth != 0); + assert(format != 0); + vd.vd_format = format; + va_start(vd.vd_args, format); + sendwallto_group_butone(&me, WALL_DESYNCH, NULL, "IAuth protocol violation: %v", &vd); + va_end(vd.vd_args); +} + +/** Send on-connect burst to an %IAuth server. + * @param[in] iauth %Connection that has completed. + */ +static void iauth_on_connect(struct IAuth *iauth) +{ + struct IAuthRequest *iar; + if (EmptyString(i_passwd(iauth))) + iauth_send(iauth, "Server %s", cli_name(&me)); + else + iauth_send(iauth, "Server %s %s", cli_name(&me), i_passwd(iauth)); + if (i_GetIClass(iauth)) { + /* TODO: report local users to iauth */ + iauth_send(iauth, "EndUsers"); + } + i_SetConnected(iauth); + for (iar = i_list_head(iauth).iar_next; + iar != &i_list_head(iauth); + iar = iar->iar_next) + iauth_send_request(iauth, iar); + iauth_write(iauth); +} + +/** Complete disconnection of an %IAuth connection. + * @param[in] iauth %Connection to fully close. + */ +static void iauth_disconnect(struct IAuth *iauth) +{ + close(s_fd(&i_socket(iauth))); + socket_del(&i_socket(iauth)); + s_fd(&i_socket(iauth)) = -1; +} + +/** DNS completion callback for an %IAuth connection. + * @param[in] vptr Pointer to the IAuth struct. + * @param[in] he DNS reply parameters. + */ +static void iauth_dns_callback(void *vptr, struct DNSReply *he) +{ + struct IAuth *iauth = vptr; + if (!he) { + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth connection to %s failed: host lookup failed", i_host(iauth)); + } else { + memcpy(&i_addr(iauth).addr, &he->addr, sizeof(i_addr(iauth).addr)); + if (!irc_in_addr_valid(&i_addr(iauth).addr)) { + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth connection to %s failed: host came back as unresolved", i_host(iauth)); + return; + } + iauth_reconnect(iauth); + } +} + +/** Timer callback for reconnecting to %IAuth. + * @param[in] ev Timer event for reconnect. + */ +static void iauth_reconnect_ev(struct Event *ev) +{ + if (ev_type(ev) == ET_EXPIRE) + iauth_reconnect(t_data(ev_timer(ev))); +} + +/** Schedule a reconnection for \a iauth. + * @param[in] iauth %Connection that needs to be reconnected. + */ +static void iauth_schedule_reconnect(struct IAuth *iauth) +{ + struct Timer *timer; + assert(!t_active(&i_reconn_timer(iauth))); + timer = timer_init(&i_reconn_timer(iauth)); + timer_add(timer, iauth_reconnect_ev, iauth, TT_RELATIVE, i_reconnect(iauth)); +} + +/** Initiate a (re-)connection to \a iauth. + * @param[in] iauth %Connection that should be initiated. + */ +static void iauth_reconnect(struct IAuth *iauth) +{ + IOResult result; + int fd; + + Debug((DEBUG_INFO, "IAuth attempt connection to %s port %p.", i_host(iauth), i_port(iauth))); + if (!irc_in_addr_valid(&i_addr(iauth).addr) + && !ircd_aton(&i_addr(iauth).addr, i_host(iauth))) { + i_query(iauth).vptr = iauth; + i_query(iauth).callback = iauth_dns_callback; + gethost_byname(i_host(iauth), &i_query(iauth)); + return; + } + fd = os_socket(&VirtualHost, SOCK_STREAM, "IAuth"); + if (fd < 0) + return; + if (!os_set_sockbufs(fd, SERVER_TCP_WINDOW, SERVER_TCP_WINDOW)) { + close(fd); + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to set socket buffers: %s", strerror(errno)); + return; + } + result = os_connect_nonb(fd, &i_addr(iauth)); + if (result == IO_FAILURE) { + close(fd); + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to initiate connection: %s", strerror(errno)); + return; + } + if (!socket_add(&i_socket(iauth), iauth_sock_callback, iauth, + (result == IO_SUCCESS) ? SS_CONNECTED : SS_CONNECTING, + SOCK_EVENT_READABLE | SOCK_EVENT_WRITABLE, fd)) { + close(fd); + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to add socket: %s", strerror(errno)); + return; + } +} + +/** Read input from \a iauth. + * Reads up to SERVER_TCP_WINDOW bytes per pass. + * @param[in] iauth Readable connection. + */ +static void iauth_read(struct IAuth *iauth) +{ + char *src, *endp, *old_buffer, *argv[MAXPARA + 1]; + unsigned int length, argc, ii; + char readbuf[SERVER_TCP_WINDOW]; + + length = 0; + if (IO_FAILURE == os_recv_nonb(s_fd(&i_socket(iauth)), readbuf, sizeof(readbuf), &length)) + return; + i_recvB(iauth) += length; + if (i_recvB(iauth) > 1023) { + i_recvK(iauth) += i_recvB(iauth) >> 10; + i_recvB(iauth) &= 1023; + } + old_buffer = i_buffer(iauth); + endp = old_buffer + i_count(iauth); + for (src = readbuf; length > 0; --length) { + *endp = *src++; + if (IsEol(*endp)) { + /* Skip blank lines. */ + if (endp == old_buffer) + continue; + /* NUL-terminate line and split parameters. */ + *endp = '\0'; + for (argc = 0, endp = old_buffer; *endp && (argc < MAXPARA); ) { + while (*endp == ' ') + *endp++ = '\0'; + if (*endp == '\0') + break; + if (*endp == ':') + { + argv[argc++] = endp + 1; + break; + } + argv[argc++] = endp; + for (; *endp && *endp != ' '; ++endp) ; + } + argv[argc] = NULL; + /* Count line and reset endp to start of buffer. */ + i_recvM(iauth)++; + endp = old_buffer; + /* Look up command and try to dispatch. */ + if (argc > 0) { + for (ii = 0; iauth_cmdtab[ii].iac_name; ++ii) { + if (!ircd_strcmp(iauth_cmdtab[ii].iac_name, argv[0])) { + iauth_cmdtab[ii].iac_func(iauth, argc, argv); + if (i_GetAbort(iauth)) + iauth_disconnect(iauth); + break; + } + } + } + } + else if (endp < old_buffer + BUFSIZE) + endp++; + } + i_count(iauth) = endp - old_buffer; +} + +/** Send queued output to \a iauth. + * @param[in] iauth Writable connection with queued data. + */ +static void iauth_write(struct IAuth *iauth) +{ + unsigned int bytes_tried, bytes_sent; + IOResult iores; + + if (i_GetBlocked(iauth)) + return; + while (MsgQLength(&i_sendQ(iauth)) > 0) { + iores = os_sendv_nonb(s_fd(&i_socket(iauth)), &i_sendQ(iauth), &bytes_tried, &bytes_sent); + switch (iores) { + case IO_SUCCESS: + msgq_delete(&i_sendQ(iauth), bytes_sent); + i_sendB(iauth) += bytes_sent; + if (i_sendB(iauth) > 1023) { + i_sendK(iauth) += i_sendB(iauth) >> 10; + i_sendB(iauth) &= 1023; + } + if (bytes_tried == bytes_sent) + break; + /* If bytes_sent < bytes_tried, fall through to IO_BLOCKED. */ + case IO_BLOCKED: + i_SetBlocked(iauth); + socket_events(&i_socket(iauth), SOCK_ACTION_ADD | SOCK_EVENT_WRITABLE); + return; + case IO_FAILURE: + iauth_disconnect(iauth); + return; + } + } + /* We were able to flush all events, so remove notification. */ + socket_events(&i_socket(iauth), SOCK_ACTION_DEL | SOCK_EVENT_WRITABLE); +} + +/** Handle socket activity for an %IAuth connection. + * @param[in] ev &Socket event; the IAuth connection is the user data pointer for the socket. + */ +static void iauth_sock_callback(struct Event *ev) +{ + struct IAuth *iauth; + + assert(0 != ev_socket(ev)); + iauth = (struct IAuth*) s_data(ev_socket(ev)); + assert(0 != iauth); + + switch (ev_type(ev)) { + case ET_CONNECT: + socket_state(ev_socket(ev), SS_CONNECTED); + iauth_on_connect(iauth); + break; + case ET_DESTROY: + if (!i_GetClosing(iauth)) + iauth_schedule_reconnect(iauth); + break; + case ET_READ: + iauth_read(iauth); + break; + case ET_WRITE: + i_ClrBlocked(iauth); + iauth_write(iauth); + break; + case ET_EOF: + iauth_disconnect(iauth); + break; + case ET_ERROR: + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth socket error: %s", strerror(ev_data(ev))); + log_write(LS_SOCKET, L_ERROR, 0, "IAuth socket error: %s", strerror(ev_data(ev))); + iauth_disconnect(iauth); + break; + default: + assert(0 && "Unrecognized event type"); + break; + } +} + +/* Functions related to IAuthRequest structs */ + +/** Handle timeout while waiting for a response. + * @param[in] ev Timer event that expired. + */ +static void iauth_request_ev(struct Event *ev) +{ + /* TODO: this could probably be more intelligent */ + if (ev_type(ev) == ET_EXPIRE) { + sendto_opmask_butone(0, SNO_OLDSNO, "IAuth request timed out; reconnecting"); + iauth_reconnect(t_data(ev_timer(ev))); + } +} + +/** Send a authorization request to an %IAuth server. + * @param[in] iauth %Connection to send request on. + * @param[in] iar Request to send. + */ +static void iauth_send_request(struct IAuth *iauth, struct IAuthRequest *iar) +{ + struct Client *client; + + /* If iauth is not connected, we must defer the request. */ + if (!i_GetConnected(iauth)) { + Debug((DEBUG_SEND, "IAuth deferring request for %s because we are not connected.", cli_name(iar->iar_client))); + return; + } + + /* If no timed request, set up expiration timer. */ + if (!t_active(&i_request_timer(iauth))) { + struct Timer *timer = timer_init(&i_request_timer(iauth)); + timer_add(timer, iauth_request_ev, iauth, TT_RELATIVE, i_timeout(iauth)); + iar->iar_timed = 1; + } else + iar->iar_timed = 0; + + /* Send the FullAuth request. */ + client = iar->iar_client; + assert(iar->iar_client != NULL); + iauth_send(iauth, "FullAuth %x %s %s %s %s %s :%s", + client, cli_name(client), cli_username(client), + cli_user(client)->host, cli_sock_ip(client), + cli_passwd(client), cli_info(client)); + + /* Write to the socket if we can. */ + iauth_write(iauth); +} + +/** Start independent authorization check for a client. + * @param[in]... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:07:04
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:06:26 UTC Modified files: ircd/IPcheck.c ircd/Makefile.in ircd/channel.c ircd/class.c ircd/client.c ircd/crule.c ircd/dbuf.c ircd/destruct_event.c ircd/engine_devpoll.c ircd/engine_epoll.c ircd/engine_kqueue.c ircd/engine_poll.c ircd/engine_select.c ircd/fileio.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/jupe.c ircd/list.c ircd/listener.c ircd/match.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/opercmds.c ircd/os_generic.c ircd/packet.c ircd/parse.c ircd/querycmds.c ircd/random.c ircd/send.c ircd/table_gen.c ircd/uping.c ircd/userload.c ircd/version.c.SH ircd/whocmds.c ircd/whowas.c Added files: ircd/memdebug.c ircd/umkpasswd.c Removed files: ircd/chkconf.c ircd/fda.c ircd/fda_t.c ircd/iauth.c ircd/ircd_xopen.c ircd/os_bsd.c ircd/os_linux.c ircd/os_openbsd.c ircd/os_solaris.c ircd/res_adns.c ircd/res_libresolv.c ircd/support.c Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/IPcheck.c diff -u ircd-ircdev/ircd/IPcheck.c:1.4 ircd-ircdev/ircd/IPcheck.c:1.5 --- ircd-ircdev/ircd/IPcheck.c:1.4 Fri May 21 08:39:34 2004 +++ ircd-ircdev/ircd/IPcheck.c Wed Nov 24 08:06:14 2004 @@ -18,14 +18,17 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: IPcheck.c,v 1.4 2004/05/21 15:39:34 zolty Exp $ - * + */ +/** @file + * @brief Code to count users connected from particular IP addresses. + * @version $Id: IPcheck.c,v 1.5 2004/11/24 16:06:14 zolty Exp $ */ #include "config.h" #include "IPcheck.h" #include "client.h" #include "ircd.h" +#include "match.h" #include "msg.h" #include "numnicks.h" /* NumNick, NumServ (GODMODE) */ #include "ircd_alloc.h" @@ -38,67 +41,97 @@ #include <assert.h> #include <string.h> +/** Stores free target information for a particular user. */ struct IPTargetEntry { - int count; - unsigned char targets[MAXTARGETS]; + int count; /**< Number of free targets targets. */ + unsigned char targets[MAXTARGETS]; /**< Array of recent targets. */ }; +/** Stores recent information about a particular IP address. */ struct IPRegistryEntry { - struct IPRegistryEntry* next; - struct IPTargetEntry* target; - unsigned int addr; - int last_connect; - unsigned short connected; - unsigned char attempts; + struct IPRegistryEntry* next; /**< Next entry in the hash chain. */ + struct IPTargetEntry* target; /**< Recent targets, if any. */ + struct irc_in_addr addr; /**< IP address for this user. */ + int last_connect; /**< Last connection attempt timestamp. */ + unsigned short connected; /**< Number of currently connected clients. */ + unsigned char attempts; /**< Number of recent connection attempts. */ }; -/* - * Hash table for IPv4 address registry - * - * Hash table size must be a power of 2 - * Use 64K hash table to conserve memory - */ +/** Size of hash table (must be a power of two). */ #define IP_REGISTRY_TABLE_SIZE 0x10000 -#define MASK_16 0xffff - -#define NOW ((unsigned short)(CurrentTime & MASK_16)) +/** Report current time for tracking in IPRegistryEntry::last_connect. */ +#define NOW ((unsigned short)(CurrentTime & 0xffff)) +/** Time from \a x until now, in seconds. */ #define CONNECTED_SINCE(x) (NOW - (x)) +/** Macro for easy access to configured IPcheck clone limit. */ #define IPCHECK_CLONE_LIMIT feature_int(FEAT_IPCHECK_CLONE_LIMIT) +/** Macro for easy access to configured IPcheck clone period. */ #define IPCHECK_CLONE_PERIOD feature_int(FEAT_IPCHECK_CLONE_PERIOD) +/** Macro for easy access to configured IPcheck clone delay. */ #define IPCHECK_CLONE_DELAY feature_int(FEAT_IPCHECK_CLONE_DELAY) - +/** Hash table for storing IPRegistryEntry entries. */ static struct IPRegistryEntry* hashTable[IP_REGISTRY_TABLE_SIZE]; -static struct IPRegistryEntry* freeList = 0; - +/** List of allocated but unused IPRegistryEntry structs. */ +static struct IPRegistryEntry* freeList; +/** Periodic timer to look for too-old registry entries. */ static struct Timer expireTimer; -static unsigned int ip_registry_hash(unsigned int ip) -{ - return ((ip >> 16) ^ ip) & (IP_REGISTRY_TABLE_SIZE - 1); -} - -static struct IPRegistryEntry* ip_registry_find(unsigned int ip) +/** Calculate hash value for an IP address. + * If this looks like an IPv6 address, only consider the first 64 bits + * of the address. Otherwise, only consider the final 32 bits. + * @param[in] ip Address to hash. + * @return Hash value for address. + */ +static unsigned int ip_registry_hash(const struct irc_in_addr *ip) +{ + unsigned int res; + + if (ip->in6_16[0] || ip->in6_16[1] || ip->in6_16[2] || ip->in6_16[3] || ip->in6_16[4]) { + /* Only use the first 64 bits of address, since the last 64 bits + * tend to be under user control. */ + res = ip->in6_16[0] ^ ip->in6_16[1] ^ ip->in6_16[2] ^ ip->in6_16[3]; + } else { + /* Looks like an IPv4 address. */ + res = ip->in6_16[6] ^ ip->in6_16[7]; + } + return res & (IP_REGISTRY_TABLE_SIZE - 1); +} + +/** Find an IP registry entry if one exists for the IP address. + * If \a ip looks like an IPv6 address, only consider the first 64 bits + * of the address. Otherwise, only consider the final 32 bits. + * @param[in] ip IP address to search for. + * @return Matching registry entry, or NULL if none exists. + */ +static struct IPRegistryEntry* ip_registry_find(const struct irc_in_addr *ip) { struct IPRegistryEntry* entry = hashTable[ip_registry_hash(ip)]; for ( ; entry; entry = entry->next) { - if (entry->addr == ip) + int bits = (ip->in6_16[0] || ip->in6_16[1] || ip->in6_16[2] || ip->in6_16[3] || ip->in6_16[4]) ? 64 : 128; + if (ipmask_check(ip, &entry->addr, bits)) break; } return entry; } +/** Add an IP registry entry to the hash table. + * @param[in] entry Registry entry to add. + */ static void ip_registry_add(struct IPRegistryEntry* entry) { - unsigned int bucket = ip_registry_hash(entry->addr); + unsigned int bucket = ip_registry_hash(&entry->addr); entry->next = hashTable[bucket]; hashTable[bucket] = entry; } - + +/** Remove an IP registry entry from the hash table. + * @param[in] entry Registry entry to add. + */ static void ip_registry_remove(struct IPRegistryEntry* entry) { - unsigned int bucket = ip_registry_hash(entry->addr); + unsigned int bucket = ip_registry_hash(&entry->addr); if (hashTable[bucket] == entry) hashTable[bucket] = entry->next; else { @@ -111,7 +144,11 @@ } } } - + +/** Allocate a new IP registry entry. + * For members that have a sensible default value, that is used. + * @return Newly allocated registry entry. + */ static struct IPRegistryEntry* ip_registry_new_entry() { struct IPRegistryEntry* entry = freeList; @@ -128,6 +165,10 @@ return entry; } +/** Deallocate memory for \a entry. + * The entry itself is prepended to #freeList. + * @param[in] entry IP registry entry to release. + */ static void ip_registry_delete_entry(struct IPRegistryEntry* entry) { if (entry->target) @@ -136,6 +177,9 @@ freeList = entry; } +/** Update free target count for \a entry. + * @param[in,out] entry IP registry entry to update. + */ static unsigned int ip_registry_update_free_targets(struct IPRegistryEntry* entry) { unsigned int free_targets = STARTTARGETS; @@ -149,6 +193,11 @@ return free_targets; } +/** Check whether all or part of \a entry needs to be expired. + * If the entry is at least 600 seconds stale, free the entire thing. + * If it is at least 120 seconds stale, expire its free targets list. + * @param[in] entry Registry entry to check for expiration. + */ static void ip_registry_expire_entry(struct IPRegistryEntry* entry) { /* @@ -171,7 +220,9 @@ } } -/* Callback to run an expiry of the IPcheck registry */ +/** Periodic timer callback to check for expired registry entries. + * @param[in] ev Timer event (ignored). + */ static void ip_registry_expire(struct Event* ev) { int i; @@ -190,50 +241,28 @@ } } -/* - * IPcheck_init() - * - * Initializes the registry timer - */ +/** Initialize the IPcheck subsystem. */ void IPcheck_init(void) { timer_add(timer_init(&expireTimer), ip_registry_expire, 0, TT_PERIODIC, 60); } -/* - * IPcheck_local_connect - * - * Event: - * A new connection was accept()-ed with IP number `cptr->ip.s_addr'. - * - * Action: - * Update the IPcheck registry. - * Return: - * 1 : You're allowed to connect. - * 0 : You're not allowed to connect. - * - * Throttling: - * - * A connection should be rejected when a connection from the same IP number was - * received IPCHECK_CLONE_LIMIT times before this connect attempt, with - * reconnect intervals of IPCHECK_CLONE_PERIOD seconds or less. - * - * Free target inheritance: - * - * When the client is accepted, then the number of Free Targets - * of the cptr is set to the value stored in the found IPregistry - * structure, or left at STARTTARGETS. This can be done by changing - * cptr->nexttarget to be `now - (TARGET_DELAY * (FREE_TARGETS - 1))', - * where FREE_TARGETS may range from 0 till STARTTARGETS. +/** Check whether a new connection from a local client should be allowed. + * A connection is rejected if someone from the "same" address (see + * ip_registry_find()) connects IPCHECK_CLONE_LIMIT times, each time + * separated by no more than IPCHECK_CLONE_PERIOD seconds. + * @param[in] addr Address of client. + * @param[out] next_target_out Receives time to grant another free target. + * @return Non-zero if the connection is permitted, zero if denied. */ -int ip_registry_check_local(unsigned int addr, time_t* next_target_out) +int ip_registry_check_local(const struct irc_in_addr *addr, time_t* next_target_out) { struct IPRegistryEntry* entry = ip_registry_find(addr); unsigned int free_targets = STARTTARGETS; - + if (0 == entry) { entry = ip_registry_new_entry(); - entry->addr = addr; /* The IP number of registry entry */ + memcpy(&entry->addr, addr, sizeof(entry->addr)); ip_registry_add(entry); return 1; } @@ -276,20 +305,17 @@ return 1; } -/* - * IPcheck_remote_connect - * - * Event: - * A remote client connected to Undernet, with IP number `cptr->ip.s_addr' - * and hostname `hostname'. - * - * Action: - * Update the IPcheck registry. - * Return 0 on failure, 1 on success. +/** Check whether a connection from a remote client should be allowed. + * This is much more relaxed than ip_registry_check_local(): The only + * cause for rejection is when the IPRegistryEntry::connected counter + * would overflow. + * @param[in] cptr Client that has connected. + * @param[in] is_burst Non-zero if client was introduced during a burst. + * @return Non-zero if the client should be accepted, zero if they must be killed. */ int ip_registry_check_remote(struct Client* cptr, int is_burst) { - struct IPRegistryEntry* entry = ip_registry_find((cli_ip(cptr)).s_addr); + struct IPRegistryEntry* entry = ip_registry_find(&cli_ip(cptr)); /* * Mark that we did add/update an IPregistry entry @@ -297,7 +323,7 @@ SetIPChecked(cptr); if (0 == entry) { entry = ip_registry_new_entry(); - entry->addr = (cli_ip(cptr)).s_addr; + memcpy(&entry->addr, &cli_ip(cptr), sizeof(entry->addr)); if (is_burst) entry->attempts = 0; ip_registry_add(entry); @@ -325,40 +351,32 @@ return 1; } -/* - * IPcheck_connect_fail - * - * Event: - * This local client failed to connect due to legal reasons. - * - * Action: - * Neutralize the effect of calling IPcheck_local_connect, in such - * a way that the client won't be penalized when trying to reconnect - * again. +/** Handle a client being rejected during connection through no fault + * of their own. This "undoes" the effect of ip_registry_check_local() + * so the client's address is not penalized for the failure. + * @param[in] addr Address of rejected client. */ -void ip_registry_connect_fail(unsigned int addr) +void ip_registry_connect_fail(const struct irc_in_addr *addr) { struct IPRegistryEntry* entry = ip_registry_find(addr); - if (entry) + if (entry) { if (0 == --entry->attempts) - ++entry->attempts; /* check for overflow */ + ++entry->attempts; } } -/* - * IPcheck_connect_succeeded - * - * Event: - * A client succeeded to finish the registration. - * - * Finish IPcheck registration of a successfully, locally connected client. +/** Handle a client that has successfully connected. + * This copies free target information to \a cptr from his address's + * registry entry and sends him a NOTICE describing the parameters for + * the entry. + * @param[in,out] cptr Client that has successfully connected. */ void ip_registry_connect_succeeded(struct Client *cptr) { const char* tr = ""; unsigned int free_targets = STARTTARGETS; - struct IPRegistryEntry* entry = ip_registry_find((cli_ip(cptr)).s_addr); + struct IPRegistryEntry* entry = ip_registry_find(&cli_ip(cptr)); if (!entry) { Debug((DEBUG_ERROR, "Missing registry entry for: %s", cli_sock_ip(cptr))); @@ -374,20 +392,14 @@ free_targets, STARTTARGETS, tr); } -/* - * IPcheck_disconnect - * - * Event: - * A local client disconnected or a remote client left Undernet. - * - * Action: - * Update the IPcheck registry. - * Remove all expired IPregistry structures from the hash bucket - * that belongs to this clients IP number. +/** Handle a client that decided to disconnect (or was killed after + * completing his connection). This updates the free target + * information for his IP registry entry. + * @param[in] cptr Client that has exited. */ void ip_registry_disconnect(struct Client *cptr) { - struct IPRegistryEntry* entry = ip_registry_find((cli_ip(cptr)).s_addr); + struct IPRegistryEntry* entry = ip_registry_find(&cli_ip(cptr)); if (0 == entry) { /* * trying to find an entry for a server causes this to happen, @@ -458,59 +470,31 @@ } } -/* - * IPcheck_nr - * - * Returns number of clients with the same IP number +/** Find number of clients from a particular IP address. + * @param[in] addr Address to look up. + * @return Number of clients known to be connected from that address. */ -int ip_registry_count(unsigned int addr) +int ip_registry_count(const struct irc_in_addr *addr) { struct IPRegistryEntry* entry = ip_registry_find(addr); return (entry) ? entry->connected : 0; } -/* - * IPcheck_local_connect - * - * Event: - * A new connection was accept()-ed with IP number `cptr->ip.s_addr'. - * - * Action: - * Update the IPcheck registry. - * Return: - * 1 : You're allowed to connect. - * 0 : You're not allowed to connect. - * - * Throttling: - * - * A connection should be rejected when a connection from the same IP number was - * received IPCHECK_CLONE_LIMIT times before this connect attempt, with - * reconnect intervals of IPCHECK_CLONE_PERIOD seconds or less. - * - * Free target inheritance: - * - * When the client is accepted, then the number of Free Targets - * of the cptr is set to the value stored in the found IPregistry - * structure, or left at STARTTARGETS. This can be done by changing - * cptr->nexttarget to be `now - (TARGET_DELAY * (FREE_TARGETS - 1))', - * where FREE_TARGETS may range from 0 till STARTTARGETS. +/** Check whether a client is allowed to connect locally. + * @param[in] a Address of client. + * @param[out] next_target_out Receives time to grant another free target. + * @return Non-zero if the connection is permitted, zero if denied. */ -int IPcheck_local_connect(struct in_addr a, time_t* next_target_out) +int IPcheck_local_connect(const struct irc_in_addr *a, time_t* next_target_out) { assert(0 != next_target_out); - return ip_registry_check_local(a.s_addr, next_target_out); + return ip_registry_check_local(a, next_target_out); } -/* - * IPcheck_remote_connect - * - * Event: - * A remote client connected to Undernet, with IP number `cptr->ip.s_addr' - * and hostname `hostname'. - * - * Action: - * Update the IPcheck registry. - * Return 0 on failure, 1 on success. +/** Check whether a client is allowed to connect remotely. + * @param[in] cptr Client that has connected. + * @param[in] is_burst Non-zero if client was introduced during a burst. + * @return Non-zero if the client should be accepted, zero if they must be killed. */ int IPcheck_remote_connect(struct Client *cptr, int is_burst) { @@ -518,29 +502,21 @@ return ip_registry_check_remote(cptr, is_burst); } -/* - * IPcheck_connect_fail - * - * Event: - * This local client failed to connect due to legal reasons. - * - * Action: - * Neutralize the effect of calling IPcheck_local_connect, in such - * a way that the client won't be penalized when trying to reconnect - * again. - */ -void IPcheck_connect_fail(struct in_addr a) -{ - ip_registry_connect_fail(a.s_addr); -} - -/* - * IPcheck_connect_succeeded - * - * Event: - * A client succeeded to finish the registration. - * - * Finish IPcheck registration of a successfully, locally connected client. +/** Handle a client being rejected during connection through no fault + * of their own. This "undoes" the effect of ip_registry_check_local() + * so the client's address is not penalized for the failure. + * @param[in] a Address of rejected client. + */ +void IPcheck_connect_fail(const struct irc_in_addr *a) +{ + ip_registry_connect_fail(a); +} + +/** Handle a client that has successfully connected. + * This copies free target information to \a cptr from his address's + * registry entry and sends him a NOTICE describing the parameters for + * the entry. + * @param[in,out] cptr Client that has successfully connected. */ void IPcheck_connect_succeeded(struct Client *cptr) { @@ -548,16 +524,10 @@ ip_registry_connect_succeeded(cptr); } -/* - * IPcheck_disconnect - * - * Event: - * A local client disconnected or a remote client left Undernet. - * - * Action: - * Update the IPcheck registry. - * Remove all expired IPregistry structures from the hash bucket - * that belongs to this clients IP number. +/** Handle a client that decided to disconnect (or was killed after + * completing his connection). This updates the free target + * information for his IP registry entry. + * @param[in] cptr Client that has exited. */ void IPcheck_disconnect(struct Client *cptr) { @@ -565,13 +535,12 @@ ip_registry_disconnect(cptr); } -/* - * IPcheck_nr - * - * Returns number of clients with the same IP number +/** Find number of clones of a client. + * @param[in] cptr Client whose address to look up. + * @return Number of clients known to be connected from that address. */ unsigned short IPcheck_nr(struct Client *cptr) { assert(0 != cptr); - return ip_registry_count(cli_ip(cptr).s_addr); + return ip_registry_count(&cli_ip(cptr)); } Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.12 ircd-ircdev/ircd/Makefile.in:1.13 --- ircd-ircdev/ircd/Makefile.in:1.12 Wed Nov 17 03:45:49 2004 +++ ircd-ircdev/ircd/Makefile.in Wed Nov 24 08:06:14 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: Makefile.in,v 1.12 2004/11/17 11:45:49 zolty Exp $ +# $Id: Makefile.in,v 1.13 2004/11/24 16:06:14 zolty Exp $ #### Start of system configuration section. #### @@ -35,8 +35,6 @@ RM = @RMPROG@ AWK = @AWK@ LN_S = @LN_S@ -LEX = @LEX@ -YACC = @YACC@ MV = mv CHMOD = chmod CHOWN = chown @@ -44,9 +42,9 @@ MKDIR = mkdir TOUCH = touch GREP = grep -OSDEP_C = @OSDEP_C@ +LEX = @LEX@ +YACC = @YACC@ ENGINE_C = @ENGINE_C@ -RES_C = @RES_C@ @SET_MAKE@ BINDIR = @bindir@ @@ -62,7 +60,6 @@ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = -I. -I.. -I${top_srcdir}/include @CPPFLAGS@ -#CPPFLAGS = -I. -I.. -I${top_srcdir}/include -I${top_srcdir}/libs/adns/src @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ @@ -70,13 +67,6 @@ PURIFY = RINGLOG_O = -OSDEP_SRC = \ - os_bsd.c \ - os_linux.c \ - os_openbsd.c \ - os_generic.c \ - os_solaris.c - ENGINE_SRC = \ engine_devpoll.c \ engine_epoll.c \ @@ -84,9 +74,16 @@ engine_kqueue.c \ engine_select.c -RES_SRC = \ - res_adns.c \ - res_libresolv.c +CRYPTO_SRC = \ + ircd_md5.c \ + ircd_crypt_plain.c \ + ircd_crypt_smd5.c \ + ircd_crypt_native.c + +UMKPASSWD_SRC = ${CRYPTO_SRC} \ + ircd_alloc.c \ + ircd_string.c \ + umkpasswd.c IRCD_SRC = \ IPcheck.c \ @@ -97,22 +94,24 @@ dbuf.c \ ddb.c \ destruct_event.c \ - fda.c \ fileio.c \ gline.c \ hash.c \ ircd.c \ ircd_alloc.c \ + ircd_auth.c \ + ircd_crypt.c \ ircd_events.c \ ircd_features.c \ ircd_log.c \ ircd_relay.c \ ircd_reply.c \ + ircd_res.c \ + ircd_reslib.c \ ircd_signal.c \ ircd_snprintf.c \ ircd_string.c \ ircd_tea.c \ - ircd_xopen.c \ jupe.c \ lex.yy.c \ list.c \ @@ -194,10 +193,12 @@ m_whois.c \ m_whowas.c \ match.c \ + memdebug.c \ motd.c \ msgq.c \ numnicks.c \ opercmds.c \ + os_generic.c \ packet.c \ parse.c \ querycmds.c \ @@ -213,7 +214,6 @@ s_stats.c \ s_user.c \ send.c \ - support.c \ uping.c \ userload.c \ watch.c \ @@ -221,13 +221,13 @@ whowas.c \ y.tab.c -CHKCONF_SRC = chkconf.c - -SRC = ${IRCD_SRC} ${OSDEP_C} ${ENGINE_C} ${RES_C} +SRC = ${IRCD_SRC} ${ENGINE_C} ${CRYPTO_SRC} OBJS = ${SRC:%.c=%.o} -DEP_SRC = ${IRCD_SRC} ${OSDEP_SRC} ${ENGINE_SRC} ${CHKCONF_SRC} +UMKPASSWD_OBJS = ${UMKPASSWD_SRC:%.c=%.o} + +DEP_SRC = ${IRCD_SRC} ${ENGINE_SRC} ${CRYPTO_SRC} all: ( cd ..; make -f Makefile ) @@ -240,7 +240,7 @@ build: ircd ircd: ${OBJS} ../include/patchlevel.h version.o - ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} ${OBJS} version.o ${RINGLOG_O} ${LDFLAGS} ${LIBS} \ + ${PURIFY} ${CC} ${OBJS} version.o ${RINGLOG_O} ${LDFLAGS} ${LIBS} \ -o ircd ${CHMOD} ${IRCDMODE} ircd @@ -254,14 +254,13 @@ # must be a better solution...perhaps sum all of the .c files and include # only that one sum? # -version.c: version.c.SH s_serv.c s_user.c channel.c s_bsd.c s_misc.c ircd.c \ - ../include/version.h ../include/patchlevel.h - ${SHELL} ${srcdir}/version.c.SH ${srcdir} +version.c: version.c.SH umkpasswd + ${SHELL} ${srcdir}/version.c.SH ${top_srcdir} ircd_string.o: ircd_string.c chattr.tab.c table_gen: table_gen.o - ${CC} ${CFLAGS} ${LDFLAGS} -o $@ table_gen.o + ${CC} ${LDFLAGS} -o $@ table_gen.o chattr.tab.c: table_gen ./table_gen > chattr.tab.c @@ -272,13 +271,8 @@ y.tab.c y.tab.h: ircd_parser.y ${YACC} -d ${srcdir}/ircd_parser.y -chkcrule.o: crule.c - ${CC} ${CFLAGS} ${CPPFLAGS} -DCR_CHKCONF -o chkcrule.o -c \ - ${srcdir}/crule.c - -chkconf: chkconf.o fda.o match.o chkcrule.o ircd_alloc.o fileio.o ircd_string.o - ${CC} chkconf.o fda.o match.o chkcrule.o ircd_alloc.o fileio.o \ - ircd_string.o ${CFLAGS} ${LDFLAGS} ${LIBS} -o chkconf +umkpasswd: ${UMKPASSWD_OBJS} + ${CC} ${LDFLAGS} ${UMKPASSWD_OBJS} ${LIBS} -o $@ mkbindir: @test -d ${BINDIR} || mkdir ${BINDIR} @@ -300,8 +294,9 @@ ${RM} -f ${SYMLINK}; \ ${LN_S} ircd.`cat /tmp/ircd.tag` ${SYMLINK}; ) @${RM} /tmp/ircd.tag -# ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} chkconf ${BINDIR} + ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} umkpasswd ${BINDIR} ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/ircd.sample-en.conf ${DPATH} + ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/ircd.sample-es.conf ${DPATH} # ( cd ${DPATH}; \ # ${TOUCH} ${MPATH}; \ # ${TOUCH} ${RPATH}; \ @@ -318,8 +313,8 @@ fi @echo "Installing new ircd as ${BINDIR}/ircd :" ${INSTALL} -m ${IRCDMODE} -o ${IRCDOWN} -g ${IRCDGRP} ircd ${BINDIR}/ircd -# ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} chkconf ${BINDIR} - ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/en/ircd.sample-en.conf ${DPATH} + ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/ircd.sample-en.conf ${DPATH} + ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/ircd.sample-es.conf ${DPATH} # ( cd ${DPATH}; \ # ${TOUCH} ${MPATH}; \ # ${TOUCH} ${RPATH}; \ @@ -328,13 +323,13 @@ uninstall: @if [ "${BINDIR}" != "${DPATH}" ]; then \ - echo "${RM} -f ${BINDIR}/${SYMLINK} ${BINDIR}/ircd.9* ${BINDIR}/chkconf"; \ - ${RM} -f ${BINDIR}/${SYMLINK} ${BINDIR}/ircd.9* ${BINDIR}/chkconf; \ + echo "${RM} -f ${BINDIR}/${SYMLINK} ${BINDIR}/ircd.9*"; \ + ${RM} -f ${BINDIR}/${SYMLINK} ${BINDIR}/ircd.9*; \ fi @echo "Please remove the contents of ${DPATH} manually" clean: - ${RM} -f *.o *.bak ircd version.c chkconf ircd_osdep.c chattr.tab.c table_gen y.tab.* lex.yy.* + ${RM} -f *.o *.bak ircd version.c umkpasswd ircd_osdep.c chattr.tab.c table_gen y.tab.* lex.yy.* distclean: clean ${RM} -f Makefile stamp-m @@ -371,7 +366,7 @@ # ../config/config.h: # @cd ../config; ${MAKE} config.h -# DO NOT DELETE THIS LINE -- make depend depends on it. +# DO NOT DELETE THIS LINE (or the blank line after it) -- make depend depends on them. IPcheck.o: IPcheck.c ../config.h ../include/IPcheck.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ @@ -390,7 +385,7 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/querycmds.h ../include/s_bsd.h ../include/s_conf.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/support.h ../include/sys.h \ + ../include/send.h ../include/sys.h \ ../include/whowas.h class.o: class.c ../config.h ../include/class.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ @@ -430,7 +425,7 @@ ../include/ircd_snprintf.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/numeric.h \ ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/s_stats.h ../include/send.h ../include/support.h \ + ../include/s_stats.h ../include/send.h \ ../include/msg.h ../include/numnicks.h ../include/sys.h \ ../include/whocmds.h hash.o: hash.c ../config.h ../include/hash.h ../include/client.h \ @@ -438,7 +433,7 @@ ../include/ircd_events.h ../include/ircd_handler.h ../include/channel.h \ ../include/ircd_chattr.h ../include/ircd_string.h ../include/ircd.h \ ../include/struct.h ../include/msg.h ../include/send.h \ - ../include/support.h ../include/sys.h ../include/watch.h + ../include/sys.h ../include/watch.h ircd.o: ircd.c ../config.h ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/IPcheck.h ../include/class.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ @@ -471,7 +466,7 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/random.h ../include/s_bsd.h ../include/s_debug.h \ ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/support.h ../include/sys.h ../include/whowas.h + ../include/sys.h ../include/whowas.h ircd_log.o: ircd_log.c ../config.h ../include/ircd_log.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ @@ -506,7 +501,6 @@ ../include/ircd_chattr.h ../include/ircd_defs.h ../include/ircd_log.h \ chattr.tab.c ircd_tea.o: ircd_tea.c ../config.h -ircd_xopen.o: ircd_xopen.c ../config.h ../include/ircd_xopen.h jupe.o: jupe.c ../config.h ../include/jupe.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/hash.h \ @@ -515,7 +509,7 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ - ../include/s_misc.h ../include/send.h ../include/support.h \ + ../include/s_misc.h ../include/send.h \ ../include/sys.h lex.yy.o: lex.yy.c ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h y.tab.h @@ -527,7 +521,7 @@ ../include/match.h ../include/numeric.h ../include/res.h \ ../include/s_auth.h ../include/s_bsd.h ../include/s_conf.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/support.h ../include/whowas.h + ../include/send.h ../include/whowas.h listener.o: listener.c ../config.h ../include/listener.h \ ../include/ircd_defs.h ../include/ircd_events.h ../include/client.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h \ @@ -567,7 +561,7 @@ ../include/ircd_chattr.h ../include/ircd_snprintf.h ../include/list.h \ ../include/match.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_conf.h ../include/s_misc.h \ - ../include/send.h ../include/support.h + ../include/send.h m_clearmode.o: m_clearmode.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/channel.h \ @@ -576,7 +570,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/list.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_conf.h \ - ../include/send.h ../include/support.h + ../include/send.h m_close.o: m_close.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/ircd.h \ @@ -661,7 +655,7 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_conf.h ../include/s_misc.h ../include/send.h \ - ../include/support.h + ... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:10:42
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:10:11 UTC Added files: include/ircd_md5.h Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/include/ircd_md5.h diff -u /dev/null ircd-ircdev/include/ircd_md5.h:1.1 --- /dev/null Wed Nov 24 08:10:28 2004 +++ ircd-ircdev/include/ircd_md5.h Wed Nov 24 08:10:01 2004 @@ -0,0 +1,62 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_md5.h + * + * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002 hikari + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +/* + * This code implements the MD5 message-digest algorithm. + * The algorithm is due to Ron Rivest. This code was + * written by Colin Plumb in 1993, no copyright is claimed. + * This code is in the public domain; do with it what you wish. + * + * Equivalent code is available from RSA Data Security, Inc. + * This code has been tested against that, and is equivalent, + * except that you don't need to include two pages of legalese + * with every copy. + * + * ircuified 2002 by hikari + */ +/** @file + * @brief MD5 implementation for ircu. + * @version $Id: ircd_md5.h,v 1.1 2004/11/24 16:10:01 zolty Exp $ + */ +#ifndef ircd_md5_h +#define ircd_md5_h + +/** Typedef for an unsigned 32-bit integer. */ +typedef unsigned int uint32; + +/** MD5 context structure. */ +struct MD5Context { + uint32 buf[4]; /**< Current digest state/value. */ + uint32 bits[2]; /**< Number of bits hashed so far. */ + unsigned char in[64]; /**< Residual input buffer. */ +}; + +void MD5Init(struct MD5Context *); +void MD5Update(struct MD5Context *, unsigned const char *, unsigned); +void MD5Final(unsigned char digest[16], struct MD5Context *); +void MD5Transform(uint32 buf[4], uint32 const in[16]); + +char *crypt_md5(const char *pw, const char *salt); + +/** Helper typedef for the MD5 context structure. */ +typedef struct MD5Context MD5_CTX; + +#endif /* ircd_md5_h */ ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-11-24 16:11:56
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:11:41 UTC Modified files: ChangeLog ChangeLog.es Makefile.in acinclude.m4 aclocal.m4 config.h.in configure configure.in Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.13 ircd-ircdev/ChangeLog:1.14 --- ircd-ircdev/ChangeLog:1.13 Wed Nov 17 03:45:48 2004 +++ ircd-ircdev/ChangeLog Wed Nov 24 08:11:30 2004 @@ -1,10 +1,16 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.13 2004/11/17 11:45:48 zolty Exp $ +# $Id: ChangeLog,v 1.14 2004/11/24 16:11:30 zolty Exp $ # # Insert new changes at beginning of the change list. # +2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 + * Doxygen commentarys + * Silence exceptions + * IPv6 full support + * Undernet synchronization + 2004-11-17 Toni García <zo...@ir...> 1.0.alpha12 * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.13 ircd-ircdev/ChangeLog.es:1.14 --- ircd-ircdev/ChangeLog.es:1.13 Wed Nov 17 03:45:48 2004 +++ ircd-ircdev/ChangeLog.es Wed Nov 24 08:11:30 2004 @@ -1,12 +1,18 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.13 2004/11/17 11:45:48 zolty Exp $ +# $Id: ChangeLog.es,v 1.14 2004/11/24 16:11:30 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 + * Comentarios para Doxygen + * Excepciones de Silences + * Soporte total de IPv6 + * Sincronizacion Undernet + 2004-11-17 Toni García <zo...@ir...> 1.0.alpha12 - * Sincronizacion Undernet + * Sincronizacion Undernet 2004-11-16 Toni García <zo...@ir...> 1.0.alpha11 * IRCD IRC-Dev Ha Vuelto!! @@ -24,6 +30,7 @@ * Fix de warnings de compilacion * Comando USERS * Sincronizacion Undernet + 2004-04-23 Roberto Muñoz <r5...@te...> * Soporte @+ en WHOIS, WHO y NAMES Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.4 ircd-ircdev/Makefile.in:1.5 --- ircd-ircdev/Makefile.in:1.4 Fri May 21 08:39:33 2004 +++ ircd-ircdev/Makefile.in Wed Nov 24 08:11:30 2004 @@ -26,12 +26,11 @@ SHELL = @SHPROG@ RM = @RMPROG@ AWK = @AWK@ -adns_subdir = @ADNS_SUBDIR@ @SET_MAKE@ #### End of system configuration section. #### -SUBDIRS = doc ${adns_subdir} ircd -IRCD_MAKEFILES = Makefile doc/Makefile libs/adns/Makefile ircd/Makefile +SUBDIRS = doc ircd +IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile all: build Index: ircd-ircdev/acinclude.m4 diff -u ircd-ircdev/acinclude.m4:1.1.1.1 ircd-ircdev/acinclude.m4:1.2 --- ircd-ircdev/acinclude.m4:1.1.1.1 Mon Sep 8 03:34:25 2003 +++ ircd-ircdev/acinclude.m4 Wed Nov 24 08:11:30 2004 @@ -55,7 +55,7 @@ exit(1); }], unet_cv_sys_nonblocking_posix=yes, unet_cv_sys_nonblocking_posix=no)]) if test $unet_cv_sys_nonblocking_posix = yes; then - AC_DEFINE(NBLOCK_POSIX) + AC_DEFINE([NBLOCK_POSIX],,[Define if you have POSIX non-blocking sockets.]) else AC_CACHE_CHECK([for bsd non-blocking], unet_cv_sys_nonblocking_bsd, [AC_TRY_RUN([#include <sys/types.h> @@ -82,9 +82,9 @@ exit(1); }], unet_cv_sys_nonblocking_bsd=yes, unet_cv_sys_nonblocking_bsd=no)]) if test $unet_cv_sys_nonblocking_bsd = yes; then - AC_DEFINE(NBLOCK_BSD) + AC_DEFINE([NBLOCK_BSD],,[Define if you have BSD non-blocking sockets.]) else - AC_DEFINE(NBLOCK_SYSV) + AC_DEFINE([NBLOCK_SYSV],,[Define if you have SysV non-blocking sockets.]) fi fi]) @@ -102,7 +102,7 @@ [sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L)], unet_cv_sys_signal_posix=yes, unet_cv_sys_signal_posix=no)]) if test $unet_cv_sys_signal_posix = yes; then - AC_DEFINE(POSIX_SIGNALS) + AC_DEFINE([POSIX_SIGNALS],,[Define if you have POSIX signals.]) else AC_CACHE_CHECK([for bsd reliable signals], unet_cv_sys_signal_bsd, [AC_TRY_RUN([#include <signal.h> @@ -121,9 +121,9 @@ exit (0); }], unet_cv_sys_signal_bsd=yes, unet_cv_sys_signal_bsd=no)]) if test $unet_cv_sys_signal_bsd = yes; then - AC_DEFINE(BSD_RELIABLE_SIGNALS) + AC_DEFINE([BSD_RELIABLE_SIGNALS],,[Define if you have (reliable) BSD signals.]) else - AC_DEFINE(SYSV_UNRELIABLE_SIGNALS) + AC_DEFINE([SYSV_UNRELIABLE_SIGNALS],,[Define if you have (unreliable) SysV signals.]) fi fi]) @@ -138,26 +138,37 @@ AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(void *) +AC_CHECK_SIZEOF(int64_t) +AC_CHECK_SIZEOF(long long) if test "$ac_cv_sizeof_int" = 2 ; then AC_CHECK_TYPE(int16_t, int) - AC_CHECK_TYPE(u_int16_t, unsigned int) + AC_CHECK_TYPE(uint16_t, unsigned int) elif test "$ac_cv_sizeof_short" = 2 ; then AC_CHECK_TYPE(int16_t, short) - AC_CHECK_TYPE(u_int16_t, unsigned short) + AC_CHECK_TYPE(uint16_t, unsigned short) else AC_MSG_ERROR([Cannot find a type with size of 16 bits]) fi if test "$ac_cv_sizeof_int" = 4 ; then AC_CHECK_TYPE(int32_t, int) - AC_CHECK_TYPE(u_int32_t, unsigned int) + AC_CHECK_TYPE(uint32_t, unsigned int) elif test "$ac_cv_sizeof_short" = 4 ; then AC_CHECK_TYPE(int32_t, short) - AC_CHECK_TYPE(u_int32_t, unsigned short) + AC_CHECK_TYPE(uint32_t, unsigned short) elif test "$ac_cv_sizeof_long" = 4 ; then AC_CHECK_TYPE(int32_t, long) - AC_CHECK_TYPE(u_int32_t, unsigned long) + AC_CHECK_TYPE(uint32_t, unsigned long) else AC_MSG_ERROR([Cannot find a type with size of 32 bits]) +fi +if test "$ac_cv_sizeof_int64_t" = 8 ; then + AC_CHECK_TYPE(int64_t) + AC_CHECK_TYPE(uint64_t) +elif test "$ac_cv_sizeof_long_long" = 8 ; then + AC_CHECK_TYPE(int64_t, long long) + AC_CHECK_TYPE(uint64_t, unsigned long long) +else + AC_MSG_ERROR([Cannot find a type with size of 64 bits]) fi]) dnl Written by John Hawkinson <jh...@mi...>. This code is in the Public Index: ircd-ircdev/aclocal.m4 diff -u ircd-ircdev/aclocal.m4:1.2 ircd-ircdev/aclocal.m4:1.3 --- ircd-ircdev/aclocal.m4:1.2 Sat Nov 1 09:19:35 2003 +++ ircd-ircdev/aclocal.m4 Wed Nov 24 08:11:30 2004 @@ -1,6 +1,6 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p4 +dnl aclocal.m4 generated automatically by aclocal 1.4-p6 -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -67,7 +67,7 @@ exit(1); }], unet_cv_sys_nonblocking_posix=yes, unet_cv_sys_nonblocking_posix=no)]) if test $unet_cv_sys_nonblocking_posix = yes; then - AC_DEFINE(NBLOCK_POSIX) + AC_DEFINE([NBLOCK_POSIX],,[Define if you have POSIX non-blocking sockets.]) else AC_CACHE_CHECK([for bsd non-blocking], unet_cv_sys_nonblocking_bsd, [AC_TRY_RUN([#include <sys/types.h> @@ -94,9 +94,9 @@ exit(1); }], unet_cv_sys_nonblocking_bsd=yes, unet_cv_sys_nonblocking_bsd=no)]) if test $unet_cv_sys_nonblocking_bsd = yes; then - AC_DEFINE(NBLOCK_BSD) + AC_DEFINE([NBLOCK_BSD],,[Define if you have BSD non-blocking sockets.]) else - AC_DEFINE(NBLOCK_SYSV) + AC_DEFINE([NBLOCK_SYSV],,[Define if you have SysV non-blocking sockets.]) fi fi]) @@ -114,7 +114,7 @@ [sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L)], unet_cv_sys_signal_posix=yes, unet_cv_sys_signal_posix=no)]) if test $unet_cv_sys_signal_posix = yes; then - AC_DEFINE(POSIX_SIGNALS) + AC_DEFINE([POSIX_SIGNALS],,[Define if you have POSIX signals.]) else AC_CACHE_CHECK([for bsd reliable signals], unet_cv_sys_signal_bsd, [AC_TRY_RUN([#include <signal.h> @@ -133,9 +133,9 @@ exit (0); }], unet_cv_sys_signal_bsd=yes, unet_cv_sys_signal_bsd=no)]) if test $unet_cv_sys_signal_bsd = yes; then - AC_DEFINE(BSD_RELIABLE_SIGNALS) + AC_DEFINE([BSD_RELIABLE_SIGNALS],,[Define if you have (reliable) BSD signals.]) else - AC_DEFINE(SYSV_UNRELIABLE_SIGNALS) + AC_DEFINE([SYSV_UNRELIABLE_SIGNALS],,[Define if you have (unreliable) SysV signals.]) fi fi]) @@ -150,26 +150,37 @@ AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(void *) +AC_CHECK_SIZEOF(int64_t) +AC_CHECK_SIZEOF(long long) if test "$ac_cv_sizeof_int" = 2 ; then AC_CHECK_TYPE(int16_t, int) - AC_CHECK_TYPE(u_int16_t, unsigned int) + AC_CHECK_TYPE(uint16_t, unsigned int) elif test "$ac_cv_sizeof_short" = 2 ; then AC_CHECK_TYPE(int16_t, short) - AC_CHECK_TYPE(u_int16_t, unsigned short) + AC_CHECK_TYPE(uint16_t, unsigned short) else AC_MSG_ERROR([Cannot find a type with size of 16 bits]) fi if test "$ac_cv_sizeof_int" = 4 ; then AC_CHECK_TYPE(int32_t, int) - AC_CHECK_TYPE(u_int32_t, unsigned int) + AC_CHECK_TYPE(uint32_t, unsigned int) elif test "$ac_cv_sizeof_short" = 4 ; then AC_CHECK_TYPE(int32_t, short) - AC_CHECK_TYPE(u_int32_t, unsigned short) + AC_CHECK_TYPE(uint32_t, unsigned short) elif test "$ac_cv_sizeof_long" = 4 ; then AC_CHECK_TYPE(int32_t, long) - AC_CHECK_TYPE(u_int32_t, unsigned long) + AC_CHECK_TYPE(uint32_t, unsigned long) else AC_MSG_ERROR([Cannot find a type with size of 32 bits]) +fi +if test "$ac_cv_sizeof_int64_t" = 8 ; then + AC_CHECK_TYPE(int64_t) + AC_CHECK_TYPE(uint64_t) +elif test "$ac_cv_sizeof_long_long" = 8 ; then + AC_CHECK_TYPE(int64_t, long long) + AC_CHECK_TYPE(uint64_t, unsigned long long) +else + AC_MSG_ERROR([Cannot find a type with size of 64 bits]) fi]) dnl Written by John Hawkinson <jh...@mi...>. This code is in the Public @@ -226,825 +237,6 @@ AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) ]) -# lib-prefix.m4 serial 3 (gettext-0.12.2) -dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -# lib-link.m4 serial 4 (gettext-0.12) -dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - undefine([Name]) - undefine([NAME]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - undefine([Name]) - undefine([NAME]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, -dnl hardcode_direct, hardcode_minus_L. -AC_DEFUN([AC_LIB_RPATH], -[ - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE(rpath, - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib$1-prefix], -[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib - --without-lib$1-prefix don't search for lib$1 in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if ... [truncated message content] |
From: Toni G. <zo...@us...> - 2004-11-24 16:13:49
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:13:37 UTC Modified files: Doxyfile .cvsignore Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences * Soporte total de IPv6 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/.cvsignore diff -u ircd-ircdev/.cvsignore:1.2 ircd-ircdev/.cvsignore:1.3 --- ircd-ircdev/.cvsignore:1.2 Sat Nov 1 09:19:35 2003 +++ ircd-ircdev/.cvsignore Wed Nov 24 08:13:27 2004 @@ -6,3 +6,5 @@ config.status config.cache autom4te.cache +.project +ircu.tags Index: ircd-ircdev/Doxyfile diff -u ircd-ircdev/Doxyfile:1.1 ircd-ircdev/Doxyfile:1.2 --- ircd-ircdev/Doxyfile:1.1 Sun Feb 22 08:16:22 2004 +++ ircd-ircdev/Doxyfile Wed Nov 24 08:13:27 2004 @@ -105,7 +105,7 @@ # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. -JAVADOC_AUTOBRIEF = NO +JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// @@ -318,7 +318,7 @@ # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. -QUIET = NO +QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank @@ -361,7 +361,7 @@ # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = . +INPUT = ircd include # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -599,7 +599,7 @@ # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree @@ -614,7 +614,7 @@ # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be @@ -732,7 +732,7 @@ # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages -GENERATE_MAN = YES +GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be @@ -875,7 +875,7 @@ # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. -PREDEFINED = +PREDEFINED = DEBUGMODE FORCEINLINE IPV6 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. @@ -945,7 +945,7 @@ # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yields more powerful graphs. -CLASS_DIAGRAMS = YES +CLASS_DIAGRAMS = NO # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented @@ -958,7 +958,7 @@ # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) -HAVE_DOT = YES +HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-11-24 16:22:41
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-11-24 16:22:32 UTC Modified files: TODO.es Log message: Actualizacion TODO list ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.9 ircd-ircdev/TODO.es:1.10 --- ircd-ircdev/TODO.es:1.9 Mon May 24 08:51:11 2004 +++ ircd-ircdev/TODO.es Wed Nov 24 08:22:22 2004 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.9 2004/05/24 15:51:11 zolty Exp $ +# $Id: TODO.es,v 1.10 2004/11/24 16:22:22 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -51,20 +51,16 @@ PRIORIDAD BAJA -------------------------------------------------------------------------------------- - - [G] Enlazar la libreria de adns al ircd. - [G] ¿Ampliacion comando OPER para elegir clase? - [G] Estudiar sobre la conveniencia de mezclar numericos (3 y 5). Puede romper la estandarizacion del protocolo P10. - [G] Posibilidad de BURST de topics. - [G] S-lines (Spoof Lines). - - [G] Implementar la libreria libevent cuando este terminado (Da soporte IPv6). - [G] Soporte Zlib para server<->server y client<->server (requiere negociado). - [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 ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-12-27 11:25:49
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-12-27 11:25:40 UTC Modified files: doc/ircd.sample-en.conf doc/ircd.sample-es.conf Log message: Actualizacion ircd.conf ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.8 ircd-ircdev/doc/ircd.sample-en.conf:1.9 --- ircd-ircdev/doc/ircd.sample-en.conf:1.8 Wed Nov 17 03:45:49 2004 +++ ircd-ircdev/doc/ircd.sample-en.conf Mon Dec 27 03:25:29 2004 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 17, Nov 2004. +# Last Updated: 27, Dec 2004. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -54,17 +54,20 @@ # General { # name = "servername"; # vhost = "virtualhost"; +# resolver = "ipaddress"; # description = "description"; # numeric = numericnumber; # }; # -# The "vhost" field must contain either a * or a valid IPv4 address in -# dotted quad notation. (127.0.0.1) The address MUST be the address -# of a physical interface on the host. This address is used for outgoing -# connections only, see "Port" block for listener virtual hosting. -# If in doubt put a * or the IP of your primary interface here. -# The server must be compiled with virtual hosting turned on to get this -# to work correctly. +# If present, "virtual" must contain a valid address in dotted +# quad or IPv6 numeric notation (127.0.0.1 or ::1). The address MUST +# be the address of a physical interface on the host. This address is +# used for outgoing connections if the "Connect" block does not override +# it. See "Port" block for listener virtual hosting. If in doubt, +# leave it out. +# +# You may need to specify the "resolver" address if your compile +# defaults to using IPv6 but your resolvers are all IPv4 hosts. # # Note that "numeric" field has to be unique on the network your server # is running on, must be between 0 and 4095, and is not updated on a rehash. @@ -102,20 +105,14 @@ # usermode = "+i"; # }; # +# The "maxlinks" field should be set at either 0 or 1. +# # The "connectfreq" field applies only to servers, and specifies the # frequency that the server tries to autoconnect. setting this to 0 will # cause the server to attempt to connect repeatedly with no delay until the # "maxlinks" condition is satisfied. This is a Bad Thing(tm). # Note that times can be specified as a number, or by giving something # like: 1 minutes 20 seconds, or 1*60+20. -# Client { -# host = "user@host"; -# ip = "ip@host"; -# password = "password"; -# class = "classname"; -# }; -# -# The "maxlinks" field should be set at either 0 or 1. # # Recommended server classes: # All your server uplinks you are not a hub for. @@ -135,6 +132,23 @@ sendq = 9000000; }; +# Client { +# username = "ident"; +# host = "host"; +# ip = "127.0.0.0/8"; +# password = "password"; +# class = "classname"; +# maxlinks = 3; +# }; +# +# Everything in a "Client" block is optional. If a "username" mask is +# given, it must match the client's username from the IDENT protocol. +# If a "host" mask is given, the client's hostname must resolve and +# match the host mask. If a CIDR-style "IP" mask is given, the client +# must have an IP matching that range. If "maxlinks" is given, it is +# limits the number of matching clients allowed from a particular IP +# address. +# # Recommended client classes: # Client classes. 10 = locals; 2 = for all .net and .com that are not # in Europe; 1 = for everybody. @@ -148,7 +162,7 @@ Client { class = "Other"; - host = "*@*"; + username = "*"; }; Class { name = "Telefonica"; @@ -313,7 +327,7 @@ class = "Local"; }; -# You can put a digit (0..9) in the password value, which will make ircd +# You can put an expression in the maxlinks, which will make ircd # only accept a client when the total number of connections to the network # from the same IP number doesn't exceed this number. # The following example would accept at most one connection per IP number @@ -321,12 +335,12 @@ # that have "dial??.*" as host mask: # Client { # host = "*@*.ono.com"; -# password = "1"; +# maxlinks = "1"; # class = "Other"; # }; # Client { # host = "*@dial??.*"; -# password = "2"; +# maxlinks = "2"; # class = "Other"; # }; # @@ -372,7 +386,7 @@ file = "irc-dev.motd"; }; -# [Server] +# [Uworld] # # One of the many nice features of IRC-Dev is "Uworld", a program # connected to the net as a server. This allows it to broadcast any mode @@ -381,16 +395,9 @@ # There is only one slight problem: the TimeStamp protocol prevents this. # So there is a configuration option to allow them anyway from a certain # server. -# Server { +# UWorld { # # The servername or wildcard mask for it that this applies to. # name = "relservername"; -# # The mask of servers they are allowed to introduce(for hub=yes;) or -# # not allowed to introduce(for leaf=yes). -# mask = "servermask"; -# # No is assumed for these unless you set it to yes. -# uworld = no; -# leaf = no; -# hub = yes; # }; # # Note: (1) These lines are agreed on by every server admin on IRC-Dev; @@ -400,7 +407,7 @@ # If you're on IRC-Dev, you MUST have these lines. I cannnot stress # this enough. If all of the servers don't have the same lines, the # servers will try to undo the mode hacks that Uworld does. Make SURE that -# all of the servers have the EXACT same Ulines. +# all of the servers have the EXACT same Uworld blocks. # # If your server starts on a bit larger network, you'll probably get # assigned one or two uplinks to which your server can connect. @@ -410,28 +417,11 @@ # You can also force a server(even one that doesn't connect to you) # to be a leaf with "leaf = yes;" -Server { +UWorld { name = "luz.irc-dev.net"; - mask = "*"; - uworld = yes; - hub = yes; }; -Server { +Uworld { name = "services.irc-dev.net"; - mask = "*"; - uworld = yes; - hub = yes; -}; -Server { - name = "gmsis2.irc-dev.net"; - mask = "*"; - hub = yes; -}; -# An example just to make sure IRCnet doesn't get on IRC-Dev.Net... -Server { - name = "*"; - mask = "eris.berkeley.edu"; - hub = yes; }; # It is possible to Jupe nicks. @@ -519,6 +509,8 @@ # password = "passwd"; # port = portno; # class = "classname"; +# maxhops = 2; +# hub = "*.eu.irc-dev.net"; # }; # # The "port" field defines the default port the server tries to connect @@ -526,6 +518,12 @@ # the port used when the server attempts to auto-connect to the remote # server. (See "Class" blocks for more informationa about auto-connects). # +# The "maxhops" field causes an SQUIT if a hub tries to introduce +# servers farther away than that; the element "leaf," is an alias for +# "maxhops = 0,". The "hub" field limits the names of servers that may +# be introduced by a hub; the element "hub;" is an alias for +# "hub = "*";". +# # Our primary uplink. Connect { name = "devel.irc-dev.net"; @@ -533,6 +531,7 @@ password = "passwd"; port = 4400; class = "Server"; + hub; }; @@ -704,6 +703,15 @@ nick = "X...@ch..."; }; +# You can ask a separate server whether to allow users to connect. +IAuth { + pass = "ircd-iauth"; + host = "127.0.0.1"; + port = 7700; + connectfreq = 30; + timeout = 60; +}; + # [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" @@ -755,10 +763,9 @@ # "MAXBANS" = "45"; # "MAXSILES" = "15"; # "MAXWATCHS" = "128"; -# "HANGONGOODLINK = "300"; +# "HANGONGOODLINK" = "300"; # "HANGONRETRYDELAY" = "10"; # "CONNECTTIMEOUT" = "90"; -# "TIMESEC" = "60"; # "MAXIMUM_LINKS" = "1"; # "PINGFREQUENCY" = "120"; # "CONNECTFREQUENCY" = "600"; @@ -772,20 +779,16 @@ # "MPATH" = "ircd.motd"; # "RPATH" = "remote.motd"; # "PPATH" = "ircd.pid"; -# "VIRTUAL_HOST" = "FALSE"; # "TOS_SERVER" = "0x08"; # "TOS_CLIENT" = "0x08"; # "POLLS_PER_LOOP" = "200"; -# "IRCD_RES_TIMEOUTS = "4"; # "IRCD_RES_RETRIES = "2"; +# "IRCD_RES_TIMEOUT = "4"; # "AUTH_TIMEOUT = "9"; # "ANNOUNCE_INVITES = "FALSE"; -# "CRYPT_OPER_PASSWORD" = "TRUE"; # "CONFIG_OPERCMDS" = "FALSE"; -# "LIST_CHAN" = "TRUE"; # "HIS_SNOTICES" = "TRUE"; # "HIS_SNOTICES_OPER_ONLY" = "TRUE"; -# "HIS_DESYNCS" = "TRUE"; # "HIS_DEBUG_OPER_ONLY" = "TRUE"; # "HIS_WALLOPS" = "TRUE"; # "HIS_MAP" = "TRUE"; @@ -803,6 +806,7 @@ # "HIS_STATS_j" = "TRUE"; # "HIS_STATS_k" = "TRUE"; # "HIS_STATS_l" = "TRUE"; +# "HIS_STATS_L" = "TRUE"; # "HIS_STATS_m" = "TRUE"; # "HIS_STATS_M" = "TRUE"; # "HIS_STATS_o" = "TRUE"; Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.3 ircd-ircdev/doc/ircd.sample-es.conf:1.4 --- ircd-ircdev/doc/ircd.sample-es.conf:1.3 Wed Nov 17 03:45:49 2004 +++ ircd-ircdev/doc/ircd.sample-es.conf Mon Dec 27 03:25:29 2004 @@ -1,6 +1,6 @@ # ircd.conf - archivo de configuración para el IRCD de IRC-Dev. # -# Ultima actualización: 17, Nov 2004. +# Ultima actualización: 27, Dec 2004. # # Escrito por Niels <ni...@un...>, basado en el archivo example.conf # original, en el código del servidor y la experiencia de la vida real. @@ -60,18 +60,20 @@ # General { # name = "nombreservidor"; # vhost = "virtualhost"; +# resolver = "direccionip"; # description = "descripcion"; # numeric = númerodenúmerico; # }; # -# El campo "vhost" debe contener un * o una dirección IPv4 válida en la -# notación de 4 números (127.0.0.1). La dirección DEBE ser la dirección -# de una interfaz física en el host. Esta dirección se utiliza solamente -# para las conexiones salientes, veáse el bloque "Port" para la escucha -# con virtual hosting. -# En caso de duda, pon un * o la IP de tu interface primaria aquí. -# El servidor debe estar compilado con "virtual hosting" activado para -# conseguir que esto trabaje correctamente. +# Si esta presente, el campo "vhost" debe contener una dirección válida +# en la notación de 4 números o notación numérica de IPv6 (127.0.0.1 o ::1). +# La dirección DEBE ser la dirección de una interfaz física en el host. +# Esta dirección se utiliza para las conexiones salientes si el bloque +# "Connect" no la elimina. Veáse el bloque "Port" para la escucha con +# virtual hosting. En caso de duda no pongas nada. +# +# Puede que necesites especificar la dirección del resolvedor DNS si tu +# has compilado con IPv6 pero tus resolvedores son hosts de IPv4. # # Observe que el campo "numeric" tiene que ser único en la red si tu # servidor esta funcionando, y debe estar entre 0 y 4095, y no se @@ -112,6 +114,8 @@ # usermode = "+i"; # }; # +# El campo "maxlinks" se debe fijar en 0 o 1. +# # El campo "connectfreq" se aplica solamente a los servidores, y especifica # la frecuencia con la cual el servidor intentará hacer el "autoconnect". # Ajustando a 0 causará que el servidor intentará repetidamente sin pausa @@ -119,14 +123,6 @@ # Esto es una mala idea (Bad Thing(tm)). # Observe que los tiempos se pueden especificar como número, dando algo # como este: 1 minutes 20 seconds, or 1*60+20. -# Client { -# host = "user@host"; -# ip = "ip@host"; -# password = "contraseña"; -# class = "nombreclase"; -# }; -# -# El campo "maxlinks" se debe fijar en 0 o 1. # # Clases de servidores recomendadas: # Todos los uplinks del servidor si tu no eres un "hub". @@ -146,6 +142,22 @@ sendq = 9000000; }; +# Client { +# username = "ident"; +# host = "host"; +# ip = "127.0.0.0/8"; +# password = "contraseña"; +# class = "nombreclase"; +# maxlinks = 3; +# }; +# +# Todo en un bloque "Client" es opcional. Si se da una máscara de "username", +# eso será comparado con el "username" del cliente del protocolo IDENT. +# Si se da una máscara de "host", el hostname del cliente debe ser resuelto y +# comparado con la máscara. Si se da una máscara de "IP" en CIDR, el cliente +# debe tener una IP dentro de ese rango. Si se da el campo "maxlinks", este +# es el límite de clientes permitidos desde una dirección IP particular. +# # Clases de clientes recomendadas: # Clases de clientes. 10 = locales; 2 = para todos los .net y .com que no # estén en Europa; 1 = para todos los demás. @@ -159,7 +171,7 @@ Client { class = "Otros"; - host = "*@*"; + username = "*"; }; Class { name = "Telefonica"; @@ -329,7 +341,8 @@ class = "Local"; }; -# Puedes poner un número (0..9) en el campo "password", que hará que el + +# Puedes poner una expresión en el campo "maxlinks", que hará que el # ircd sólo acepte un cliente cuando el numero total de conexiones a la # red desde la misma IP numérica no exceda de ese número. # El siguiente ejemplo aceptaría al menos una conexión por IP numérica @@ -337,12 +350,12 @@ # internet por modem que tengan "*.dial??.*" como máscara de host: # Client { # host = "*@*.ono.com"; -# password = "1"; +# maxlinks = "1"; # class = "Otros"; # }; # Client { # host = "*@dial??.*"; -# password = "2"; +# maxlinks = "2"; # class = "Otros"; # }; # @@ -389,7 +402,7 @@ file := "irc-dev.motd"; }; -# [Server] +# [Uworld] # # Una de las características más atractivas de IRC-Dev, es "Uworld", un # programa conectado a la red como servidor. Esto le permite realizar @@ -398,16 +411,9 @@ # Sólo hay un pequeño problema: El protocolo del TimeStamp (TS) hace # que no sea posible. Por esto, hay una opción de configuración para # permitir esos cambios desde cierto servidor. -# Server { +# Uworld { # # El nombre del servidor o la máscara para el que esto se aplica. # name = "relnombreservidor"; -# # La máscara de servidores se permite para introducir (para hub = yes;) -# # o no se permite (para leaf = yes;). -# mask = "máscaraservidor"; -# # No son asumidos estos valores a menos que lo fijes a "yes". -# uworld = no; -# leaf = no; -# hub = yes; # }; # # Nota: (1) Estas líneas son puestas por cada administrador de un servidor @@ -418,8 +424,8 @@ # Si estás en IRC-Dev, DEBES tener estas líneas. No puedo tener estrés # por esto. Si todos los servidores no tienen las mismas lineas, los # servidores intentarán deshacer los "hack" de cambios de modos que hará -# Uworld. ASEGURATE que todos los servidores tengan EXACTAMENTE las mismas -# "Ulines". +# Uworld. ASEGURATE que todos los servidores tengan EXACTAMENTE los mismos +# bloques "Uworld". # # Si tu servidor arranca en una red más grande, es probable que se te # asignen uno o dos servidores a los que tu servidor pueda conectar. @@ -430,28 +436,11 @@ # Puedes tambien forzar un servidor (uno que que no conecte con usted) # a ser un "leaf" con "leaf = yes;" -Server { +Uworld { name = "luz.irc-dev.net"; - mask = "*"; - uworld = yes; - hub = yes; }; -Server { +Uworld { name = "services.irc-dev.net"; - mask = "*"; - uworld = yes; - hub = yes; -}; -Server { - name = "gmsis2.irc-dev.net"; - mask = "*"; - hub = yes; -}; -# Un ejemplo para estar seguro que IRCnet no consiga en IRC-Dev.Net... -Server { - name = "*"; - mask = "eris.berkeley.edu"; - hub = yes; }; # Esto es posible para prohibir (Jupe) nicks. @@ -545,6 +534,8 @@ # password = "contraseña"; # port = númeropuerto; # class = "nombreclase"; +# maxhops = 2; +# hub = "*.eu.irc-dev.net"; # }; # # El campo "port" define el puerto por defecto que el servidor intentará @@ -553,6 +544,11 @@ # de autoconectar con el servidor remoto. (Véase los bloques "Class" para # más informacion sobre "auto-connects"). # +# El campo "maxhops" causa un SQUIT si un hub intenta introducir servidores +# más lejos que eso, el elemento "leaf"; es un alias para "maxhops = 0;". +# El campo "hub" limita los nombres de los servidores que pueden introducir +# por un hub, el elemento "hub;" es un alias para "hub = "*";". +# # Nuestro uplink primario. Connect { name = "devel.irc-dev.net"; @@ -560,6 +556,7 @@ password = "passwd"; port = 4400; class = "Servidor"; + hub; }; @@ -739,6 +736,15 @@ nick = "X...@ch..."; }; +# Puedes pedir un servidor separado para permitir a los usuarios conectar. +IAuth { + pass = "ircd-iauth"; + host = "127.0.0.1"; + port = 7700; + connectfreq = 30; + timeout = 60; +}; + # [Features] # Los servidores de IRC tienen una gran cantidad de opciones y # características. La mayoria de éstos se ajustan en tiempo de compilación @@ -753,8 +759,8 @@ # características se enumeran abajo, y al final cómo ajustar el "logging". # # Gracias especiales a Kev por escribir la documentación de F:lines. Eso -# puede ser encontrado en doc/*/features.txt y la documentación de registro -# de eventos (logging) se puede encontrar en doc/*/log.txt. Los valores por +# puede ser encontrado en doc/es/features.txt y la documentación de registro +# de eventos (logging) se puede encontrar en doc/es/log.txt. Los valores por # defecto usados por la red de IRC-Dev están abajo. # Features @@ -792,10 +798,9 @@ # "MAXBANS" = "45"; # "MAXSILES" = "15"; # "MAXWATCHS" = "128"; -# "HANGONGOODLINK = "300"; +# "HANGONGOODLINK" = "300"; # "HANGONRETRYDELAY" = "10"; # "CONNECTTIMEOUT" = "90"; -# "TIMESEC" = "60"; # "MAXIMUM_LINKS" = "1"; # "PINGFREQUENCY" = "120"; # "CONNECTFREQUENCY" = "600"; @@ -808,18 +813,15 @@ # "IPCHECK_CLONE_DELAY = "600"; # "MPATH" = "ircd.motd"; # "RPATH" = "remote.motd"; -# "PPATH" = "ircd.pid";# "LIST_CHAN" = "TRUE"; -# "VIRTUAL_HOST" = "FALSE"; +# "PPATH" = "ircd.pid"; # "TOS_SERVER" = "0x08"; # "TOS_CLIENT" = "0x08"; # "POLLS_PER_LOOP" = "200"; -# "IRCD_RES_TIMEOUTS = "4"; # "IRCD_RES_RETRIES = "2"; +# "IRCD_RES_TIMEOUT = "4"; # "AUTH_TIMEOUT = "9"; # "ANNOUNCE_INVITES = "FALSE"; -# "CRYPT_OPER_PASSWORD" = "TRUE"; # "CONFIG_OPERCMDS" = "FALSE"; -# "LIST_CHAN" = "TRUE"; # "HIS_SNOTICES" = "TRUE"; # "HIS_SNOTICES_OPER_ONLY" = "TRUE"; # "HIS_DESYNCS" = "TRUE"; @@ -840,6 +842,7 @@ # "HIS_STATS_j" = "TRUE"; # "HIS_STATS_k" = "TRUE"; # "HIS_STATS_l" = "TRUE"; +# "HIS_STATS_L" = "TRUE"; # "HIS_STATS_m" = "TRUE"; # "HIS_STATS_M" = "TRUE"; # "HIS_STATS_o" = "TRUE"; ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2004-12-28 11:16:27
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2004-12-28 11:15:58 UTC Modified files: ChangeLog ChangeLog.es INSTALL INSTALL.es TODO.es doc/.cvsignore doc/ircd.sample-es.conf include/channel.h include/client.h include/handlers.h include/ircd_log.h include/msg.h include/numeric.h include/numnicks.h include/patchlevel.h include/send.h ircd/IPcheck.c ircd/Makefile.in ircd/channel.c ircd/class.c ircd/client.c ircd/dbuf.c ircd/destruct_event.c ircd/engine_devpoll.c ircd/engine_epoll.c ircd/engine_kqueue.c ircd/engine_poll.c ircd/engine_select.c ircd/fileio.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_alloc.c ircd/ircd_auth.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_crypt_plain.c ircd/ircd_crypt_smd5.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_log.c ircd/ircd_parser.y ircd/ircd_relay.c ircd/ircd_reply.c ircd/ircd_res.c ircd/ircd_signal.c ircd/ircd_snprintf.c ircd/ircd_string.c ircd/jupe.c ircd/list.c ircd/listener.c ircd/m_account.c ircd/m_admin.c ircd/m_asll.c ircd/m_away.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_close.c ircd/m_connect.c ircd/m_cprivmsg.c ircd/m_create.c ircd/m_defaults.c ircd/m_destruct.c ircd/m_desynch.c ircd/m_die.c ircd/m_endburst.c ircd/m_error.c ircd/m_get.c ircd/m_gline.c ircd/m_help.c ircd/m_info.c ircd/m_invite.c ircd/m_ison.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_kill.c ircd/m_links.c ircd/m_list.c ircd/m_lusers.c ircd/m_map.c ircd/m_mode.c ircd/m_motd.c ircd/m_names.c ircd/m_nick.c ircd/m_notice.c ircd/m_oper.c ircd/m_opmode.c ircd/m_part.c ircd/m_pass.c ircd/m_ping.c ircd/m_pong.c ircd/m_privmsg.c ircd/m_privs.c ircd/m_proto.c ircd/m_pseudo.c ircd/m_quit.c ircd/m_rehash.c ircd/m_reset.c ircd/m_restart.c ircd/m_rping.c ircd/m_rpong.c ircd/m_server.c ircd/m_set.c ircd/m_settime.c ircd/m_silence.c ircd/m_squit.c ircd/m_stats.c ircd/m_time.c ircd/m_tmpl.c ircd/m_topic.c ircd/m_trace.c ircd/m_uping.c ircd/m_user.c ircd/m_userhost.c ircd/m_userip.c ircd/m_users.c ircd/m_version.c ircd/m_wallchops.c ircd/m_wallops.c ircd/m_wallusers.c ircd/m_wallvoices.c ircd/m_watch.c ircd/m_who.c ircd/m_whois.c ircd/m_whowas.c ircd/memdebug.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/os_generic.c ircd/packet.c ircd/parse.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_serv.c ircd/s_user.c ircd/send.c ircd/umkpasswd.c ircd/uping.c ircd/version.c.SH ircd/watch.c ircd/whowas.c ircd/test/ircd_chattr_t.c Added files: ircd-patch doc/en/Authors include/capab.h ircd/m_cap.c Removed files: tools/crypter Log message: Author: zoltan <zo...@ir...> Log message: 2004-11-28 Toni García <zo...@ir...> 1.0.alpha14 * Implementacion del estándar "IRC Capabilities" * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.14 ircd-ircdev/ChangeLog:1.15 --- ircd-ircdev/ChangeLog:1.14 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/ChangeLog Tue Dec 28 03:15:43 2004 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.14 2004/11/24 16:11:30 zolty Exp $ +# $Id: ChangeLog,v 1.15 2004/12/28 11:15:43 zolty Exp $ # # Insert new changes at beginning of the change list. # +2004-11-28 Toni García <zo...@ir...> 1.0.alpha14 + * Implementation IRC capabilities draft + * Undernet synchorinization + 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Doxygen commentarys * Silence exceptions Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.14 ircd-ircdev/ChangeLog.es:1.15 --- ircd-ircdev/ChangeLog.es:1.14 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/ChangeLog.es Tue Dec 28 03:15:43 2004 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.14 2004/11/24 16:11:30 zolty Exp $ +# $Id: ChangeLog.es,v 1.15 2004/12/28 11:15:43 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2004-11-28 Toni García <zo...@ir...> 1.0.alpha14 + * Implementacion del estándar "IRC Capabilities" + * Sincronizacion Undernet + 2004-11-24 Toni García <zo...@ir...> 1.0.alpha13 * Comentarios para Doxygen * Excepciones de Silences Index: ircd-ircdev/INSTALL diff -u ircd-ircdev/INSTALL:1.1.1.1 ircd-ircdev/INSTALL:1.2 --- ircd-ircdev/INSTALL:1.1.1.1 Mon Sep 8 03:34:25 2003 +++ ircd-ircdev/INSTALL Tue Dec 28 03:15:43 2004 @@ -29,7 +29,8 @@ Once ircd-ircdev is compiled, install it by running "make install". Next, you will have to configure your IRC server by setting up your ircd.conf -file. Use the included doc/<language>/ircd.conf.sample as a starting point. +file. Use the included doc/ircd.sample-en.conf as a starting point; it is +installed in $HOME/lib/ircd.sample-en.conf by default. Setting up ircd.conf can be a bit tricky, so if this is your first time doing it, begin with a bare-bones configuration and extend it as you go. Index: ircd-ircdev/INSTALL.es diff -u ircd-ircdev/INSTALL.es:1.1.1.1 ircd-ircdev/INSTALL.es:1.2 --- ircd-ircdev/INSTALL.es:1.1.1.1 Mon Sep 8 03:34:26 2003 +++ ircd-ircdev/INSTALL.es Tue Dec 28 03:15:43 2004 @@ -31,8 +31,9 @@ Una vez que se compile el ircd-ircdev, instalalo ejecutando "make install". Después, usted tendrá que configurar su servidor de IRC configurando el archivo -"ircd.conf". Utilice el doc/es/ircd.conf.sample incluido como punto de partida. La -creación del "ircd.conf" puede ser un poco díficil, así que si ésta es su primera +"ircd.conf". Utilice el doc/ircd.sample-es.conf incluido como punto de partida; +es instalado en $HOME/lib/ircd.sample-es.conf por defecto. +La creación del "ircd.conf" puede ser un poco díficil, así que si ésta es su primera vez que lo hace, comienza con una configuración mínima y la amplía mientras que usted va aprendiendo. Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.10 ircd-ircdev/TODO.es:1.11 --- ircd-ircdev/TODO.es:1.10 Wed Nov 24 08:22:22 2004 +++ ircd-ircdev/TODO.es Tue Dec 28 03:15:43 2004 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.10 2004/11/24 16:22:22 zolty Exp $ +# $Id: TODO.es,v 1.11 2004/12/28 11:15:43 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -62,6 +62,7 @@ - [G] Soporte SSL para client<->server. - [U] Soporte de modos de canal +A y +u y todo lo relacionado con el (.12). - [G] Mirar si el aviso de invites lo haga con wallchops o con raw. + - [D] Documentar para Doxygen el Watch y el DDB BUGS CONOCIDOS -------------------------------------------------------------------------------------- Index: ircd-ircdev/doc/.cvsignore diff -u ircd-ircdev/doc/.cvsignore:1.1.1.1 ircd-ircdev/doc/.cvsignore:1.2 --- ircd-ircdev/doc/.cvsignore:1.1.1.1 Mon Sep 8 03:34:26 2003 +++ ircd-ircdev/doc/.cvsignore Tue Dec 28 03:15:44 2004 @@ -1,2 +1,3 @@ Makefile stamp-m +doxygen Index: ircd-ircdev/doc/en/Authors diff -u /dev/null ircd-ircdev/doc/en/Authors:1.1 --- /dev/null Tue Dec 28 03:15:58 2004 +++ ircd-ircdev/doc/en/Authors Tue Dec 28 03:15:44 2004 @@ -0,0 +1,200 @@ +IRC was conceived of and written by Jarkko Oikarinen <jt...@to...>. +IRC was originally written in University of Oulu, Computing Center. +Jan 1991 - IRC 2.6 jt...@to... + - Multiple Channels and protocol changes + +Contributions were made by a cast of dozens, including the following: + +Markku Jarvinen <mt...@tu...>: Emacs-like editing facility for the client + +Kimmo Suominen <ki...@ka...>: HP-UX port + +Jeff Trim <jt...@or...>: enhancements and advice + +Vijay Subramaniam <vi...@ll...>: advice and ruthless publicity + +Karl Kleinpaste <ka...@ci...>: user's manual + +Greg Lindahl <gl...@vi...>: AUTOMATON code, the Wumpus GM automaton, +myriad bug fixes + +Bill Wisner <wi...@ha...>: numerous bug fixes and code +enhancements + +Tom Davis <con...@ze...> and Tim Russell <ru...@ze...>: +VMS modifications + +Markku Savela <ms...@te...>: advice, support, and being the +incentive to do some of our *own* coding. :) + +Tom Hopkins <ho...@bu...>: bug fixes, quarantine lines, +consolidation of various patches. + +Christopher Davis <ck...@cs...>: EFnet/Anet gateway coding, +many automata ;), documentation fixing. + +Helen Rose <hr...@cs...>: documentation updating, and fixing. + +Tom Hinds <ro...@bu...>: emacs client updating. + +Tim Miller <ce...@bu...>: various server and client-breaking +features. + +Darren Reed <av...@co...>: various bug fixes and enhancements. +Introduced nickname and channelname hash tables into the server. + +The version 2.2 release was coordinated by Mike Bolotski +<mi...@sa...>. + +The version 2.4 release was coordinated by Markku Savela and +Chelsea Ashley Dyerman + +The version 2.5.2 release was coordinated by Christopher Davis, Helen Rose, +and Tom Hopkins. + +The versions 2.6.2, 2.7 and 2.8 releases were coordinated by Darren Reed. + +Contributions for the 2.8 release from the following people: +Matthew Green <ph...@co...> +Chuck Kane <ck...@ec...> +Matt Lyle <ma...@oc...> +Vesa Ruokonen <ruo...@lu...> + +Markku Savela <Mar...@vt...> / April 1990 +Fixed various bugs in 2.2PL1 release server (2.2msa.4) and changed +sockets to use non-blocking mode (2.2msa.9). [I have absolutely +nothing to do with clients :-] + +Chelsea Ashley Dyerman <ch...@ea...> / April 1990 +Rewrote the Makefiles, restructuring of source tree. Added libIrcd.a to +the Makefile macros, numerous reformatting of server text messages, and +added mkversion.sh to keep track of compilation statistics. Numerous +bug fixes and enhancements, and co-coordinator of the 2.4 release. + +Jarle Lyngaas (nm...@al...) added Note functions to ircd. + +Armin Gruner <gr...@in...> / May, June 1990: +* Patched KILL-line feature for ircd.conf, works now. + Enhancement: Time intervals can be specified in passwd-field. + Result: KILL-Line is only active during these intervals +* Patched PRIVMSG handling, now OPER can specify masks for sending + private messages, advantage: msg to all at a specified server or host. +* Little tests on irc 2.5 alpha, fixed some little typos in client code. + Change: common/debug.c has been moved to ircd/s_debug.c, and a + irc/c_debug.c has been created, for the benefit that wrong server msg + are displayed if client does not recognize them. (strange, if a server + sends an 'unknown command', isn't it?) + +Tom Hopkins <ho...@bu...> / September, October 1990: +* Patched msa's K lines for servers (Q lines). +* Consolidated several patches, including Stealth's logging patch. +* Fixed several minor bugs. +* Has done lots of other stuff that I can't seem to remember, but he + always works on code, so he has to have done alot more than three + lines worth. :) + +Thanks go to those persons not mentioned here who have added their advice, +opinions, and code to IRC. + +Various modifications, bugreports, cleanups and testing by: + +Hugo Calendar <hu...@uc...> +Bo Adler <ad...@cs...> +Michael Sandrof <ms...@an...> +Jon Solomon <js...@cs...> +Jan Peterson <jl...@ha...> +Nathan Glasser <na...@br...> +Helen Rose <hr...@ef...> +Mike Pelletier <st...@ca...> +Basalat Ali Raja <gw...@ta...> +Eric P. Scott <ep...@to...> +Dan Goodwin <fo...@wp...> +Noah Friedman <fri...@ai...> + + +UNDERNET (1991 - 1999) +-------- + +The Undernet versions (TSpre8, u2.9 and u2.10) are based on ircd-2.8.10 and +contain thousands of hours of work by Carlo Wood <ca...@al...> +(Run on IRC). The number of protocol enhancements, changes and additions +that have been added are too many to summarize. All patches are kept in the +cvs repository at http://coder-com.undernet.org/. Discussions on this +server code are currently on the mailing list cod...@un..., or in +#coder-com on undernet. + +The current maintainer is Bleep. + +Various additions and bugfixes have been contributed by: + +Aaron <agi...@sc...> +Bleep <to...@in...> +CaptJay <ca...@su...> +CapVideo <ma...@pu...> +Chaos <si...@tr...> +Cym <cy...@ac...> +Derrick <di...@se...> +Ensor <dh...@ra...> +flux <cml...@uc...> +Ghostwolf <fo...@tr...> +Gte- <gt...@at...> +Isomer <is...@co...> +Jamey <wo...@du...> +Jarle <ja...@II...> +Kev <kl...@mi...> +Nemesi <co...@ti...> +Niels <ni...@ho...> +Run <ca...@al...> +record <jeg...@cl...> +smg <sm...@lm...> +SeKs <in...@st...> +Simon- <si...@pe...> +Starfox <st...@qu...> +Trio <tr...@b6...> +WildThang <dvm...@an...> +Xorath <vo...@wh...> + +UNDERNET (2000 - 2004) +-------- + +The Undernet versions (P9, P10, u2.10.11 and u2.10.12) are based on +ircu2.10.07 and contain many hours of work by Coder Commitee. +The number of protocol enhancements, changes and additions +that have been added are too many to summarize. All patches are kept in the +cvs repository at http://coder-com.undernet.org/. Discussions on this +server code are currently on the mailing list cod...@un..., or in +#coder-com on undernet. + +The current maintainer is Isomer. + +Various additions, testings and bugfixes have been contributed by: + +A1kmm <irc...@mw...> +Bleep <to...@in...> +Gte- <gt...@at...> +Isomer <is...@co...> +Kev <kl...@mi...> +Delete <de...@cy...> +Ghostwolf <fo...@wt...> +Braden <db...@ya...> +net <ne...@as...> +Steven <st...@do...> +OmniDynmc <om...@dy...> +Dianora <db...@db...> +Sengaia <se...@un...> +Cyberdude <Cyb...@un...> +Maniac- <ma...@ce...> +Vampire- <va...@p1...> +mbuna <mb...@bu...> +beware <ste...@to...> +n3tguy <ne...@sp...> +reed <re...@re...> +Math <ma...@ro...> +hikari <sh...@un...> +Bleep <tom...@co...> +froo <fr...@qu...> +splidge <sp...@qu...> +Zarjazz <za...@qu...> +Spike <ek...@pa...> +Jeekay <je...@ne...> +Entrope <en...@ga...> Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.4 ircd-ircdev/doc/ircd.sample-es.conf:1.5 --- ircd-ircdev/doc/ircd.sample-es.conf:1.4 Mon Dec 27 03:25:29 2004 +++ ircd-ircdev/doc/ircd.sample-es.conf Tue Dec 28 03:15:44 2004 @@ -824,7 +824,6 @@ # "CONFIG_OPERCMDS" = "FALSE"; # "HIS_SNOTICES" = "TRUE"; # "HIS_SNOTICES_OPER_ONLY" = "TRUE"; -# "HIS_DESYNCS" = "TRUE"; # "HIS_DEBUG_OPER_ONLY" = "TRUE"; # "HIS_WALLOPS" = "TRUE"; # "HIS_MAP" = "TRUE"; Index: ircd-ircdev/include/capab.h diff -u /dev/null ircd-ircdev/include/capab.h:1.1 --- /dev/null Tue Dec 28 03:15:59 2004 +++ ircd-ircdev/include/capab.h Tue Dec 28 03:15:44 2004 @@ -0,0 +1,660 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/capab.h + * + * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004 Kevin L. Mitchell <kl...@mi...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +/** @file + * @brief Interface and public definitions for capabilities extension + * @version $Id: capab.h,v 1.1 2004/12/28 11:15:44 zolty Exp $ + */ +#ifndef INCLUDED_capab_h +#define INCLUDED_capab_h + +#ifndef INCLUDED_client_h +#include "client.h" +#endif + +#define CAPFL_HIDDEN 0x0001 /**< Do not advertize this capability */ +#define CAPFL_PROHIBIT 0x0002 /**< Client may not set this capability */ +#define CAPFL_PROTO 0x0004 /**< Cap must be acknowledged by client */ + +/* XXX You can safely ignore all of these; they're only for testing purposes, + * XXX and don't result in any behavioral change. + */ +#define CAPLIST \ + _CAP(USERPFX, 0, "undernet.org/userpfx"), \ + _CAP(FOO, CAPFL_HIDDEN, "x-foo"), \ + _CAP(BAR, CAPFL_PROHIBIT, "x-bar"), \ + _CAP(BINK, CAPFL_PROTO, "x-bink"), \ + _CAP(CAP000, 0, "x-cap000"), \ + _CAP(CAP001, 0, "x-cap001"), \ + _CAP(CAP002, 0, "x-cap002"), \ + _CAP(CAP003, 0, "x-cap003"), \ + _CAP(CAP004, 0, "x-cap004"), \ + _CAP(CAP005, 0, "x-cap005"), \ + _CAP(CAP006, 0, "x-cap006"), \ + _CAP(CAP007, 0, "x-cap007"), \ + _CAP(CAP008, 0, "x-cap008"), \ + _CAP(CAP009, 0, "x-cap009"), \ + _CAP(CAP010, 0, "x-cap010"), \ + _CAP(CAP011, 0, "x-cap011"), \ + _CAP(CAP012, 0, "x-cap012"), \ + _CAP(CAP013, 0, "x-cap013"), \ + _CAP(CAP014, 0, "x-cap014"), \ + _CAP(CAP015, 0, "x-cap015"), \ + _CAP(CAP016, 0, "x-cap016"), \ + _CAP(CAP017, 0, "x-cap017"), \ + _CAP(CAP018, 0, "x-cap018"), \ + _CAP(CAP019, 0, "x-cap019"), \ + _CAP(CAP020, 0, "x-cap020"), \ + _CAP(CAP021, 0, "x-cap021"), \ + _CAP(CAP022, 0, "x-cap022"), \ + _CAP(CAP023, 0, "x-cap023"), \ + _CAP(CAP024, 0, "x-cap024"), \ + _CAP(CAP025, 0, "x-cap025"), \ + _CAP(CAP026, 0, "x-cap026"), \ + _CAP(CAP027, 0, "x-cap027"), \ + _CAP(CAP028, 0, "x-cap028"), \ + _CAP(CAP029, 0, "x-cap029"), \ + _CAP(CAP030, 0, "x-cap030"), \ + _CAP(CAP031, 0, "x-cap031"), \ + _CAP(CAP032, 0, "x-cap032"), \ + _CAP(CAP033, 0, "x-cap033"), \ + _CAP(CAP034, 0, "x-cap034"), \ + _CAP(CAP035, 0, "x-cap035"), \ + _CAP(CAP036, 0, "x-cap036"), \ + _CAP(CAP037, 0, "x-cap037"), \ + _CAP(CAP038, 0, "x-cap038"), \ + _CAP(CAP039, 0, "x-cap039"), \ + _CAP(CAP040, 0, "x-cap040"), \ + _CAP(CAP041, 0, "x-cap041"), \ + _CAP(CAP042, 0, "x-cap042"), \ + _CAP(CAP043, 0, "x-cap043"), \ + _CAP(CAP044, 0, "x-cap044"), \ + _CAP(CAP045, 0, "x-cap045"), \ + _CAP(CAP046, 0, "x-cap046"), \ + _CAP(CAP047, 0, "x-cap047"), \ + _CAP(CAP048, 0, "x-cap048"), \ + _CAP(CAP049, 0, "x-cap049"), \ + _CAP(CAP050, 0, "x-cap050"), \ + _CAP(CAP051, 0, "x-cap051"), \ + _CAP(CAP052, 0, "x-cap052"), \ + _CAP(CAP053, 0, "x-cap053"), \ + _CAP(CAP054, 0, "x-cap054"), \ + _CAP(CAP055, 0, "x-cap055"), \ + _CAP(CAP056, 0, "x-cap056"), \ + _CAP(CAP057, 0, "x-cap057"), \ + _CAP(CAP058, 0, "x-cap058"), \ + _CAP(CAP059, 0, "x-cap059"), \ + _CAP(CAP060, 0, "x-cap060"), \ + _CAP(CAP061, 0, "x-cap061"), \ + _CAP(CAP062, 0, "x-cap062"), \ + _CAP(CAP063, 0, "x-cap063"), \ + _CAP(CAP064, 0, "x-cap064"), \ + _CAP(CAP065, 0, "x-cap065"), \ + _CAP(CAP066, 0, "x-cap066"), \ + _CAP(CAP067, 0, "x-cap067"), \ + _CAP(CAP068, 0, "x-cap068"), \ + _CAP(CAP069, 0, "x-cap069"), \ + _CAP(CAP070, 0, "x-cap070"), \ + _CAP(CAP071, 0, "x-cap071"), \ + _CAP(CAP072, 0, "x-cap072"), \ + _CAP(CAP073, 0, "x-cap073"), \ + _CAP(CAP074, 0, "x-cap074"), \ + _CAP(CAP075, 0, "x-cap075"), \ + _CAP(CAP076, 0, "x-cap076"), \ + _CAP(CAP077, 0, "x-cap077"), \ + _CAP(CAP078, 0, "x-cap078"), \ + _CAP(CAP079, 0, "x-cap079"), \ + _CAP(CAP080, 0, "x-cap080"), \ + _CAP(CAP081, 0, "x-cap081"), \ + _CAP(CAP082, 0, "x-cap082"), \ + _CAP(CAP083, 0, "x-cap083"), \ + _CAP(CAP084, 0, "x-cap084"), \ + _CAP(CAP085, 0, "x-cap085"), \ + _CAP(CAP086, 0, "x-cap086"), \ + _CAP(CAP087, 0, "x-cap087"), \ + _CAP(CAP088, 0, "x-cap088"), \ + _CAP(CAP089, 0, "x-cap089"), \ + _CAP(CAP090, 0, "x-cap090"), \ + _CAP(CAP091, 0, "x-cap091"), \ + _CAP(CAP092, 0, "x-cap092"), \ + _CAP(CAP093, 0, "x-cap093"), \ + _CAP(CAP094, 0, "x-cap094"), \ + _CAP(CAP095, 0, "x-cap095"), \ + _CAP(CAP096, 0, "x-cap096"), \ + _CAP(CAP097, 0, "x-cap097"), \ + _CAP(CAP098, 0, "x-cap098"), \ + _CAP(CAP099, 0, "x-cap099"), \ + _CAP(CAP100, 0, "x-cap100"), \ + _CAP(CAP101, 0, "x-cap101"), \ + _CAP(CAP102, 0, "x-cap102"), \ + _CAP(CAP103, 0, "x-cap103"), \ + _CAP(CAP104, 0, "x-cap104"), \ + _CAP(CAP105, 0, "x-cap105"), \ + _CAP(CAP106, 0, "x-cap106"), \ + _CAP(CAP107, 0, "x-cap107"), \ + _CAP(CAP108, 0, "x-cap108"), \ + _CAP(CAP109, 0, "x-cap109"), \ + _CAP(CAP110, 0, "x-cap110"), \ + _CAP(CAP111, 0, "x-cap111"), \ + _CAP(CAP112, 0, "x-cap112"), \ + _CAP(CAP113, 0, "x-cap113"), \ + _CAP(CAP114, 0, "x-cap114"), \ + _CAP(CAP115, 0, "x-cap115"), \ + _CAP(CAP116, 0, "x-cap116"), \ + _CAP(CAP117, 0, "x-cap117"), \ + _CAP(CAP118, 0, "x-cap118"), \ + _CAP(CAP119, 0, "x-cap119"), \ + _CAP(CAP120, 0, "x-cap120"), \ + _CAP(CAP121, 0, "x-cap121"), \ + _CAP(CAP122, 0, "x-cap122"), \ + _CAP(CAP123, 0, "x-cap123"), \ + _CAP(CAP124, 0, "x-cap124"), \ + _CAP(CAP125, 0, "x-cap125"), \ + _CAP(CAP126, 0, "x-cap126"), \ + _CAP(CAP127, 0, "x-cap127"), \ + _CAP(CAP128, 0, "x-cap128"), \ + _CAP(CAP129, 0, "x-cap129"), \ + _CAP(CAP130, 0, "x-cap130"), \ + _CAP(CAP131, 0, "x-cap131"), \ + _CAP(CAP132, 0, "x-cap132"), \ + _CAP(CAP133, 0, "x-cap133"), \ + _CAP(CAP134, 0, "x-cap134"), \ + _CAP(CAP135, 0, "x-cap135"), \ + _CAP(CAP136, 0, "x-cap136"), \ + _CAP(CAP137, 0, "x-cap137"), \ + _CAP(CAP138, 0, "x-cap138"), \ + _CAP(CAP139, 0, "x-cap139"), \ + _CAP(CAP140, 0, "x-cap140"), \ + _CAP(CAP141, 0, "x-cap141"), \ + _CAP(CAP142, 0, "x-cap142"), \ + _CAP(CAP143, 0, "x-cap143"), \ + _CAP(CAP144, 0, "x-cap144"), \ + _CAP(CAP145, 0, "x-cap145"), \ + _CAP(CAP146, 0, "x-cap146"), \ + _CAP(CAP147, 0, "x-cap147"), \ + _CAP(CAP148, 0, "x-cap148"), \ + _CAP(CAP149, 0, "x-cap149"), \ + _CAP(CAP150, 0, "x-cap150"), \ + _CAP(CAP151, 0, "x-cap151"), \ + _CAP(CAP152, 0, "x-cap152"), \ + _CAP(CAP153, 0, "x-cap153"), \ + _CAP(CAP154, 0, "x-cap154"), \ + _CAP(CAP155, 0, "x-cap155"), \ + _CAP(CAP156, 0, "x-cap156"), \ + _CAP(CAP157, 0, "x-cap157"), \ + _CAP(CAP158, 0, "x-cap158"), \ + _CAP(CAP159, 0, "x-cap159"), \ + _CAP(CAP160, 0, "x-cap160"), \ + _CAP(CAP161, 0, "x-cap161"), \ + _CAP(CAP162, 0, "x-cap162"), \ + _CAP(CAP163, 0, "x-cap163"), \ + _CAP(CAP164, 0, "x-cap164"), \ + _CAP(CAP165, 0, "x-cap165"), \ + _CAP(CAP166, 0, "x-cap166"), \ + _CAP(CAP167, 0, "x-cap167"), \ + _CAP(CAP168, 0, "x-cap168"), \ + _CAP(CAP169, 0, "x-cap169"), \ + _CAP(CAP170, 0, "x-cap170"), \ + _CAP(CAP171, 0, "x-cap171"), \ + _CAP(CAP172, 0, "x-cap172"), \ + _CAP(CAP173, 0, "x-cap173"), \ + _CAP(CAP174, 0, "x-cap174"), \ + _CAP(CAP175, 0, "x-cap175"), \ + _CAP(CAP176, 0, "x-cap176"), \ + _CAP(CAP177, 0, "x-cap177"), \ + _CAP(CAP178, 0, "x-cap178"), \ + _CAP(CAP179, 0, "x-cap179"), \ + _CAP(CAP180, 0, "x-cap180"), \ + _CAP(CAP181, 0, "x-cap181"), \ + _CAP(CAP182, 0, "x-cap182"), \ + _CAP(CAP183, 0, "x-cap183"), \ + _CAP(CAP184, 0, "x-cap184"), \ + _CAP(CAP185, 0, "x-cap185"), \ + _CAP(CAP186, 0, "x-cap186"), \ + _CAP(CAP187, 0, "x-cap187"), \ + _CAP(CAP188, 0, "x-cap188"), \ + _CAP(CAP189, 0, "x-cap189"), \ + _CAP(CAP190, 0, "x-cap190"), \ + _CAP(CAP191, 0, "x-cap191"), \ + _CAP(CAP192, 0, "x-cap192"), \ + _CAP(CAP193, 0, "x-cap193"), \ + _CAP(CAP194, 0, "x-cap194"), \ + _CAP(CAP195, 0, "x-cap195"), \ + _CAP(CAP196, 0, "x-cap196"), \ + _CAP(CAP197, 0, "x-cap197"), \ + _CAP(CAP198, 0, "x-cap198"), \ + _CAP(CAP199, 0, "x-cap199"), \ + _CAP(CAP200, 0, "x-cap200"), \ + _CAP(CAP201, 0, "x-cap201"), \ + _CAP(CAP202, 0, "x-cap202"), \ + _CAP(CAP203, 0, "x-cap203"), \ + _CAP(CAP204, 0, "x-cap204"), \ + _CAP(CAP205, 0, "x-cap205"), \ + _CAP(CAP206, 0, "x-cap206"), \ + _CAP(CAP207, 0, "x-cap207"), \ + _CAP(CAP208, 0, "x-cap208"), \ + _CAP(CAP209, 0, "x-cap209"), \ + _CAP(CAP210, 0, "x-cap210"), \ + _CAP(CAP211, 0, "x-cap211"), \ + _CAP(CAP212, 0, "x-cap212"), \ + _CAP(CAP213, 0, "x-cap213"), \ + _CAP(CAP214, 0, "x-cap214"), \ + _CAP(CAP215, 0, "x-cap215"), \ + _CAP(CAP216, 0, "x-cap216"), \ + _CAP(CAP217, 0, "x-cap217"), \ + _CAP(CAP218, 0, "x-cap218"), \ + _CAP(CAP219, 0, "x-cap219"), \ + _CAP(CAP220, 0, "x-cap220"), \ + _CAP(CAP221, 0, "x-cap221"), \ + _CAP(CAP222, 0, "x-cap222"), \ + _CAP(CAP223, 0, "x-cap223"), \ + _CAP(CAP224, 0, "x-cap224"), \ + _CAP(CAP225, 0, "x-cap225"), \ + _CAP(CAP226, 0, "x-cap226"), \ + _CAP(CAP227, 0, "x-cap227"), \ + _CAP(CAP228, 0, "x-cap228"), \ + _CAP(CAP229, 0, "x-cap229"), \ + _CAP(CAP230, 0, "x-cap230"), \ + _CAP(CAP231, 0, "x-cap231"), \ + _CAP(CAP232, 0, "x-cap232"), \ + _CAP(CAP233, 0, "x-cap233"), \ + _CAP(CAP234, 0, "x-cap234"), \ + _CAP(CAP235, 0, "x-cap235"), \ + _CAP(CAP236, 0, "x-cap236"), \ + _CAP(CAP237, 0, "x-cap237"), \ + _CAP(CAP238, 0, "x-cap238"), \ + _CAP(CAP239, 0, "x-cap239"), \ + _CAP(CAP240, 0, "x-cap240"), \ + _CAP(CAP241, 0, "x-cap241"), \ + _CAP(CAP242, 0, "x-cap242"), \ + _CAP(CAP243, 0, "x-cap243"), \ + _CAP(CAP244, 0, "x-cap244"), \ + _CAP(CAP245, 0, "x-cap245"), \ + _CAP(CAP246, 0, "x-cap246"), \ + _CAP(CAP247, 0, "x-cap247"), \ + _CAP(CAP248, 0, "x-cap248"), \ + _CAP(CAP249, 0, "x-cap249"), \ + _CAP(CAP250, 0, "x-cap250"), \ + _CAP(CAP251, 0, "x-cap251"), \ + _CAP(CAP252, 0, "x-cap252"), \ + _CAP(CAP253, 0, "x-cap253"), \ + _CAP(CAP254, 0, "x-cap254"), \ + _CAP(CAP255, 0, "x-cap255"), \ + _CAP(CAP256, 0, "x-cap256"), \ + _CAP(CAP257, 0, "x-cap257"), \ + _CAP(CAP258, 0, "x-cap258"), \ + _CAP(CAP259, 0, "x-cap259"), \ + _CAP(CAP260, 0, "x-cap260"), \ + _CAP(CAP261, 0, "x-cap261"), \ + _CAP(CAP262, 0, "x-cap262"), \ + _CAP(CAP263, 0, "x-cap263"), \ + _CAP(CAP264, 0, "x-cap264"), \ + _CAP(CAP265, 0, "x-cap265"), \ + _CAP(CAP266, 0, "x-cap266"), \ + _CAP(CAP267, 0, "x-cap267"), \ + _CAP(CAP268, 0, "x-cap268"), \ + _CAP(CAP269, 0, "x-cap269"), \ + _CAP(CAP270, 0, "x-cap270"), \ + _CAP(CAP271, 0, "x-cap271"), \ + _CAP(CAP272, 0, "x-cap272"), \ + _CAP(CAP273, 0, "x-cap273"), \ + _CAP(CAP274, 0, "x-cap274"), \ + _CAP(CAP275, 0, "x-cap275"), \ + _CAP(CAP276, 0, "x-cap276"), \ + _CAP(CAP277, 0, "x-cap277"), \ + _CAP(CAP278, 0, "x-cap278"), \ + _CAP(CAP279, 0, "x-cap279"), \ + _CAP(CAP280, 0, "x-cap280"), \ + _CAP(CAP281, 0, "x-cap281"), \ + _CAP(CAP282, 0, "x-cap282"), \ + _CAP(CAP283, 0, "x-cap283"), \ + _CAP(CAP284, 0, "x-cap284"), \ + _CAP(CAP285, 0, "x-cap285"), \ + _CAP(CAP286, 0, "x-cap286"), \ + _CAP(CAP287, 0, "x-cap287"), \ + _CAP(CAP288, 0, "x-cap288"), \ + _CAP(CAP289, 0, "x-cap289"), \ + _CAP(CAP290, 0, "x-cap290"), \ + _CAP(CAP291, 0, "x-cap291"), \ + _CAP(CAP292, 0, "x-cap292"), \ + _CAP(CAP293, 0, "x-cap293"), \ + _CAP(CAP294, 0, "x-cap294"), \ + _CAP(CAP295, 0, "x-cap295"), \ + _CAP(CAP296, 0, "x-cap296"), \ + _CAP(CAP297, 0, "x-cap297"), \ + _CAP(CAP298, 0, "x-cap298"), \ + _CAP(CAP299, 0, "x-cap299"), \ + _CAP(CAP300, 0, "x-cap300"), \ + _CAP(CAP301, 0, "x-cap301"), \ + _CAP(CAP302, 0, "x-cap302"), \ + _CAP(CAP303, 0, "x-cap303"), \ + _CAP(CAP304, 0, "x-cap304"), \ + _CAP(CAP305, 0, "x-cap305"), ... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-01-05 11:58:59
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 11:58:46 UTC Modified files: ChangeLog ChangeLog.es Makefile.in configure configure.in doc/ircd.sample-en.conf doc/ircd.sample-es.conf include/patchlevel.h include/res.h include/s_bsd.h include/sys.h include/uping.h ircd/.cvsignore ircd/IPcheck.c ircd/gline.c ircd/ircd.c ircd/ircd_auth.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/ircd_res.c ircd/ircd_string.c ircd/listener.c ircd/match.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_user.c ircd/uping.c ircd/whocmds.c Added files: ircd/test/.cvsignore ircd/test/Makefile.in ircd/test/ircd_in_addr_t.c ircd/test/test_stub.c Removed files: ircd/test/Makefile Log message: Author: zoltan <zo...@ir...> Log message: 2005-01-05 Toni García <zo...@ir...> 1.0.alpha15 * Parchear Soporte de IPv6 ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.15 ircd-ircdev/ChangeLog:1.16 --- ircd-ircdev/ChangeLog:1.15 Tue Dec 28 03:15:43 2004 +++ ircd-ircdev/ChangeLog Wed Jan 5 03:58:33 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.15 2004/12/28 11:15:43 zolty Exp $ +# $Id: ChangeLog,v 1.16 2005/01/05 11:58:33 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-01-05 Toni García <zo...@ir...> 1.0.alpha15 + * Fix IPv6 support + 2004-11-28 Toni García <zo...@ir...> 1.0.alpha14 * Implementation IRC capabilities draft * Undernet synchorinization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.15 ircd-ircdev/ChangeLog.es:1.16 --- ircd-ircdev/ChangeLog.es:1.15 Tue Dec 28 03:15:43 2004 +++ ircd-ircdev/ChangeLog.es Wed Jan 5 03:58:33 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.15 2004/12/28 11:15:43 zolty Exp $ +# $Id: ChangeLog.es,v 1.16 2005/01/05 11:58:33 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-01-05 Toni García <zo...@ir...> 1.0.alpha15 + * Parchear Soporte de IPv6 + 2004-11-28 Toni García <zo...@ir...> 1.0.alpha14 * Implementacion del estándar "IRC Capabilities" * Sincronizacion Undernet Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.5 ircd-ircdev/Makefile.in:1.6 --- ircd-ircdev/Makefile.in:1.5 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/Makefile.in Wed Jan 5 03:58:33 2005 @@ -29,8 +29,8 @@ @SET_MAKE@ #### End of system configuration section. #### -SUBDIRS = doc ircd -IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile +SUBDIRS = doc ircd ircd/test +IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile ircd/test/Makefile all: build @@ -140,6 +140,9 @@ ircd/Makefile: ircd/Makefile.in config.status ./config.status +ircd/test/Makefile: ircd/test/Makefile.in config.status + ./config.status + config.status: configure ./config.status --recheck Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.9 ircd-ircdev/configure:1.10 --- ircd-ircdev/configure:1.9 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/configure Wed Jan 5 03:58:33 2005 @@ -10187,7 +10187,7 @@ _ACEOF - ac_config_files="$ac_config_files Makefile ircd/Makefile doc/Makefile" + ac_config_files="$ac_config_files Makefile ircd/Makefile ircd/test/Makefile doc/Makefile" ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -10719,6 +10719,7 @@ # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "ircd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ircd/Makefile" ;; + "ircd/test/Makefile" ) CONFIG_FILES="$CONFIG_FILES ircd/test/Makefile" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; Index: ircd-ircdev/configure.in diff -u ircd-ircdev/configure.in:1.8 ircd-ircdev/configure.in:1.9 --- ircd-ircdev/configure.in:1.8 Wed Nov 24 08:11:31 2004 +++ ircd-ircdev/configure.in Wed Jan 5 03:58:34 2005 @@ -22,7 +22,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl $Id: configure.in,v 1.8 2004/11/24 16:11:31 zolty Exp $ +dnl $Id: configure.in,v 1.9 2005/01/05 11:58:34 zolty Exp $ dnl dnl Make sure we are in the correct directory (someone could have run @@ -749,7 +749,7 @@ [Maximum number of network connections]) dnl Finally really generate all output files: -AC_OUTPUT(Makefile ircd/Makefile doc/Makefile, [echo timestamp > stamp-h]) +AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile doc/Makefile, [echo timestamp > stamp-h]) dnl Report configuration echo "IRC-Dev ircd is now hopefully configured for your system." Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.9 ircd-ircdev/doc/ircd.sample-en.conf:1.10 --- ircd-ircdev/doc/ircd.sample-en.conf:1.9 Mon Dec 27 03:25:29 2004 +++ ircd-ircdev/doc/ircd.sample-en.conf Wed Jan 5 03:58:34 2005 @@ -53,8 +53,8 @@ # First some information about the server. # General { # name = "servername"; -# vhost = "virtualhost"; -# resolver = "ipaddress"; +# vhost = "ipv4vhost"; +# vhost = "ipv6vhost"; # description = "description"; # numeric = numericnumber; # }; @@ -66,8 +66,9 @@ # it. See "Port" block for listener virtual hosting. If in doubt, # leave it out. # -# You may need to specify the "resolver" address if your compile -# defaults to using IPv6 but your resolvers are all IPv4 hosts. +# You may specify both an IPv4 virtual host and an IPv6 virtual host, +# to indicate which address should be used for outbound connections +# of the respective type. # # Note that "numeric" field has to be unique on the network your server # is running on, must be between 0 and 4095, and is not updated on a rehash. Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.5 ircd-ircdev/doc/ircd.sample-es.conf:1.6 --- ircd-ircdev/doc/ircd.sample-es.conf:1.5 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/doc/ircd.sample-es.conf Wed Jan 5 03:58:34 2005 @@ -59,8 +59,8 @@ # Primero una información sobre el servidor. # General { # name = "nombreservidor"; -# vhost = "virtualhost"; -# resolver = "direccionip"; +# vhost = "ipv4vhost"; +# vhost = "ipv6vhost"; # description = "descripcion"; # numeric = númerodenúmerico; # }; @@ -72,8 +72,9 @@ # "Connect" no la elimina. Veáse el bloque "Port" para la escucha con # virtual hosting. En caso de duda no pongas nada. # -# Puede que necesites especificar la dirección del resolvedor DNS si tu -# has compilado con IPv6 pero tus resolvedores son hosts de IPv4. +# Puedes especificar un virtualhost de IPv4 y un virtualhost de IPv6, +# para indicar cuál de las direcciones se debe utilizar para las +# conexiones salientes del tipo respectivo. # # Observe que el campo "numeric" tiene que ser único en la red si tu # servidor esta funcionando, y debe estar entre 0 y 4095, y no se Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.15 ircd-ircdev/include/patchlevel.h:1.16 --- ircd-ircdev/include/patchlevel.h:1.15 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/patchlevel.h Wed Jan 5 03:58:34 2005 @@ -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.15 2004/12/28 11:15:44 zolty Exp $ + * $Id: patchlevel.h,v 1.16 2005/01/05 11:58:34 zolty Exp $ * */ -#define PATCHLEVEL ".alpha14" +#define PATCHLEVEL ".alpha15" #define RELEASE "1.0" Index: ircd-ircdev/include/res.h diff -u ircd-ircdev/include/res.h:1.5 ircd-ircdev/include/res.h:1.6 --- ircd-ircdev/include/res.h:1.5 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/res.h Wed Jan 5 03:58:35 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC resolver API. - * @version $Id: res.h,v 1.5 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: res.h,v 1.6 2005/01/05 11:58:35 zolty Exp $ */ #ifndef INCLUDED_res_h @@ -148,9 +148,30 @@ extern void gethost_byname(const char *name, const struct DNSQuery *query); extern void gethost_byaddr(const struct irc_in_addr *addr, const struct DNSQuery *query); -extern int irc_in_addr_valid(const struct irc_in_addr *addr); -extern int irc_in_addr_cmp(const struct irc_in_addr *a, const struct irc_in_addr *b); -extern int irc_in_addr_is_ipv4(const struct irc_in_addr *addr); -extern int irc_in_addr_is_loopback(const struct irc_in_addr *addr); +/** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */ +#define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \ + || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[2] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[3] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[4] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[5] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[6] != (ADDR)->in6_16[0] \ + || (ADDR)->in6_16[7] != (ADDR)->in6_16[0]) +/** Evaluate to non-zero if \a ADDR (of type struct irc_in_addr) is an IPv4 address. */ +#define irc_in_addr_is_ipv4(ADDR) (!(ADDR)->in6_16[0] && !(ADDR)->in6_16[1] && !(ADDR)->in6_16[2] \ + && !(ADDR)->in6_16[3] && !(ADDR)->in6_16[4] && (ADDR)->in6_16[6] \ + && (!(ADDR)->in6_16[5] || (ADDR)->in6_16[5] == 65535)) +/** Evaluate to non-zero if \a A is a different IP than \a B. */ +#define irc_in_addr_cmp(A,B) (irc_in_addr_is_ipv4(A) ? ((A)->in6_16[6] != (B)->in6_16[6] \ + || (A)->in6_16[7] != (B)->in6_16[7] || !irc_in_addr_is_ipv4(B)) \ + : memcmp((A), (B), sizeof(struct irc_in_addr))) +/** Evaluate to non-zero if \a ADDR is a loopback address. */ +#define irc_in_addr_is_loopback(ADDR) (!(ADDR)->in6_16[0] && !(ADDR)->in6_16[1] && !(ADDR)->in6_16[2] \ + && !(ADDR)->in6_16[3] && !(ADDR)->in6_16[4] \ + && ((!(ADDR)->in6_16[5] \ + && ((!(ADDR)->in6_16[6] && (ADDR)->in6_16[7] == htons(1)) \ + || (ntohs((ADDR)->in6_16[6]) & 0xff00) == 0x7f00)) \ + || (((ADDR)->in6_16[5] == 65535) \ + && (ntohs((ADDR)->in6_16[6]) & 0xff00) == 0x7f00))) #endif Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.4 ircd-ircdev/include/s_bsd.h:1.5 --- ircd-ircdev/include/s_bsd.h:1.4 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/s_bsd.h Wed Jan 5 03:58:35 2005 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.4 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: s_bsd.h,v 1.5 2005/01/05 11:58:35 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -73,7 +73,8 @@ extern int HighestFd; extern struct Client* LocalClientArray[MAXCONNECTIONS]; -extern struct irc_sockaddr VirtualHost; +extern struct irc_sockaddr VirtualHost_v4; +extern struct irc_sockaddr VirtualHost_v6; /* * Proto types Index: ircd-ircdev/include/sys.h diff -u ircd-ircdev/include/sys.h:1.2 ircd-ircdev/include/sys.h:1.3 --- ircd-ircdev/include/sys.h:1.2 Sun Feb 22 08:13:21 2004 +++ ircd-ircdev/include/sys.h Wed Jan 5 03:58:35 2005 @@ -18,20 +18,12 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: sys.h,v 1.2 2004/02/22 16:13:21 zolty Exp $ + * $Id: sys.h,v 1.3 2005/01/05 11:58:35 zolty Exp $ * */ #ifndef INCLUDED_sys_h #define INCLUDED_sys_h -#if WORDS_BIGENDIAN -# define BIT_ZERO_ON_LEFT -#else -# define BIT_ZERO_ON_RIGHT -#endif - -#define HAVE_RELIABLE_SIGNALS - /* * safety margin so we can always have one spare fd, for motd/authd or * whatever else. -24 allows "safety" margin of 10 listen ports, 8 servers @@ -39,23 +31,6 @@ */ #define MAXCLIENTS (MAXCONNECTIONS-24) -#ifdef HAVECURSES -#define DOCURSES -#else -#undef DOCURSES -#endif - -#ifdef HAVETERMCAP -#define DOTERMCAP -#else -#undef DOTERMCAP -#endif - -#ifndef CONFIG_SETUGID -#undef IRC_UID -#undef IRC_GID -#endif - /* Define FD_SETSIZE to what we want before including sys/types.h on BSD */ #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__bsdi__) #if ((!defined(USE_POLL)) && (!defined(FD_SETSIZE))) @@ -63,16 +38,7 @@ #endif #endif -#define LIMIT_FMT "%d" - #define IRCD_MAX(a, b) ((a) > (b) ? (a) : (b)) #define IRCD_MIN(a, b) ((a) < (b) ? (a) : (b)) -#ifndef FALSE -#define FALSE 0 -#endif -#ifndef TRUE -#define TRUE 1 -#endif - #endif /* INCLUDED_sys_h */ Index: ircd-ircdev/include/uping.h diff -u ircd-ircdev/include/uping.h:1.3 ircd-ircdev/include/uping.h:1.4 --- ircd-ircdev/include/uping.h:1.3 Wed Nov 24 08:00:44 2004 +++ ircd-ircdev/include/uping.h Wed Jan 5 03:58:35 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief UDP ping implementation. - * @version $Id: uping.h,v 1.3 2004/11/24 16:00:44 zolty Exp $ + * @version $Id: uping.h,v 1.4 2005/01/05 11:58:35 zolty Exp $ */ #ifndef INCLUDED_uping_h #define INCLUDED_uping_h @@ -79,7 +79,6 @@ extern void uping_read(struct UPing* pptr); extern void uping_end(struct UPing* pptr); extern void uping_cancel(struct Client *sptr, struct Client *acptr); -extern void uping_echo(void); extern struct UPing* uping_begin(void); extern int uping_server(struct Client* sptr, struct ConfItem* aconf, int port, int count); Index: ircd-ircdev/ircd/.cvsignore diff -u ircd-ircdev/ircd/.cvsignore:1.3 ircd-ircdev/ircd/.cvsignore:1.4 --- ircd-ircdev/ircd/.cvsignore:1.3 Sun Feb 22 08:11:42 2004 +++ ircd-ircdev/ircd/.cvsignore Wed Jan 5 03:58:35 2005 @@ -4,6 +4,7 @@ ircd chkconf table_gen +umkpasswd chattr.tab.c autom4te.cache lex.yy.c Index: ircd-ircdev/ircd/IPcheck.c diff -u ircd-ircdev/ircd/IPcheck.c:1.6 ircd-ircdev/ircd/IPcheck.c:1.7 --- ircd-ircdev/ircd/IPcheck.c:1.6 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/IPcheck.c Wed Jan 5 03:58:35 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Code to count users connected from particular IP addresses. - * @version $Id: IPcheck.c,v 1.6 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: IPcheck.c,v 1.7 2005/01/05 11:58:35 zolty Exp $ */ #include "config.h" @@ -330,12 +330,15 @@ */ int ip_registry_check_remote(struct Client* cptr, int is_burst) { - struct IPRegistryEntry* entry = ip_registry_find(&cli_ip(cptr)); + struct IPRegistryEntry* entry; /* * Mark that we did add/update an IPregistry entry */ SetIPChecked(cptr); + if (!irc_in_addr_valid(&cli_ip(cptr))) + return 1; + entry = ip_registry_find(&cli_ip(cptr)); if (0 == entry) { entry = ip_registry_new_entry(); ip_registry_canonicalize(&entry->addr, &cli_ip(cptr)); Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.9 ircd-ircdev/ircd/gline.c:1.10 --- ircd-ircdev/ircd/gline.c:1.9 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/gline.c Wed Jan 5 03:58:35 2005 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.9 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: gline.c,v 1.10 2005/01/05 11:58:35 zolty Exp $ */ #include "config.h" @@ -47,14 +47,12 @@ #include "msg.h" #include "numnicks.h" #include "numeric.h" -#include "sys.h" /* FALSE bleah */ #include "whocmds.h" /* #include <assert.h> -- Now using assert in ircd_log.h */ #include <string.h> #include <stdio.h> #include <stdlib.h> -#include <arpa/inet.h> /* for inet_ntoa */ #define CHECK_APPROVED 0 /**< Mask is acceptable */ #define CHECK_OVERRIDABLE 1 /**< Mask is acceptable, but not by default */ @@ -250,7 +248,7 @@ /* let the ops know about it */ sendto_opmask_butone(0, SNO_GLINE, "G-line active for %s", - get_client_name(acptr, TRUE)); + get_client_name(acptr, SHOW_IP)); /* and get rid of him */ if ((tval = exit_client_msg(cptr, acptr, &me, "G-lined (%s)", Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.9 ircd-ircdev/ircd/ircd.c:1.10 --- ircd-ircdev/ircd/ircd.c:1.9 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd.c Wed Jan 5 03:58:35 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.9 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd.c,v 1.10 2005/01/05 11:58:35 zolty Exp $ */ #include "config.h" @@ -246,79 +246,64 @@ */ static void try_connections(struct Event* ev) { struct ConfItem* aconf; - struct Client* cptr; struct ConfItem** pconf; - int connecting; - int confrq; time_t next = 0; struct ConnectionClass* cltmp; - struct ConfItem* con_conf = 0; struct Jupe* ajupe; - const char* con_class = NULL; + int hold; assert(ET_EXPIRE == ev_type(ev)); assert(0 != ev_timer(ev)); - connecting = FALSE; Debug((DEBUG_NOTICE, "Connection check at : %s", myctime(CurrentTime))); for (aconf = GlobalConfList; aconf; aconf = aconf->next) { - /* Also when already connecting! (update holdtimes) --SRB */ - if (!(aconf->status & CONF_SERVER) || aconf->address.port == 0 || aconf->hold == 0) - continue; - - /* Also skip juped servers */ - if ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe)) - continue; - - /* Skip this entry if the use of it is still on hold until - * future. Otherwise handle this entry (and set it on hold until next - * time). Will reset only hold times, if already made one successfull - * connection... [this algorithm is a bit fuzzy... -- msa >;) ] + /* Only consider server items with non-zero port and non-zero + * connect times that are not actively juped. */ - if (aconf->hold > CurrentTime && (next > aconf->hold || next == 0)) { - next = aconf->hold; + if (!(aconf->status & CONF_SERVER) + || aconf->address.port == 0 + || aconf->hold == 0 + || ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe))) continue; - } + /* Update next possible connection check time. */ + if (next > aconf->hold || next == 0) + next = aconf->hold; + + /* Update the next time we can consider this entry. */ cltmp = aconf->conn_class; - confrq = get_con_freq(cltmp); - if(confrq == 0) - aconf->hold = next = 0; - else - aconf->hold = CurrentTime + confrq; + hold = aconf->hold > CurrentTime; /* before we update aconf->hold */ + aconf->hold = ConFreq(cltmp) ? CurrentTime + ConFreq(cltmp) : 0; - /* Found a CONNECT config with port specified, scan clients and see if - * this server is already connected? + /* Do not try to connect if its use is still on hold until future, + * too many links in its connection class, it is already linked, + * or if connect rules forbid a link now. */ - cptr = FindServer(aconf->name); - - if (!cptr && (Links(cltmp) < MaxLinks(cltmp)) && - (!connecting /*|| (ConClass(cltmp) > con_class)*/)) { - /* - * Check connect rules to see if we're allowed to try - */ - if (0 == conf_eval_crule(aconf->name, CRULE_MASK)) { - con_class = ConClass(cltmp); - con_conf = aconf; - /* We connect only one at time... */ - connecting = TRUE; - } + if (hold + || (Links(cltmp) >= MaxLinks(cltmp)) + || FindServer(aconf->name) + || conf_eval_crule(aconf->name, CRULE_MASK)) { + continue; } - if ((next > aconf->hold) || (next == 0)) - next = aconf->hold; - } - if (connecting) { - if (con_conf->next) { /* are we already last? */ - /* Put the current one at the end and make sure we try all connections */ - for (pconf = &GlobalConfList; (aconf = *pconf); pconf = &(aconf->next)) - if (aconf == con_conf) + + /* Ensure it is at the end of the list for future checks. */ + if (aconf->next) { + /* Find aconf's location in the list and splice it out. */ + for (pconf = &GlobalConfList; *pconf; pconf = &(*pconf)->next) + if (*pconf == aconf) *pconf = aconf->next; - (*pconf = con_conf)->next = 0; + /* Reinsert it at the end of the list (where pconf is now). */ + *pconf = aconf; + aconf->next = 0; } - if (connect_server(con_conf, 0)) + /* Activate the connection itself. */ + if (connect_server(aconf, 0)) sendto_opmask_butone(0, SNO_OLDSNO, "Connection to %s activated.", - con_conf->name); + aconf->name); + + /* And stop looking for further candidates. */ + break; } if (next == 0) Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.2 ircd-ircdev/ircd/ircd_auth.c:1.3 --- ircd-ircdev/ircd/ircd_auth.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_auth.c Wed Jan 5 03:58:35 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_auth.c,v 1.3 2005/01/05 11:58:35 zolty Exp $ */ #include "config.h" #include "client.h" @@ -51,7 +51,6 @@ #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> -#include <arpa/inet.h> #ifdef HAVE_STDINT_H #include <stdint.h> #endif @@ -448,6 +447,7 @@ */ static void iauth_reconnect(struct IAuth *iauth) { + struct irc_sockaddr *local; IOResult result; int fd; @@ -459,7 +459,8 @@ gethost_byname(i_host(iauth), &i_query(iauth)); return; } - fd = os_socket(&VirtualHost, SOCK_STREAM, "IAuth"); + local = irc_in_addr_is_ipv4(&i_addr(iauth).addr) ? &VirtualHost_v4 : &VirtualHost_v6; + fd = os_socket(local, SOCK_STREAM, "IAuth"); if (fd < 0) return; if (!os_set_sockbufs(fd, SERVER_TCP_WINDOW, SERVER_TCP_WINDOW)) { Index: ircd-ircdev/ircd/ircd_lexer.l diff -u ircd-ircdev/ircd/ircd_lexer.l:1.6 ircd-ircdev/ircd/ircd_lexer.l:1.7 --- ircd-ircdev/ircd/ircd_lexer.l:1.6 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_lexer.l Wed Jan 5 03:58:35 2005 @@ -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_lexer.l,v 1.6 2004/12/28 11:15:45 zolty Exp $ + * $Id: ircd_lexer.l,v 1.7 2005/01/05 11:58:35 zolty Exp $ * */ @@ -78,7 +78,6 @@ TOKEN(OPER), TOKEN(LOCAL), TOKEN(VHOST), - TOKEN(RESOLVER), TOKEN(MASK), TOKEN(HIDDEN), TOKEN(MOTD), Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.8 ircd-ircdev/ircd/ircd_parser.y:1.9 --- ircd-ircdev/ircd/ircd_parser.y:1.8 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_parser.y Wed Jan 5 03:58:35 2005 @@ -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_parser.y,v 1.8 2004/12/28 11:15:45 zolty Exp $ + * $Id: ircd_parser.y,v 1.9 2005/01/05 11:58:35 zolty Exp $ * */ %{ @@ -67,7 +67,6 @@ extern struct ServerConf* serverConfList; extern struct s_map* GlobalServiceMapList; extern struct qline* GlobalQuarantineList; - extern struct irc_sockaddr ResolverAddr; int yylex(void); /* Now all the globals we need :/... */ @@ -138,7 +137,6 @@ %token NO %token OPER %token VHOST -%token RESOLVER %token HIDDEN %token MOTD %token JUPE @@ -275,7 +273,7 @@ parse_error("Your General block must contain a numeric (between 1 and 4095)."); } ';' ; generalitems: generalitem generalitems | generalitem; -generalitem: generalnumeric | generalname | generalvhost | generalresolver | generaldesc | error; +generalitem: generalnumeric | generalname | generalvhost | generaldesc | error; generalnumeric: NUMERIC '=' NUMBER ';' { if (localConf.numeric == 0) @@ -303,12 +301,13 @@ generalvhost: VHOST '=' QSTRING ';' { - ircd_aton(&VirtualHost.addr, $3); -}; - -generalresolver: RESOLVER '=' QSTRING ';' -{ - ircd_aton(&ResolverAddr.addr, $3); + struct irc_in_addr addr; + if (!ircd_aton(&addr, $3)) + parse_error("Invalid virtual host '%s'.", $3); + else if (irc_in_addr_is_ipv4(&addr)) + memcpy(&VirtualHost_v4.addr, &addr, sizeof(addr)); + else + memcpy(&VirtualHost_v6.addr, &addr, sizeof(addr)); }; adminblock: ADMIN '{' adminitems '}' Index: ircd-ircdev/ircd/ircd_res.c diff -u ircd-ircdev/ircd/ircd_res.c:1.2 ircd-ircdev/ircd/ircd_res.c:1.3 --- ircd-ircdev/ircd/ircd_res.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_res.c Wed Jan 5 03:58:35 2005 @@ -41,7 +41,7 @@ */ /** @file * @brief IRC resolver functions. - * @version $Id: ircd_res.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_res.c,v 1.3 2005/01/05 11:58:35 zolty Exp $ */ #include "client.h" #include "ircd_alloc.h" @@ -72,8 +72,10 @@ #error this code needs to be able to address individual octets #endif -/** Resolver UDP socket. */ -static struct Socket res_socket; +/** IPv4 resolver UDP socket. */ +static struct Socket res_socket_v4; +/** IPv6 resolver UDP socket. */ +static struct Socket res_socket_v6; /** Next DNS lookup timeout. */ static struct Timer res_timeout; /** Check for whether the resolver has been initialized yet. */ @@ -162,8 +164,6 @@ extern int irc_nscount; extern char irc_domain[HOSTLEN]; -struct irc_sockaddr ResolverAddr; - /** Check whether \a inp is a nameserver we use. * @param[in] inp Nameserver address. * @return Non-zero if we trust \a inp; zero if not. @@ -193,17 +193,24 @@ if (!request_list.next) request_list.next = request_list.prev = &request_list; - if (!s_active(&res_socket)) + if (!s_active(&res_socket_v4)) { - struct irc_sockaddr *local; - int fd; - local = irc_in_addr_valid(&ResolverAddr.addr) ? &ResolverAddr : &VirtualHost; - fd = os_socket(local, SOCK_DGRAM, "Resolver UDP socket"); - if (fd < 0) return; - if (!socket_add(&res_socket, res_readreply, NULL, SS_DATAGRAM, - SOCK_EVENT_READABLE, fd)) return; - timer_init(&res_timeout); + int fd = os_socket(&VirtualHost_v4, SOCK_DGRAM, "Resolver UDPv4 socket"); + if (fd >= 0) + socket_add(&res_socket_v4, res_readreply, NULL, + SS_DATAGRAM, SOCK_EVENT_READABLE, fd); + } + + if (!s_active(&res_socket_v6)) + { + int fd = os_socket(&VirtualHost_v6, SOCK_DGRAM, "Resolver UDPv6 socket"); + if (fd >= 0) + socket_add(&res_socket_v6, res_readreply, NULL, + SS_DATAGRAM, SOCK_EVENT_READABLE, fd); } + + if (s_active(&res_socket_v4) || s_active(&res_socket_v6)) + timer_init(&res_timeout); } /** Append local domain to hostname if needed. @@ -387,9 +394,11 @@ if (max_queries == 0) max_queries = 1; - for (i = 0; i < max_queries; i++) - if (os_sendto_nonb(s_fd(&res_socket), msg, len, NULL, 0, &irc_nsaddr_list[i]) == IO_SUCCESS) + for (i = 0; i < max_queries; i++) { + int fd = irc_in_addr_is_ipv4(&irc_nsaddr_list[i].addr) ? s_fd(&res_socket_v4) : s_fd(&res_socket_v6); + if (os_sendto_nonb(fd, msg, len, NULL, 0, &irc_nsaddr_list[i]) == IO_SUCCESS) ++sent; + } return(sent); } @@ -755,7 +764,7 @@ unsigned int rc; int answer_count; - assert(ev_socket(ev) == &res_socket); + assert((ev_socket(ev) == &res_socket_v4) || (ev_socket(ev) == &res_socket_v6)); sock = ev_socket(ev); if (IO_SUCCESS != os_recvfrom_nonb(s_fd(sock), buf, sizeof(buf), &rc, &lsin) @@ -941,55 +950,3 @@ ":Resolver: requests %d(%d)", request_count, request_mem); return request_mem; } - -/** Check whether an address looks valid. - * This means not all 0s and not all 1s. - * @param[in] addr Address to check for validity. - * @return Non-zero if the address looks valid. - */ -int irc_in_addr_valid(const struct irc_in_addr *addr) -{ - unsigned int ii; - unsigned short val; - - val = addr->in6_16[0]; - if (val != 0 && val != 0xffff) - return 1; - for (ii = 1; ii < 8; ii++) - if (addr->in6_16[ii] != val) - return 1; - return 0; -} - -/** Compare two IP addresses. - * @param[in] a First address to compare. - * @param[in] b Second address to compare. - * @return Non-zero if the two addresses differ, zero if they are identical. - */ -int irc_in_addr_cmp(const struct irc_in_addr *a, const struct irc_in_addr *b) -{ - if (irc_in_addr_is_ipv4(a)) - return a->in6_16[6] != b->in6_16[6] - || a->in6_16[7] != b->in6_16[7] - || !irc_in_addr_is_ipv4(b); - else - return memcmp(a, b, sizeof(*a)); -} - -/** Indicate whether an IP address is a loopback address. - * @param[in] addr Address to check. - * @return Non-zero if the address is loopback; zero if not. - */ -int irc_in_addr_is_loopback(const struct irc_in_addr *addr) -{ - if (addr->in6_16[0] != 0 - || addr->in6_16[1] != 0 - || addr->in6_16[2] != 0 - || addr->in6_16[3] != 0 - || addr->in6_16[4] != 0) - return 0; - if ((addr->in6_16[5] == 0xffff) || (addr->in6_16[5] == 0 && addr->in6_16[6] != 0)) - return (ntohs(addr->in6_16[6]) & 0xff00) == 0x7f00; - else - return addr->in6_16[5] == 0 && addr->in6_16[6] == 0 && htons(addr->in6_16[7]) == 1; -} Index: ircd-ircdev/ircd/ircd_string.c diff -u ircd-ircdev/ircd/ircd_string.c:1.5 ircd-ircdev/ircd/ircd_string.c:1.6 --- ircd-ircdev/ircd/ircd_string.c:1.5 Tue Dec 28 03:15:46 2004 +++ ircd-ircdev/ircd/ircd_string.c Wed Jan 5 03:58:35 2005 @@ -21,7 +21,7 @@ */ /** @file * @br... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-01-05 16:33:01
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 16:32:53 UTC Added files: doc/en/api/events.txt doc/en/api/features.txt doc/en/api/gline.txt doc/en/api/ircd_snprintf.txt doc/en/api/joinbuf.txt doc/en/api/jupe.txt doc/en/api/modebuf.txt doc/en/api/motd.txt doc/en/api/msgq.txt doc/en/api/privileges.txt doc/en/api/send.txt Log message: Documentacion API en ingles. ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/api/events.txt diff -u /dev/null ircd-ircdev/doc/en/api/events.txt:1.1 --- /dev/null Wed Jan 5 08:32:54 2005 +++ ircd-ircdev/doc/en/api/events.txt Wed Jan 5 08:32:43 2005 @@ -0,0 +1,816 @@ +The IRC server is built around an event loop. Until the u2.10.11 +release, this event loop has been rather ad-hoc; timed events are +hard-coded in, signals are handled inside the signal handler, etc. +All of this has changed with u2.10.11. A new subsystem, the events +subsystem, has been introduced; the new subsystem contains a +generalization of the concept of an event. An event is a signal, the +expiration of a timer, or some form of activity on a network socket. +This new subsystem has the potential to vastly simplify the code that +is arguably the core of any network program, and makes it much simpler +to support more exotic forms of network activity monitoring than the +conventional select() and poll() calls. + +The primary concepts that the events subsystem works with are the +"event," represented by a struct Event, and the "generator." There +are three types of generators: sockets, represented by struct Socket; +signals, represented by struct Signal; and timers, represented by +struct Timer. Each of these generators will be described in turn. + +Signals + +The signal is perhaps the simplest generator in the entire events +subsystem. Basically, instead of setting a signal handler, the +function signal_add() is called, specifying a function to be called +when a given signal is detected. Most importantly, that call-back +function is called _outside_ the context of a signal handler, +permitting the call-back to use more exotic functions that are +anathema within a signal handler, such as MyMalloc(). Once a +call-back for a signal has been established, it cannot be deleted; +this design decision was driven by the fact that ircd never changes +its signal handlers. + +Whenever a signal is received, an event of type ET_SIGNAL is +generated, and that event is passed to the event call-back function +specified in the signal_add() call. + +Timers + +Execution of the call-back functions for a timer occur when that timer +_expires_; when a timer expires depends on the type of timer and the +expiration time that was used for that timer. A TT_ABSOLUTE timer, +for instance, expires at exactly the time given as the expiration +time. This time is a standard UNIX time_t value, measuring seconds +since the UNIX epoch. The TT_ABSOLUTE timer type is complemented by +the TT_RELATIVE timer; the time passed as its expiration time is +relative to the current time. If a TT_RELATIVE timer is given an +expiration time of 5, for instance, it will expire 5 seconds after the +present time. Internally, TT_RELATIVE timers are converted into +TT_ABSOLUTE timers, with the expiration time adjusted by addition of +the current time. + +Those two types of timers, TT_ABSOLUTE and TT_RELATIVE, are +single-shot timers. Once they expire, they are removed from the timer +list unless re-added by the event call-back or through some other +mechanism. There is another type of timer, however, the TT_PERIODIC +timer, that is not removed from the timer list. TT_PERIODIC timers +are similar to TT_RELATIVE timers, in that one passes in the expire +time as a relative number of seconds, but when they expire, they are +re-added to the timer list with the same relative expire time. This +means that a TT_PERIODIC timer with an expire time of 5 seconds that +is set at 11:50:00 will have its call-back called at 11:50:05, +11:50:10, 11:50:15, and so on. + +Timers have to be run by the event engines explicitly by calling +timer_run() on the generator list passed to the engine event loop. +In addition, engines may determine the next (absolute) time that a +timer needs to be run by calling the timer_next() macro; this may be +used to set a timeout on the engine's network activity monitoring +function. Engines are described in detail below. + +When a timer expires, an event of ET_EXPIRE is generated, and the +call-back function is called. When a timer is destroyed, either as +the result of an expiration or as a result of an explicit timer_del() +call, an event of ET_DESTROY is generated, notifying the call-back +that the struct Timer can be deallocated. + +Sockets + +Perhaps the most complicated event generator in all of the event +system is the socket, as described by struct Socket. This single +classification covers datagram sockets and stream sockets. To +differentiate the different kinds of sockets, there is a socket state +associated with each socket. The available states are SS_CONNECTING, +which indicates that a particular socket is in the process of +completing a non-blocking connect(); SS_LISTENING, which indicates +that a particular socket is a listening socket; SS_CONNECTED, which is +the state of every other stream socket; SS_DATAGRAM, which is an +ordinary datagram socket, and SS_CONNECTDG, which describes a +connected datagram socket. (The SS_NOTSOCK state is for the internal +use of the events system and will not be described here.) + +In addition to the socket states, there's also an event mask for each +socket; this set of flags is used to tell the events subsystem what +events the application is interested in for the socket. For +SS_CONNECTING and SS_LISTENING sockets, this events mask has no +meaning, but on the other socket states, the event mask is used to +determine if the application is interested in readable +(SOCK_EVENT_READABLE) or writable (SOCK_EVENT_WRITABLE) indications. + +Most of the defined event types have to do with socket generators. +When a socket turns up readable, for instance, an event of type +ET_READ is generated. Similarly, ET_WRITE is generated when a socket +can be written to. The ET_ACCEPT event is generated when a listening +socket indicates that there is a connection to be accepted; ET_CONNECT +is generated when a non-blocking connect is completed. Finally, if an +end-of-file indication is detected, ET_EOF is generated, whereas if an +error has occurred on the socket, ET_ERROR is generated. Of course, +when a socket has been deleted by the socket_del() function, an event +of ET_DESTROY is generated when it is safe for the memory used by the +struct Socket to be reclaimed. + +Events + +An event, represented by a struct Event, describes in detail all of +the particulars of an event. Each event has a type, and an optional +integer piece of data may be passed with some events--in particular, +ET_SIGNAL events pass the signal number, and ET_ERROR events pass the +errno value. The struct Event also contains a pointer to the +structure describing the generated event--although it should be noted +that the only way to disambiguate which type of generator is contained +within the struct Event is by which call-back function has been +called. + +All generators have a void pointer which can be used to pass important +information to the call-back, such as a pointer to a struct Client. +Additionally, generators have a reference count, and a union of a void +pointer and an integer that should only be utilized by the event +engine. Finally, there is also a field for flags, although the only +flag of concern to the application (or the engine) is the active flag, +which may be tested using the test macros described below. + +Whatever the generator, the call-back function is a function returning +nothing (void) and taking as its sole argument a pointer to struct +Event. This call-back function may be implemented as a single switch +statement that calls out to appropriate external functions as needed. + +Engines + +Engines implement the actual socket event loop, and may also have some +means of receiving signal events. Each engine has a name, which +should describe what its core function is; for instance, the engine +based on the standard select() function is named, simply, "select()." +Each engine must implement several call-backs which are used to +initialize the engine, notify the engine of sockets the application is +interested in, etc. All of this data is described by a single struct +Engine, which should be the only non-static variable or function in +the engine's source file. + +The engine's event loop, pointed to by the eng_loop field of the +struct Engine, must consist of a single while loop predicated on the +global variable _running_. Additionally, this loop's final statement +must be a call to timer_run(), to execute all timers that have become +due. Ideally, this construction should be pulled out of each engine's +eng_loop and put in the event_loop() function of the events +subsystem. + +Reference Counts + +As mentioned previously, all generators keep a reference count. +Should timer_del() or socket_del() be called on a generator with a +non-zero reference count, for whatever reason, the actual destruction +of the generator will be delayed until the reference count again +reaches zero. This is used by the event loop to keep sockets that it +is currently referencing from being deallocated before it is done +checking all pending events on them. To increment the reference count +by one, call gen_ref_inc() on the generator; the corresponding macro +gen_ref_dec() decrements the reference counts, and will automatically +destroy the generator if the appropriate conditions are met. + +Debugging Functions + +It can be difficult to debug an engines if, say, a socket state can +only be expressed as a meaningless number. Therefore, when DEBUGMODE +is #define'd, five number-to-name functions are also defined to make +the debugging data more meaningful. These functions must only be +called when DEBUGMODE is #define'd. Calling them from within Debug() +macro calls is safe; calling them from log_write() calls is not. + +<typedef> +typedef void (*EventCallBack)(struct Event*); + +The _EventCallBack_ type is used to simplify declaration of event +call-back functions. It is used in timer_add(), signal_add(), and +socket_add(). The event call-back should process the event, taking +whatever actions are necessary. The function should be declared as +returning void. +</typedef> + +<typedef> +typedef int (*EngineInit)(int); + +The _EngineInit_ function takes an integer specifying the maximum +number of sockets the event system is expecting to handle. This +number may be used by the engine initialization function for memory +allocation computations. If initialization succeeds, this function +must return 1. If initialization fails, the function should clean up +after itself and return 0. The events subsystem has the ability to +fall back upon another engine, should an engine initialization fail. +Needless to say, the engines based upon poll() and select() should +never fail in this way. +</typedef> + +<typedef> +typedef void (*EngineSignal)(struct Signal*); + +If an engine has the capability to directly detect signals, it should +set the eng_signal field of struct Engine non-zero. When the +application indicates interest in a particular signal, the +_EngineSignal_ function will be called with the filled-in struct +Signal, in order to register interest in that signal with the engine. +</typedef> + +<typedef> +typedef int (*EngineAdd)(struct Socket*); + +All engines must define an _EngineAdd_ function, which is used to +inform the engine of the application's interest in the socket. If the +new socket cannot be accommodated by the engine for whatever reason, +this function must return 0. Otherwise, the function must return 1, +informing the events subsystem that the interest has been noted. +</typedef> + +<typedef> +typedef void (*EngineState)(struct Socket*, enum SocketState new_state); + +Sockets can change state. SS_CONNECTING sockets, for instance, can +become SS_CONNECTED. Whenever a socket state changes, the engine is +informed, since some states require different notification procedures +than others. This is accomplished by calling the _EngineState_ +function with the new state. The struct Socket passed to the engine +will still have the old state, if the engine must reference that. +</typedef> + +<typedef> +typedef void (*EngineEvents)(struct Socket*, unsigned int new_events); + +Applications may only be interested in given events on a socket for a +limited time. When the application's interest shifts, a new events +mask is set for the socket. The engine is informed of this change by +a call to its _EngineEvents_ function. +</typedef> + +<typedef> +typedef void (*EngineDelete)(struct Socket*); + +Eventually, an application will close all the sockets it has opened. +When a socket is closed, and the corresponding struct Socket deleted +with a call to socket_del(), the _EngineDelete_ function will be +called to notify the engine of the change. +</typedef> + +<typedef> +typedef void (*EngineLoop)(struct Generators*); + +The workhorse of the entire events subsystem is the event loop, +implemented by each engine as the _EngineLoop_ function. This +function is called with a single argument that may be passed to +timer_next() to calculate the next time a timer will expire. +</typedef> + +<enum> +enum SocketState { + SS_CONNECTING, /* Connection in progress on socket */ + SS_LISTENING, /* Socket is a listening socket */ + SS_CONNECTED, /* Socket is a connected socket */ + SS_DATAGRAM, /* Socket is a datagram socket */ + SS_CONNECTDG, /* Socket is a connected datagram socket */ + SS_NOTSOCK /* Socket isn't a socket at all */ +}; + +This enumeration contains a list of all possible states a socket can +be in. Applications should not use SS_NOTSOCK; engines should treat +it as a special socket state for non-sockets. The only event that +should be watched for on a struct Socket in the SS_NOTSOCK state is +readability. This socket state is used to implement the fall-back +signal event generation. +</enum> + +<enum> +enum TimerType { + TT_ABSOLUTE, /* timer that runs at a specific time */ + TT_RELATIVE, /* timer that runs so many seconds in the future */ + TT_PERIODIC /* timer that runs periodically */ +}; + +The three possible timer types are defined by the TimerType +enumeration. More details can be found in the "Timers" sub-section. +</enum> + +<enum> +enum EventType { + ET_READ, /* Readable event detected */ + ET_WRITE, /* Writable event detected */ + ET_ACCEPT, /* Connection can be accepted */ + ET_CONNECT, /* Connection completed */ + ET_EOF, /* End-of-file on connection */ + ET_ERROR, /* Error condition detected */ + ET_SIGNAL, /* A signal was received */ + ET_EXPIRE, /* A timer expired */ + ET_DESTROY /* The generator is being destroyed */ +}; + +This enumeration contains all the types of events that can be +generated by the events subsystem. The first 6 are generated by +socket generators, the next by signal generators, and the next by +timer generators. ET_DESTROY is generated by both socket and timer +generators when the events subsystem is finished with the memory +allocated by both. +</enum> + +<struct> +struct Socket; + +This structure describes everything the events subsystem knows about a +given socket. All of its fields may be accessed through the s_* +macros described below. +</struct> + +<struct> +struct Timer; + +The struct Timer structure describes everything the events subsystem +knows about a given timer. Again, all of its fields may be accessed +through the t_* macros described below. +</struct> + +<struct> +struct Signal; + +Signal generators are described by a struct Signal. All of the fields +of a struct Signal may be accessed by the sig_* macros described +below. +</struct> + +<struct> +struct Event; + +Each event is described by a struct Event. Its fields may be examined +using the ev_* macros described below. +</struct> + +<struct> +struct Generators; + +Each engine is passed a list of all generators when the engine's +_EngineLoop_ function is called. The only valid way to access this +structure is via the timer_next() function described below. +</struct> + +<struct> +struct Engine { + const char* eng_name; /* a name for the engine */ + EngineInit eng_init; /* initialize engine */ + EngineSignal eng_signal; /* express interest in a signal */ + EngineAdd eng_add; /* express interest in a socket */ + EngineState eng_state; /* mention a change in state to engine */ + EngineEvents eng_events; /* express interest in socket events */ + EngineDelete eng_closing; /* socket is being closed */ + EngineLoop eng_loop; /* actual event loop */ +}; + +Each engine is described by the struct Engine structure. Each engine +must define all of the functions described above except for the +_EngineSignal_ function, which is optional. +</struct> + +<macro> +#define SOCK_EVENT_READABLE 0x0001 /* interested in readable */ + +The SOCK_EVENT_READABLE flag indicates to the engine that the +application is interested in readability on this particular socket. +</macro> + +<macro> +#define SOCK_EVENT_WRITABLE 0x0002 /* interested in writable */ + +The SOCK_EVENT_WRITABLE flag indicates to the engine that the +application is interested in this socket being writable. +</macro> + +<macro> +#define SOCK_EVENT_MASK (SOCK_EVENT_READABLE | SOCK_EVENT_WRITABLE) + +SOCK_EVENT_MASK may be used to extract only the event interest flags +from an event interest set. +</macro> + +<macro> +#define SOCK_ACTION_SET 0x0000 /* set interest set as follows */ + +When socket_events() is called with a set of event interest flags and +SOCK_ACTION_SET, the socket's event interest flags are set to those +passed into socket_events(). +</macro> + +<macro> +#define SOCK_ACTION_ADD 0x1000 /* add to interest set */ + +When SOCK_ACTION_ADD is used in a call to socket_events(), the event +interest flags passed in are added to the existing event interest +flags for the socket. +</macro> + +<macro> +#define SOCK_ACTION_DEL 0x2000 /* remove from interest set */ + +When SOCK_ACTION_DEL is used in a call to socket_events(), the event +interest flags passed in are removed from the existing event interest +flags for the socket. +</macro> + +<macro> +#define SOCK_ACTION_MASK 0x3000 /* mask out the actions */ + +SOCK_ACTION_MASK is used to isolate the socket action desired. +</macro> + +<function> +enum SocketState s_state(struct Socket* sock); + +This macro returns the state of the given socket. +</function> + +<function> +unsigned int s_events(struct Socket* sock); + +This macro returns the current event interest mask for a given +socket. Note that if the socket is in the SS_CONNECTING or +SS_LISTENING states, this mask has no meaning. +</function> + +<function> +int s_fd(struct Socket* sock); + +This macro simply returns the file descriptor for the given socket. +</function> + +<function> +void* s_data(struct Socket* sock); + +When a struct Socket is initialized, data that the call-back function +may find useful, such as a pointer to a struct Connection, is stored +in the struct Socket. This macro returns that pointer. +</function> + +<function> +int s_ed_int(struct Socket* sock); + +Engines may find it convenient to associate an integer with a struct +Socket. This macro may be used to retrieve that integer or, when used +as an lvalue, to assign a value to it. Engine data must be either an +int or a void*; use of both is prohibited. +</function> + +<function> +void* s_ed_ptr(struct Socket* sock); + +Engines may find it convenient to associate a void* pointer with a +struct Socket. This macro may be used to retrieve that pointer or, +when used as an lvalue, to assign a value to it. Engine data must be +either an int or a void*; use of both is prohibited. +</function> + +<function> +int s_active(struct Socket* sock); + +A socket's active flag is set when initialized by socket_add(), and is +cleared immediately prior to generating an event of type ET_DESTROY. +This may be used by the application to determine whether or not the +socket is still in use by the events subsystem. If it is, s_active() +returns a non-zero value; otherwise, its value is 0. +</function> + +<function> +int socket_add(struct Socket* sock, EventCallBack call, void* data, + enum SocketState state, unsigned int events, int fd); + +This function is called to add a socket to the list of sockets to be +monitored. The _sock_ parameter is a pointer to a struct Socket that +is allocated by the application. The _call_ parameter is a pointer to +a function to process any events on the socket. The _data_ parameter +is for use of the socket call-back and may be zero. The _state_ +parameter must be one of the valid socket states. The _events_ +parameter must be a valid events interest mask--0, or the binary OR of +SOCK_EVENT_READABLE or SOCK_EVENT_WRITABLE. Finally, the _fd_ +parameter specifies the socket's file descriptor. This function +returns 1 if successful or 0 otherwise. +</function> + +<function> +void socket_del(struct Socket* sock); + +When the application is no longer interested in a particular socket, +it should call the socket_del() function. This function must be +called no later than when the socket has been closed, to avoid +attempting to call select() or similar functions on closed sockets. +</function> + +<function> +void socket_state(struct Socket* sock, enum SocketState state); + +Occasionally, a socket's state will change. This function is used to +inform the events subsystem of that change. Only certain state +transitions are valid--a socket in the SS_LISTENING or SS_CONNECTED +states cannot change states, nor can an SS_CONNECTING socket change to +some state other than SS_CONNECTED. Of course, SS_DATAGRAM sockets +may change state only to SS_CONNECTDG, and SS_CONNECTDG sockets may +only change states to SS_DATAGRAM. +</function> + +<function> +void socket_events(struct Socket* sock, unsigned int events); + +When the application changes the events it is interested in, it uses +socket_events() to notify the events subsystem of that change. The +_events_ parameter is the binary OR of one of SOCK_ACTION_SET, +SOCK_ACTION_ADD, or SOCK_ACTION_DEL with an events mask. See the +documentation for the SOCK_* macros for more information. +</function> + +<function> +const char* state_to_name(enum SocketState state); + +This function is defined only when DEBUGMODE is #define'd. It takes +the given _state_ and returns a string giving that state's name. This +function may safely be called from Debug() macros. +</function> + +<function> +const char* sock_flags(unsigned int flags); + +This function is defined only when DEBUGMODE is #define'd. It takes +the given event interest flags and returns a string naming each of +those flags. This function may safely be called from Debug() macros, +but may only be called once, since it uses function static storage to +store the flag strings. +</function> + +<function> +int sig_signal(struct Signal* sig); + +This macro returns the signal number for the given struct Signal. +</function> + +<function> +void* sig_data(struct Signal* sig); + +When a struct Signal is initialized, data that the call-back function +may find useful is stored in the struct Signal. This macro returns +that pointer. +</function> + +<function> +int sig_ed_int(struct Signal* sig); + +Engines may find it convenient to associate an integer with a struct +Signal. This macro may be used to retrieve that integer or, when used +as an lvalue, to assign a value to it. Engine data must be either an +int or a void*; use of both is prohibited. +</function> + +<function> +void* sig_ed_ptr(struct Signal* sig); + +Engines may find it convenient to associate a void* pointer with a +struct Signal. This macro may be used to retrieve that pointer or, +when used as an lvalue, to assign a value to it. Engine data must be +either an int or a void*; use of both is prohibited. +</function> + +<function> +int sig_active(struct Signal* sig); + +A signal's active flag is set when initialized by signal_add(). This +may be used by the application to determine whether or not the signal +has been initialized yet. If it is, sig_active() returns a non-zero +value; otherwise, its value is 0. +</function> + +<function> +void signal_add(struct Signal* signal, EventCallBack call, void* data, + int sig); + +This function is called to add a signal to the list of signals to be +monitored. The _signal_ parameter is a pointer is a pointer to a +struct Signal that is allocated by the application. The _call_ +parameter is a pointer to a function to process any signal events. +The _data_ parameter is for use of the signal call-back and may be +zero. The _sig_ parameter is the integer value of the signal to be +monitored. +</function> + +<function> +enum TimerType t_type(struct Timer* tim); + +This macro returns the type of the given timer. +</function> + +<function> +time_t t_value(struct Timer* tim); + +This macro returns the value that was used when the given timer was +initialized by the events subsystem. It will contain an absolute time +if the timer type is TT_ABSOLUTE, and a relative time otherwise. +</function> + +<function> +time_t t_expire(struct Timer* tim); + +This macro returns the absolute time at which the timer will next +expire. +</function> + +<function> +void* t_data(struct Timer* tim); + +When a struct Timer is initialized, data that the call-back function +may find useful is stored in the struct Socket. This macro returns +that pointer. +</function> + +<function> +int t_ed_int(struct Timer *tim); + +Engines may find it convenient to associate an integer with a struct +Timer. This macro may be used to retrieve that integer or, when used +as an lvalue, to assign a value to it. Engine data must be either an +int or a void*; use of both is prohibited. +</function> + +<function> +void* t_ed_ptr(struct Timer *tim); + +Engines may find it convenient to associate a void* pointer with a +struct Timer. This macro may be used to retrieve that pointer or, +when used as an lvalue, to assign a value to it. Engine data must be +either an int or a void*; use of both is prohibited. +</function> + +<function> +int t_active(struct Timer *tim); + +A timer's active flag is set when initialized by timer_add(), and is +cleared immediately prior to generating an event of type ET_DESTROY. +This may be used by the application to determine whether or not the +timer is still in use by the events subsystem. If it is, s_active() +returns a non-zero value; otherwise, its value is 0. +</function> + +<function> +void timer_add(struct Timer* timer, EventCallBack call, void* data, + enum TimerType type, time_t value); + +This function is called to initialize and queue a timer. The _timer_ +parameter is a pointer to a struct Timer that is allocated by the +application. The _call_ parameter is a pointer to a function to +process the timer's expiration. The _data_ parameter is for use of +the timer call-back and may be zero. The _type_ parameter must be one +of the valid timer types--TT_ABSOLUTE, TT_RELATIVE, or TT_PERIODIC. +Finally, _value_ is the value for the timer's expiration. +</function> + +<function> +void timer_del(struct Timer* timer); + +When the application no longer needs a TT_PERIODIC timer, or when it +wishes to stop a TT_ABSOLUTE or TT_RELATIVE timer before its +expiration, it should call the timer_del() function. +</function> + +<function> +void timer_chg(struct Timer* timer, enum TimerType type, time_t value); + +Occasionally, an application may wish to delay an existing TT_ABSOLUTE +or TT_RELATIVE timer; this may be done with the timer_chg() function. +The _type_ parameter must be one of TT_ABSOLUTE or +TT_RELATIVE--changing the values of TT_PERIODIC timers is not +supported. The _value_ parameter is the same as would be given to +timer_add() for that particular type of timer. +</function> + +<function> +void timer_run(void); + +When an engine has finished processing the results of its socket and +signal checks--just before it loops around to test for more events--it +should call the timer_run() function to expire any waiting timers. +</function> + +<function> +time_t timer_next(struct Generators* gen); + +Most engines will use a blocking call with a timeout to check for +socket activity. To determine when the next timer needs to be run, +and thus to calculate how long the call should block, the engine +should call timer_next() with the _gen_ parameter passed to the +_EngineLoop_ function. The timer_next() function returns an absolute +time, which may have to be massaged into a relative time before the +engine may use it. +</function> + +<function> +const char* timer_to_name(enum TimerType type); + +This function is defined only when DEBUGMODE is #define'd. It takes +the given _type_ and returns a string giving that type's name. This +function may safely be called from Debug() macros. +</function> + +<function> +enum EventType ev_type(struct Event* ev); + +This macro simply returns the type of the event _ev_. +</function> + +<function> +int ev_data(struct Event* ev); + +When an event is generated, a single integer can be passed along as a +piece of extra information. This can be used, for instance, to carry +an errno value when an ET_ERROR is generated. This macro simply +returns that integer. +</function> + +<function> +struct Socket* ev_socket(struct Event* ev); + +If the event was generated by a socket, this macro returns a pointer +to the struct Socket that generated the event. The results are +undefined if the event was not generated by a socket. +</function> + +<function> +struct Signal* ev_signal(struct Event* ev); + +If the event was generated by a signal, this macro returns a pointer +to the struct Signal that generated the event. The results are +undefined if the event was not generated by a signal. +</function> + +<function> +struct Timer* ev_timer(struct... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-01-05 16:38:32
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 16:38:22 UTC Modified files: doc/en/api/events.txt doc/en/api/features.txt doc/en/api/gline.txt doc/en/api/ircd_snprintf.txt doc/en/api/joinbuf.txt doc/en/api/jupe.txt doc/en/api/modebuf.txt doc/en/api/motd.txt doc/en/api/msgq.txt doc/en/api/privileges.txt doc/en/api/send.txt Log message: Documentación API en inglés ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/api/events.txt diff -u ircd-ircdev/doc/en/api/events.txt:1.1 ircd-ircdev/doc/en/api/events.txt:1.2 --- ircd-ircdev/doc/en/api/events.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/events.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: events.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + The IRC server is built around an event loop. Until the u2.10.11 release, this event loop has been rather ad-hoc; timed events are hard-coded in, signals are handled inside the signal handler, etc. Index: ircd-ircdev/doc/en/api/features.txt diff -u ircd-ircdev/doc/en/api/features.txt:1.1 ircd-ircdev/doc/en/api/features.txt:1.2 --- ircd-ircdev/doc/en/api/features.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/features.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: features.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + As of u2.10.11, most of the compile-time configuration options present in previous versions of ircu have been provided via the configuration file as "features." This document is intended not only to give an Index: ircd-ircdev/doc/en/api/gline.txt diff -u ircd-ircdev/doc/en/api/gline.txt:1.1 ircd-ircdev/doc/en/api/gline.txt:1.2 --- ircd-ircdev/doc/en/api/gline.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/gline.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: gline.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + Some users can be very annoying, as any IRC operator can attest. Some can in fact be downright abusive. Sometimes the best way of dealing with these users is to ban them from the entire network. The G-line Index: ircd-ircdev/doc/en/api/ircd_snprintf.txt diff -u ircd-ircdev/doc/en/api/ircd_snprintf.txt:1.1 ircd-ircdev/doc/en/api/ircd_snprintf.txt:1.2 --- ircd-ircdev/doc/en/api/ircd_snprintf.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/ircd_snprintf.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: ircd_snprintf.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + These functions are intended to be a complete replacement for sprintf and sprintf_irc. They are a (nearly) complete reimplementation, and of course they're snprintf clones, making it more difficult for Index: ircd-ircdev/doc/en/api/joinbuf.txt diff -u ircd-ircdev/doc/en/api/joinbuf.txt:1.1 ircd-ircdev/doc/en/api/joinbuf.txt:1.2 --- ircd-ircdev/doc/en/api/joinbuf.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/joinbuf.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: joinbuf.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + IRC wouldn't be of much interest without the ability for users to join channels. Of course, they must also be able to leave those channels when they get bored of the conversation there. Users can join or Index: ircd-ircdev/doc/en/api/jupe.txt diff -u ircd-ircdev/doc/en/api/jupe.txt:1.1 ircd-ircdev/doc/en/api/jupe.txt:1.2 --- ircd-ircdev/doc/en/api/jupe.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/jupe.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: jupe.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + Occasionally, a server will become incorrectly configured or will start behaving incorrectly. Even more rarely, a server will be compromised, and a modified version of the server put in place to Index: ircd-ircdev/doc/en/api/modebuf.txt diff -u ircd-ircdev/doc/en/api/modebuf.txt:1.1 ircd-ircdev/doc/en/api/modebuf.txt:1.2 --- ircd-ircdev/doc/en/api/modebuf.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/modebuf.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: modebuf.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + Generating and parsing channel mode strings is often a very complicated process. The ModeBuf interface, along with the associated mode parsing functions, attempt to make this much more programmatic. Index: ircd-ircdev/doc/en/api/motd.txt diff -u ircd-ircdev/doc/en/api/motd.txt:1.1 ircd-ircdev/doc/en/api/motd.txt:1.2 --- ircd-ircdev/doc/en/api/motd.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/motd.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: motd.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + The server has a Message of the Day (MOTD) which is often used for describing the Acceptable Usage Policy, where to get help if you have problems, and so on. Older versions of ircd had a lot of duplicated Index: ircd-ircdev/doc/en/api/msgq.txt diff -u ircd-ircdev/doc/en/api/msgq.txt:1.1 ircd-ircdev/doc/en/api/msgq.txt:1.2 --- ircd-ircdev/doc/en/api/msgq.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/msgq.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,4 @@ +$Id: msgq.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ Many messages generated by an IRC server are sent to multiple recipients. Previous versions of ircd used DBuf to store these messages until they could actually be sent. The problem with using a Index: ircd-ircdev/doc/en/api/privileges.txt diff -u ircd-ircdev/doc/en/api/privileges.txt:1.1 ircd-ircdev/doc/en/api/privileges.txt:1.2 --- ircd-ircdev/doc/en/api/privileges.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/privileges.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: privileges.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + Access control becomes more of a problem as you have more and more users that need to access certain features. As it stands, ircu has only 3 access levels: ordinary user, local operator, and global Index: ircd-ircdev/doc/en/api/send.txt diff -u ircd-ircdev/doc/en/api/send.txt:1.1 ircd-ircdev/doc/en/api/send.txt:1.2 --- ircd-ircdev/doc/en/api/send.txt:1.1 Wed Jan 5 08:32:43 2005 +++ ircd-ircdev/doc/en/api/send.txt Wed Jan 5 08:38:12 2005 @@ -1,3 +1,5 @@ +$Id: send.txt,v 1.2 2005/01/05 16:38:12 zolty Exp $ + The send functions are perhaps the most important API in all of ircd; without them, communications would not be possible. Most of these functions are pretty much stand-alone, although one or two are ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-01-05 16:39:52
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 16:39:44 UTC Added files: doc/en/api/api.txt doc/en/api/log.txt Log message: Documentacion API en inglés ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/api/api.txt diff -u /dev/null ircd-ircdev/doc/en/api/api.txt:1.1 --- /dev/null Wed Jan 5 08:39:44 2005 +++ ircd-ircdev/doc/en/api/api.txt Wed Jan 5 08:39:34 2005 @@ -0,0 +1,107 @@ +$Id: api.txt,v 1.1 2005/01/05 16:39:34 zolty Exp $ + +This directory is intended for documents describing programming +interfaces within ircu, including such things as modebuf's and the +features interface. Please write these documents as plain text; if we +want HTML, we can write a script to convert the text versions into +HTML versions. Toward that end, I respectfully suggest everyone +conform to a common format, which I will describe here: + +Every .txt file should begin with a couple of paragraphs giving an +overview of the API, its purpose, and how to use it. Paragraphs +should be separated by blank lines, as shown here. Paragraphs that do +not end in some form of punctuation, such as a period, will be treated +as section headings. The introduction ends when the first API element +appears. API element documentation is introduced with "<" followed by +the element type--"struct", "typedef", "function", "macro", or (heaven +forbid) "global", followed by ">", all on a line by itself. The next +line should contain a declaration of the element as it would appear in +a header file; this may spread across multiple lines and contain +comments and blank lines. The declaration ends for most elements when +a ";" is encountered; for macros, the declaration ends on the last +line not ending in "\". + +The documentation for the API element should immediately follow the +declaration of that element, and should be separated from it by a +single blank line. This documentation should explain the purpose of +the element and describe what each of its fields mean. The +documentation ends when the corresponding "</" tag is reached, just as +in HTML or XML. (I don't intend for the files to be either HTML or +XML, I just want them to be easy to parse so they could be turned into +either, as occasion warrants.) An example follows: + +<struct> +struct FooBar; /* a sample structure with no definition */ + +The comment, since it's on the same line as the ";", is associated +with the declaration for struct FooBar. +</struct> + +<struct> +struct FooBar { + long fb_magic; /* a magic number */ + char *fb_string; /* a string of some sort */ +}; + +The sequence "};" ends the struct declaration. +</struct> + +<typedef> +typedef FooBar_t; /* a simple typedef */ + +This element shows how to hide the inner workings of typedefs. +</typedef> + +<typedef> +typedef struct FooBar FooBar_t; /* a more complex typedef */ + +Here we show the full typedef declaration. +</typedef> + +<global> +extern int fooBarFreeList; /* global variables should be avoided */ + +You should avoid global variables, but if you must have one for alloc +counts or whatever, here's how to specify documentation for them. +</global> + +<macro> +#define HAVE_FOOBAR /* We have FOOBAR, whatever it may be */ + +This could be used for boolean macros (macros used in #ifdef's, for +instance) or for simple value macros where you're hiding the values. +Since there are so many variations on macros, I'll only show one other +variation below: +</macro> + +<macro> +#define FooBarVerify(foobar) ((foobar) && \ + (foobar)->fb_magic == FOOBAR_STRUCT_MAGIC) + +This macro takes arguments. Again, we could leave out the actual +definition, or even treat the macro as a function rather than a +macro. This also shows how to do multi-line macros. +</macro> + +<function> +void *foobar(struct FooBar *blah, int flag); + +Since function definitions never appear in header files anyway, we +don't have to worry about hiding information. You should leave off +"extern" in the function declaration, and please include names for the +variables, so you can refer to them in the function documentation. +</function> + +The API document may then end in some summary information, if you +wish, or a ChangeLog of some form, such as follows. + +<authors> +Kev <kl...@mi...> +</authors> + +<changelog> +[2000-12-18 Kev] Initial definition of how API documents should look. +Further entries in the changelog should *precede* this one and should +be separated from it by a blank line. Also specify your name, as +listed in the "<authors>" section, so we know who to blame ;) +</changelog> Index: ircd-ircdev/doc/en/api/log.txt diff -u /dev/null ircd-ircdev/doc/en/api/log.txt:1.1 --- /dev/null Wed Jan 5 08:39:44 2005 +++ ircd-ircdev/doc/en/api/log.txt Wed Jan 5 08:39:34 2005 @@ -0,0 +1,242 @@ +$Id: log.txt,v 1.1 2005/01/05 16:39:34 zolty Exp $ + +Old versions of ircu did not have very good means of dealing with +logging. In u2.10.11, an entirely new logging subsystem was written, +allowing a server administrator much more power in determining what +actions are to be logged where. The new logging subsystem permits log +messages to go to syslog, to a file, and to server operators via +server notices, simultaneously (though having output to multiple log +files is not presently supported). + +All log messages have two values that are passed in with them: the +logging level, which must be one of the values in enum LogLevel, and a +logging subsystem, which must be one of the values in enum LogSys; +these values are used as indexes into arrays within ircd_log.c, so be +careful should you change them. + +In addition to the LogLevel and LogSys, there is also a set of three +flags that may be passed to the log_write() logging function; these +flags may be used to suppress certain types of logging that may be +undesirable. For instance, when a server links, a log may be written +containing the server's IP address; to prevent this IP address from +ever showing up in a server notice, that invocation of log_write() is +passed the LOG_NOSNOTICE flag. + +<enum> +enum LogLevel { + L_CRIT, + L_ERROR, + L_WARNING, + L_NOTICE, + L_TRACE, + L_INFO, + L_DEBUG, + L_LAST_LEVEL +}; + +This enum describes the severity levels of a log message. The +severity decreases as you proceed downwards in the list, so L_DEBUG is +less severe than L_INFO, and L_CRIT in the most severe of all. The +special value L_LAST_LEVEL should never be used; it merely marks the +end of the list. +</enum> + +<enum> +enum LogSys { + LS_SYSTEM, LS_CONFIG, LS_OPERMODE, LS_GLINE, LS_JUPE, LS_WHO, LS_NETWORK, + LS_OPERKILL, LS_SERVKILL, LS_USER, LS_OPER, LS_RESOLVER, LS_SOCKET, + LS_DEBUG, LS_OLDLOG, + LS_LAST_SYSTEM +}; + +These are the various logging subsystems recognized by the logging +subsystem. Again, order is important, and again, LS_LAST_SYSTEM +should never be used. +</enum> + +<function> +void log_debug_init(int usetty); + +This initializes the special-purpose debug logging code in the +server. If the _usetty_ parameter is non-zero, then all debugging +output will go to the terminal regardless of file settings for the +LS_DEBUG subsystem. This function is not defined unless the server is +compiled with -DDEBUGMODE. +</function> + +<function> +void log_init(const char *process_name); + +This initializes the entire logging subsystem, including special +things such as storing the process name and opening syslog with the +open_log() function. It may only be called once. +</function> + +<function> +void log_reopen(void); + +All log files are persistently open, in order to avoid the overhead of +re-opening the log file each time. This function is used to close all +the log files and to close and reopen syslog. (Log files are opened +again only when there is something to write to them.) +</function> + +<function> +void log_close(void); + +This closes all log files and the syslog prior to the server +terminating. Should logs need to be reopened after calling this +function, call log_reopen() instead of log_init(). +</function> + +<function> +void log_write(enum LogSys subsys, enum LogLevel severity, + unsigned int flags, const char *fmt, ...); + +This is the actual logging function. The _flags_ parameter is 0 or +the bitwise OR of LOG_NOSYSLOG (suppresses syslogging), LOG_NOFILELOG +(suppresses logging to a file) and LOG_NOSNOTICE (suppresses logging +via server notices). The _fmt_ parameter is a format string +acceptable to ircd_snprintf(), which is the function called to +actually format the log message. +</function> + +<function> +void log_vwrite(enum LogSys subsys, enum LogLevel severity, + unsigned int flags, const char *fmt, va_list vl); + +This is similar to log_write() except that it takes a va_list +parameter. +</function> + +<function> +char *log_cannon(const char *subsys); + +This returns the canonical name for logging subsystem. This probably +should not be exposed here, but it is needed in ircd_features.c at +present. +</function> + +<function> +int log_set_file(const char *subsys, const char *filename); + +This sets the file name for the specified logging subsystem to +_filename_; returns 2 if the subsystem was undefined, 1 if the value +of _filename_ was not understood, or 0 if there was no error. +</function> + +<function> +char *log_get_file(const char *subsys); + +This returns the current log file name for the given subsystem. +</function> + +<function> +int log_set_facility(const char *subsys, const char *facility); + +This sets the syslog facility for the specified logging subsystem to +_facility_; returns 2 if the subsystem was undefined, 1 if the value +of _facility_ was not understood, or 0 if there was no error. Two +special facility names may be given; "NONE" specifies that no +syslogging should be performed, and "DEFAULT" specifies that ircd's +default syslog facility should be used. +</function> + +<function> +char *log_get_facility(const char *subsys); + +This returns the current syslog facility for the given subsystem. See +the documentation for log_set_facility() for a description of the +special facility names "NONE" and "DEFAULT." +</function> + +<function> +int log_set_snomask(const char *subsys, const char *snomask); + +This sets the server notice type for the specified logging subsystem +to _snomask_; returns 2 if the subsystem was undefined, 1 if the value +of _snomask_ was not understood, or 0 if there was no error. The +special server notice type "NONE" indicates that no server notices +should be generated. The other valid values for _snomask_ are: +"OLDSNO," "SERVKILL," "OPERKILL," "HACK2," "HACK3," "UNAUTH," +"TCPCOMMON," "TOOMANY," "HACK4," "GLINE," "NETWORK," "IPMISMATCH," +"THROTTLE," "OLDREALOP," "CONNEXIT," and "DEBUG." +</function> + +<function> +char *log_get_snomask(const char *subsys); + +This returns the current server notice type for the given subsystem. +See the documentation for log_set_snomask() for a description of the +return values. +</function> + +<function> +int log_set_level(const char *subsys, const char *level); + +This function is used to set the minimum log level for a particular +subsystem; returns 2 if the subsystem was undefined, 1 if the value of +_level_ was not understood, or 0 if there was no error. Any log +notices generated with lower severity than that set with this function +will not be logged. Valid values are "CRIT," "ERROR," "WARNING," +"NOTICE," "TRACE," "INFO," and "DEBUG." +</function> + +<function> +char *log_get_level(const char *subsys); + +This returns the current minimum log level for the given subsystem. +See the documentation for log_set_level() for a description of the +return values. +</function> + +<function> +int log_set_default(const char *facility); + +This function sets the default syslog facility for all of ircd. Valid +values for _facility_ are as described for log_set_facility() with the +exclusion of the "NONE" and "DEFAULT" facilities; returns 1 if the +facility name was unrecognized (or proscribed) or 0 if there was no +error. +</function> + +<function> +char *log_get_default(void); + +This simply returns ircd's default syslog facility. +</function> + +<function> +void log_feature_unmark(void); + +This function is called by the ircd_features.c subsystem and should +not be called by any other part of ircd. See the features API +documentation for notes on what this function does. +</function> + +<function> +void log_feature_mark(int flag); + +This function is called by the ircd_features.c subsystem and should +not be called by any other part of ircd. See the features API +documentation for notes on what this function does. +</function> + +<function> +void log_feature_report(struct Client *to, int flag); + +This function is called by the ircd_features.c subsystem and should +not be called by any other part of ircd. See the features API +documentation for notes on what this function does. +</function> + +<authors> +Kev <kl...@mi...> +</authors> + +<changelog> +[2001-06-13 Kev] Fix a minor typo. + +[2000-12-18 Kev] Wrote some documentation on how to use the logging +subsystem. +</changelog> ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-01-05 18:01:27
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 18:00:45 UTC Modified files: doc/en/Authors Added files: doc/en/asll.txt doc/en/chroot.txt doc/en/crules.txt doc/en/cvs.txt doc/en/features.txt doc/en/freebsd.txt doc/en/gline.txt doc/en/iauth.txt doc/en/indent.txt doc/en/jupe.txt doc/en/log.txt doc/en/snomask.txt doc/en/string.txt doc/en/who.txt doc/en/www.txt Log message: Documentación en doc/en (inglés) ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/Authors diff -u ircd-ircdev/doc/en/Authors:1.1 ircd-ircdev/doc/en/Authors:1.2 --- ircd-ircdev/doc/en/Authors:1.1 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/doc/en/Authors Wed Jan 5 10:00:32 2005 @@ -1,5 +1,6 @@ IRC was conceived of and written by Jarkko Oikarinen <jt...@to...>. IRC was originally written in University of Oulu, Computing Center. + Jan 1991 - IRC 2.6 jt...@to... - Multiple Channels and protocol changes Index: ircd-ircdev/doc/en/asll.txt diff -u /dev/null ircd-ircdev/doc/en/asll.txt:1.1 --- /dev/null Wed Jan 5 10:00:47 2005 +++ ircd-ircdev/doc/en/asll.txt Wed Jan 5 10:00:33 2005 @@ -0,0 +1,27 @@ +$Id: asll.txt,v 1.1 2005/01/05 18:00:33 zolty Exp $ + +AsLL preliminary documentation, last updated 13 Jun 2002 + +Server-to-server ping format: + +<prefix> G !<local-ts> <target> <local-ts> + +prefix = origin server numeric +local-ts = local timestamp, as "seconds.miliseconds" +target = target server numeric + +The local-ts is also sent instead of the origin field, +so RTT information can be collected from non-AsLL servers, +while preserving backward compatibility. + + +Server-to-server pong format: + +<prefix> Z <origin> <target> <remote-ts> <diff> <local-ts> + +prefix = origin server numeric +origin = origin server numeric +target = target server numeric +remote-ts = remote timestamp as received from an AsLL PING +diff = difference between local-ts and remote-ts in miliseconds (integer) +local-ts = local timestamp, as "seconds.miliseconds" Index: ircd-ircdev/doc/en/chroot.txt diff -u /dev/null ircd-ircdev/doc/en/chroot.txt:1.1 --- /dev/null Wed Jan 5 10:00:48 2005 +++ ircd-ircdev/doc/en/chroot.txt Wed Jan 5 10:00:33 2005 @@ -0,0 +1,93 @@ +$Id: chroot.txt,v 1.1 2005/01/05 18:00:33 zolty Exp $ + +Using Chroot With IRCD + +Introduction + +Many system administrators like to run certain daemons within a +"jail," a secure area of the file system that the daemon supposedly +cannot break out of. That way, if the daemon is compromised somehow, +the attacker cannot get out and affect the rest of the system in any +way. There are problems with this--the standard UNIX way of doing +this is with the chroot() call, which has been deprecated by the +UNIX98 standard. Moreover, if an attacker has root within the jail, +it is trivial to get *out* of the jail in most circumstances. +Nevertheless, it is still often a good idea, and some systems can use +more secure jails than other systems. + +Older versions of ircd supported chroot() operation within the server +itself, but these were fraught with problems--chroot() can only be +called by a process running as root, so ircd had to be started as +root, typically by making it setuid, and would then have to drop those +privileges after calling chroot(). Moreover, the design of the server +would require that the server binary be in DPATH, or the /RESTART +command would not work. In fact, /RESTART still wouldn't work, +because the server would then attempt to change directories to a DPATH +relative to the current root directory--and of course, the root +directory often would not contain the shared libraries necessary for +the ircd to even start. + +Configuring the Server For Use With Chroot + +In the versions of ircd starting with u2.10.11, all the setuid and +chroot() code has been removed from the server. It is still possible +to cause the daemon to run in a chroot() jail, however, through the +use of a wrapper script. This requires making all paths compiled in +to the server be relative to the new root directory; fortunately, this +can be done by giving the configure script the --with-chroot=<dir> +option. The <dir> argument specifies to configure where the root +directory will be, and the server restart path, data path, +configuration file, and debug log files will all be modified to be +relative to this root directory. If the data path or configuration +files cannot be made relative to the specified root directory, +configure will issue an error message and exit; if the server restart +path is not relative to the specified root directory, configure will +issue a warning. + +The various paths are made relative to the root directory through the +use of simple edits to their string representation. As an example, +assume that we will be using the root directory "/home/ircd"; if the +data path is "/home/ircd/lib," the data path that will be compiled +into the server will be simply "/lib"; if, on the other hand, the +specified data path were "/usr/local/lib/ircd," configure would issue +an error, since there is no way to make the data path relative to the +specified root directory. + +Preparing the Root Directory + +Most modern operating systems use shared libraries. When using +chroot(), these libraries are searched for relative to the new root +directory, and they must be present in order for a program to +execute. The root directory must be prepared, therefore, by coping +these libraries into the correct place. A script for this purpose has +been provided in tools/mkchroot. This script relies on the command +"ldd," which is used to report which shared libraries are used by a +particular program; it also relies on ldd printing out the full path +to those libraries. If either of these conditions is not met, it will +be necessary to track down the libraries by hand and place them into +the appropriate locations. The tools/mkchroot script takes as its +first argument the path to the directory to be prepared as a root +directory; following this argument should be a list of programs that +will be running with that directory as the root directory. + +Using the Wrapper + +Also provided in the tools subdirectory are the sources for a simple +wrapper program that can be used to start ircd. The program can be +compiled by executing "cc -o wrapper tools/wrapper.c"; it must be run +as root, but do not install it as root, since that would be a major +security risk. This tool can be used to set the hard limit on file +descriptors, as well as a root directory, and so may be useful to the +administrator even if chroot() operation is not desired. A summary of +the command line options for the wrapper tool can be obtained with the +"-h" option. To set the file descriptor limit, use the "-l" option +followed by the desired number of file descriptors; to select an +alternative root directory, use "-c" followed by the desired root +directory. You must use the "-u" option to specify a user name (or +user ID) that the command should be run as; otherwise, the command +will be run as root, which is not what you want (and why you should +never install this program setuid root). Follow the command line +arguments with "--" and the full path to the command that you wish to +run, along with arguments to that command. The "--" tells the wrapper +program to stop interpreting options, and is very important if you +must give the command any options. Index: ircd-ircdev/doc/en/crules.txt diff -u /dev/null ircd-ircdev/doc/en/crules.txt:1.1 --- /dev/null Wed Jan 5 10:00:49 2005 +++ ircd-ircdev/doc/en/crules.txt Wed Jan 5 10:00:33 2005 @@ -0,0 +1,128 @@ +$Id: crules.txt,v 1.1 2005/01/05 18:00:33 zolty Exp $ + +SmartRoute +Rule based connects +Draft 4 - Aug 19, 1994 +by Tony Vencill + +Rule based connects allow an admin to specify under what conditions +a connect should not be allowed. If no rules are specified for a +given "Connect" block it will be allowed under any condition. + +A rule may consist of any legal combination of the following functions +and operators. + +Functions +--------- +connected(targetmask) - true if a server other than that processing + the rule is connected that matches the + target mask +directcon(targetmask) - true if a server other than that processing + the rule is directly connected that matches + the target mask +via(viamask, targetmask) - true if a server other than that processing + the rule matches the target mask and is + connected via a directly connected server + that matches the via mask +directop() - true if an oper is directly connected + +Unary operators +--------------- +! eg: !argument - true if the argument is false + +Binary operartors +----------------- +&& eg: arg1&&arg2 - true if arg1 and arg2 are both true +|| eg: arg1||arg2 - true if arg1, arg2, or both are true + +Parenthesis () are allowed for grouping arguments, but if no parenthesis +are included, && will take precedence over ||, ! will take precedence +over both && and ||, and the function will be evaluated from left to +right. White space in a rule is ignored. Invalid characters in a rule +will lead to the rule being ignored. + +Examples +-------- + +A simple example of a connect rule might be: + +connected(*eu.irc-dev*) + +This might be used in a US IRC-Dev server for a Europe CN pair to +insure that a second Europe link is not allowed if one US-EU link +already exists. Note that on the IRC-Dev, US server names are +city.state.us.irc-dev.net and Europe server names are +city.country.eu.irc-dev.net. + +A more interesting example might be: + +connected(*eu.irc-dev*) && + ( !direct(*eu.irc-dev*) || via(manhat*, *eu.irc-dev*) ) + +Imagine the Boston IRC-Dev server uses this rule on its Europe CN +pairs. This says that if a Europe server is already connected, a +Boston-Europe connect will not be allowed. It also says that if a +Europe server does already exist and Boston is not directly connected +to one or more Europe servers or Manhattan is, the Boston-Europe +connect will not be allowed. This has the effect of allowing multiple +US-EU links but attempting to limit these links to one server (ie: +Boston will not initiate its first Europe link if another server is +already linking Europe). This rule will also prefer to let Manhattan +handle the US-EU link by disallowing Boston-Europe links if a Europe +server is already linked to Manhattan. + +A example of the remaining function, directop(), is: + +connected(*eu.irc-dev*) || directop() + +If this line is used on Boston for the Paderborn CN pair, it will allow +connects to Paderborn only if another Europe server is not already +connected and there is not an oper on Boston. If this rule is +overrideable (ie: is applied only to autoconnects as described below), +then it will disallow Boston autoconnects to Paderborn while a Boston +oper is online, but allow oper-initiated connects to Paderborn under any +circumstance. This directop() function could be used to invoke less +prefered routes only when an oper is not present to handle routing, or +conversly to allow use of less preferable routes only when an oper is +present to monitor their performance. + +ircd.conf entries +----------------- + +A rule is listed in the ircd.conf file using a D or d line (which can +be thought of as a "disallow" line). D lines will apply to all oper +and server originated connects, while d lines will apply only to +autoconnects (ie: they are overrideable by opers). The formats are: + +D:targetmask::rule +d:targetmask::rule + +Remember that newlines are not allowed in conf lines. Two examples +(from above) are: + +D:*eu.irc-dev*::connected(*eu.irc-dev*) +d:*eu.irc-dev*::connected(*eu.irc-dev*) || directop() + +Connects originating from other servers will be checked against and +matching D lines, while matching d lines will be ignored as it will not +be clear whether or not the connection attempt is oper initiated. + +Checking and viewing rules +-------------------------- + +The chkconf program that comes with the servers has been modified to +also check your connect rules. If running in debug mode, parsing errors +will show up at debug level 8. To view rules online, "/stats d" can be +used to see all rules and "/stats D" can be used to view those rules +which affect oper initiated connects and accepts. + +Processing and storage +---------------------- + +The rules are parsed when the conf file is read and transformed into a +more efficiently computed form, then all applicable rules are +evaluated each time a connect command is given or an autoconnect is +due. If more than one applicable rule is given, only one need +evaluate to true for the connect to be allowed (ie: the rules are ored +together). Note that conditions that exist when the connect is +initiated might differ from conditions when the link is established. Index: ircd-ircdev/doc/en/cvs.txt diff -u /dev/null ircd-ircdev/doc/en/cvs.txt:1.1 --- /dev/null Wed Jan 5 10:00:50 2005 +++ ircd-ircdev/doc/en/cvs.txt Wed Jan 5 10:00:34 2005 @@ -0,0 +1,89 @@ +$Id: cvs.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ + +Notes on checking out from the IRC-DevCVS archive and maintenance. + +General Strategy: +The main trunk of the tree will be used for ongoing development only +(alpha) this code is not intended to be used on the production network. +When development has reached a point of relative stability a tag will be +applied to the development branch and a beta tag will be applied to that +branch. For beta test servers only the tagged branches will be used. +When a tag is applied we will also produce a snapshot tarball of the +tag. Once a beta tagged release has been proven stable any fixes will be +merged into the main tagged version and the code will be voted on for +release. Fixes after release will be tagged with a patchlevel tag. + +You check out a tagged release by specifying the -r tag option to cvs. +This is the command to check out the most recent tagged version of +IRC-Dev1.0.1: +cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r 1_0_1 -P ircd-ircdev + +Developers doing maintenance and bug fixes should only check out the +current tagged patchlevel for the affected version. Once the fix has +proven stable, it will be merged into the tree the fix is relative to. + +We will not merge the changes that have been made to IRC-Dev1.0 since +it's release into the development branch, the IRC-Dev1.0 branch is a +maintenance only branch. + +If you have any questions on how to check out tagged versions check out +the IRC-Dev web page http://www.irc-dev.net or the cvs +manual page. If you're really stumped feel free to ask in #irc-dev. + +We will put out new tarballs for every tagged release which will be +available on the IRC-Dev web page. + +Naming Conventions: + +Tag Names: +Major release - 1 +Beta release - 1_0_0 +Production patch - 1_0_0 + +The tree currently looks like this: + +Trunk: development only +------------------------------------------------ + \ \ + \----- u2_10_07 \---- u2_10_10 --- release --------- + \ \ \ + \--- u2_10_07_pl9 \--- u2_10_10_beta06 \ u2_10_10_pl01 + +Patches will be rolled into the tagged branch and eventually rolled into +the development branch. All new development should be relative to the +trunk, only bugfixes and maintenance coding should be applied to any +tagged version. Developers doing maintenance should only check out the +latest pl or beta tag and apply the changes relative to that tag. These +changes will be committed to the tag they were checked out from and once +proven stable they will be merged into the main tagged trunk by the +maintainer. + +Where to get CVS: +http://www.cvshome.org + +Checking out: +First you need to login to cvs: +cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev login + +It will prompt you for a password. There is no password so hit enter. + +To check out the recommended patchlevel for ircu2.10.07 use: +cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_07_pl6 -P ircd-ircdev + +For the ircu2.10.10 beta archive use: +cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_10_beta06 -P ircd-ircdev + +To check out the current development archive use: +cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -P ircd-ircdev + +When you want to update your source tree later to the latest version, use +cvs update -P + +inside ircd-ircdev/, the directory ircd-ircdev was checked out to. + +How to find the most current available release: +We will announce the most current release tag when we make it available, in general +you will check out the main branch of any given tree, if you want the current production +release use the "u2_10_07" tag, for patched versions use a patchlevel tag "u2_10_07_pl6". +You can always find the most recent tag for any version by looking at the IRC-Dev CVS +archive: http://cvs.irc-dev.net/viewcvs.py/irc-dev/ Index: ircd-ircdev/doc/en/features.txt diff -u /dev/null ircd-ircdev/doc/en/features.txt:1.1 --- /dev/null Wed Jan 5 10:00:50 2005 +++ ircd-ircdev/doc/en/features.txt Wed Jan 5 10:00:34 2005 @@ -0,0 +1,975 @@ +$Id: features.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ + +Many of the old compile-time options are now configured through the +server configuration file, ircd.conf. This file is intended to +document each of these features. Logging, although also configured +through the use of "Features" Block, is documented in doc/*/log.txt. +NOTE THAT THESE NAMES ARE CASE SENSITIVE! Values are not case sensitive +unless stated otherwise in the documentation for that feature. + +DOMAINNAME + * Type: string + * Default: picked by ./configure from /etc/resolv.conf + +This option allows you to specify what you consider to be "local." It +is only used for statistics. When you issue the IRC command /STATS w, +the server will respond with statistics of how many clients have been +connecting to your server in the last minute, hour and day. It will +give these statistics for all connections (including the servers), all +clients (from anywhere) and also for clients whose hostname ends on +the domain you specify here. So if you are an ISP and you want to +know what the client load from your own domain is, specify that domain +here. If you are unsure what to do, then it isn't really important +what you give here, just don't give an empty string. A good guess is +the last two parts of your own hostname (i.e., if your hostname is +foo.bar.nowhere.org, specify "nowhere.org"). Note that the string you +give should NOT start with a "." and you should not use quotes. + + +RELIABLE_CLOCK + * Type: boolean + * Default: FALSE + +You should really ONLY specify "TRUE" here when your system clock is +stable and accurate at all times (within a few seconds). If you are +running ntpdate on a regular basis, or an equivalent like xntpd, to +keep your system clock synchronized over the network, then you might +have an accurate clock. However, this is not guaranteed; for example, +it is known that xntpd gives unstable results on Linux in some cases. +Note that an unstable clock is worse then an clock that has a constant +offset, because the servers attempt to correct for a constant offset, +but do not correct jumps of your system clock! In general you SHOULD +be running ntpdate or equivalent AND make sure it works when you run a +production server on IRC Network. Otherwise leave your clock alone and +specify "FALSE" here. If unsure specify "FALSE"! + + +BUFFERPOOL + * Type: integer + * Default: 27000000 + +This specifies the maximum amount of RAM that your server will +allocate for buffering sendQs. Small leafs can use a value as little +as 1000000, while large HUBs need to specify a value as high as +20000000. If you run out of memory, clients and/or servers are +dropped with the error "Buffer allocation error"; then you will have +to increase this number (and install more RAM if appropriate). If you +want a more educated guess for this value then realize that any value +is good if you _really_ would rather drop servers and clients than +allocate more memory; this will be the case when there is the danger +you may run out of memory for other allocations. Even if you run the +daemon on a dedicated machine, specifying all of the RAM you have is a +bad thing, because running out of memory is a lot worse than dropping +clients in a controlled way; if possible you should have memory left +for all the internal structures (channels, clients, ban lists, receive +buffers) at all times. On average, clients seem to use 150 bytes of +sendQ, but at peak moments this can easily increase to 2032 bytes per +client (sendQs are allocated in chunks of 2032 bytes). The maximum +possible amount that can be allocated for sendQs is the number of +connected clients times whatever you specified as the maximum sendQ in +your "Class" blocks in the ircd.conf file. That value will likely be larger +then the amount of RAM you have. The educated guess I talked about +earlier would be "number of clients" times * 2048 bytes + "size of +net.burst" * n, where "n" is 1 for leafs and up to 5 for HUBs. The +"size of net.burst" is about 125 bytes per online client (on the whole +network). For large HUBs with 4000 clients on a network with 30,000 +users, this results in 27 Mb. Leafs could use 12 Mb. Of course you +can use less when you have less than 4000 local clients. This value +is in bytes. + + +HAS_FERGUSON_FLUSHER + * Type: boolean + * Default: FALSE + +If you have a server with a lot of resources available, this option +will cause the server to attempt to flush its internal buffers before +dropping clients during a net break. Don't define this if you don't +know for certain; if you're not careful this can end up rebooting +FreeBSD boxes. For more information, refer to freebsd.txt, also in +this directory. + + +CLIENT_FLOOD + * Type: integer + * Default: 2048 + +Currently, everything that a client sends to a server is read by the +server and stored in a buffer (the clients receive queue). The server +will process messages from this queue one by one (running over all +clients each time). When a client sends new messages faster they get +processed, and the size of its receive buffer reaches this value, the +client is dropped with the error "Excess flood." A reasonable value +is 1024 bytes. The maximum size is 8000 bytes. + + +SERVER_PORT + * Type: integer + * Default: 4400 + +When an IRC operator attempts a connect to another server, he or she +may not know which port the connect should go to. In this server +version, that operator may use the special port 0, in which case the +server will take the port from the "Connect" block. If no port is +specified in the "Connect" block, however, the port specified by this +option will be used instead. + + +NODEFAULTMOTD + * Type: boolean + * Default: TRUE + +Every time a client connects to your server, the full Message of the +Day (as specified by the "Motd" block or by the file specified by the MPATH +option) is sent to the client. The server sends the Message of the +Day even though many clients permit the user to ignore it. Many users +never read the message of the day anyway, making it a huge waste of +bandwidth. If you specify "TRUE" here, then the server won't send the +MOTD to the client by default; instead, it will only tell the client +when the MOTD was last changed, and give instructions on how to obtain +it by typing /MOTD. + + +MOTD_BANNER + * Type: string + * Default: NULL + +If you enable NODEFAULTMOTD, this specifies a one-line banner to be sent +to the client in addition to the instructions mentioned above. + + +PROVIDER + * Type: string + * Default: NULL + +This string as added to the 001 numeric prefixed with "via" before the nick. +It's used for providing promotional space to providers. + + +KILL_IPMISMATCH + * Type: boolean + * Default: FALSE + +When a client connects to your server, the IP address of the client is +reverse-resolved to obtain a hostname. Then that hostname is resolved +to an IP address and compared with the IP address of the client. If +they don't match, the client will appear with the IP address instead +of the hostname, unless KILL_IPMISMATCH is "TRUE," in which case the +client is simply disconnected. + + +IDLE_FROM_MSG + * Type: boolean + * Default: TRUE + +The IRC command WHOIS gives an idle time for clients. If you want +this idle time to be set to zero only when the client sends a PRIVMSG, +then you should specify "TRUE" here. If you specify "FALSE," then the +idle time will be nullified on all messages except the server +PING/PONG. + + +HUB + * Type: boolean + * Default: FALSE + +All servers of an IRC "network" are connected in a "tree" (no loops). +Servers that are only connected to one other server (called the +"uplink") are called "leafs"; servers that are connected to more than +one other server are called HUBs. If you specify "FALSE" here then +your server will prevent itself from accidentally connecting to two +servers at once, thus keeping servers in poor network locations from +routing traffic. Note that on Undernet, all newly linked servers are +linked as leafs during their test phase, and should specify "FALSE" +here. + + +WALLOPS_OPER_ONLY + * Type: boolean + * Default: FALSE + +Setting this option removes the ability for clients that are not IRC +operators to see wallops messages. + + +NODNS + * Type: boolean + * Default: FALSE + +If you are playing with the server off-line, and no DNS is available, +then long delays occur before the server starts up because it tries to +resolve the name given in the General block (which usually isn't given +in /etc/hosts) and for each connecting client. If you specify "TRUE" +here, then a DNS lookup will be done only for the real hostname, and +the server will not try to resolve clients that connect to +"localhost." Note that other DNS lookups are still done for outbound +connections. + + +RANDOM_SEED + * Type: string + * Default: none + +When a client connects, the server sends the client a "cookie," +consisting of a random number. The client must return the cookie to +the server verbatim. This is done to prevent IP spoofing. The cookie +is generated by a pseudorandom number generator included in ircd. +This generator must be seeded with a phrase that is kept secret, to +ensure that the numbers it generates are not easily guessed. The +value given to RANDOM_SEED may be a string of any length. It should +not contain any characters that are considered special by the +configuration file system, such as ":" or "#"; the string should be at +least 8 characters long, but longer strings are better. The +RANDOM_SEED may not be retrieved online. + + +DEFAULT_LIST_PARAM + * Type: string + * Default: none + +The LIST command takes a single optional argument. If given, that +argument is either a channel or a filter. If that argument is not +given, then by default, /LIST will list all channels on the network. +Needless to say, this can generate a large amount of data on large +networks with many channels, as well as chewing up a lot of CPU time. +Server administrators can therefore set a default filter to be applied +to the channel list if the optional argument to LIST is omitted. + + +NICKNAMEHISTORYLENGTH + * Type: integer + * Default: 800 + +This value specifies the length of the nick name history list, which +is used for /WHOWAS and some nickname chasing in /KILL and /KICK. It +uses about 300 to 400 bytes per entry. Note that at a net break, so +many client disappear that the whole "whowas" list is refreshed a few +times (unless you make it rather large). A reasonable value is "total +number of clients" / 25. + + +HOST_HIDING + * Type: boolean + * Default: TRUE + +This selects whether local users can set umode +x, thus allowing them +to hide their hostname if they have also registered with a channel +service (i.e. they have the ACCOUNT flag set). + + +HIDDEN_HOST + * Type: string + * Default: users.irc-dev.net + +This selects the suffix for the hidden hostmask (see HOST_HIDING). + + +HIDDEN_IP + * Type: string + * Default: 127.0.0.1 + +This selects a fake IP to be shown on /USERIP and /WHO %i when the +target has a hidden host (see HOST_HIDING). + + +CONNEXIT_NOTICES + * Type: boolean + * Default: FALSE + +This feature controls the generation of server notices when a user +connects to or disconnects from the server. Enabling this feature may +have a performance impact. + + +OPLEVELS + * Type: boolean + * Default: TRUE + +Bla. + + +LOCAL_CHANNELS + * Type: boolean + * Default: TRUE + +Bla. + +TOPIC_BURST + * Type: boolean + * Default: FALSE + +Bla. + + +KILLCHASETIMELIMIT + * Type: integer + * Default: 30 + +If a user changes his or her nickname just before an operator issues a +/KILL, the /KILL will be changed to follow the user the operator +intended to get. This option specifies the time limit, in seconds, +for this nickname change; if the user changed his or her nickname more +than this many seconds ago, the /KILL will not be changed. Don't +change this unless you really need to. + + +MAXCHANNELSPERUSER + * Type: integer + * Default: 10 + +This is the maximum number of channels a user can be in at a time. +The recommend value on IRC Network is currently 10. Since it only +influences the local server when you decrease it, its up to you to +decide if you want to use a smaller value. Do not use a larger value +however, because it DOES cost more memory and bandwidth on all other +servers when you allow users to join more channels simultaneously. +One of the most important reasons to choose a smaller value is the +fact that the "GUI" clients tend to stay on every channel they join +(they aren't bothered by flooding in other channels). It DOES take +your bandwidth however to send all those messages for 10 different +channels to all your users. + + +NICKLEN + * Type: integer + * Default: 12 + +This is the allowed length of the nickname l... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-01-05 18:11:23
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-05 18:11:13 UTC Added files: doc/en/rfc1413.txt Log message: RFC1413 (IDENT) ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/rfc1413.txt diff -u /dev/null ircd-ircdev/doc/en/rfc1413.txt:1.1 --- /dev/null Wed Jan 5 10:11:14 2005 +++ ircd-ircdev/doc/en/rfc1413.txt Wed Jan 5 10:10:47 2005 @@ -0,0 +1,445 @@ +Network Working Group M. St. Johns +Request for Comments: 1413 US Department of Defense +Obsoletes: 931 February 1993 + + + Identification Protocol + +Status of this Memo + + This RFC specifies an IAB standards track protocol for the Internet + community, and requests discussion and suggestions for improvements. + Please refer to the current edition of the "IAB Official Protocol + Standards" for the standardization state and status of this protocol. + Distribution of this memo is unlimited. + +1. INTRODUCTION + + The Identification Protocol (a.k.a., "ident", a.k.a., "the Ident + Protocol") provides a means to determine the identity of a user of a + particular TCP connection. Given a TCP port number pair, it returns + a character string which identifies the owner of that connection on + the server's system. + + The Identification Protocol was formerly called the Authentication + Server Protocol. It has been renamed to better reflect its function. + This document is a product of the TCP Client Identity Protocol + Working Group of the Internet Engineering Task Force (IETF). + +2. OVERVIEW + + This is a connection based application on TCP. A server listens for + TCP connections on TCP port 113 (decimal). Once a connection is + established, the server reads a line of data which specifies the + connection of interest. If it exists, the system dependent user + identifier of the connection of interest is sent as the reply. The + server may then either shut the connection down or it may continue to + read/respond to multiple queries. + + The server should close the connection down after a configurable + amount of time with no queries - a 60-180 second idle timeout is + recommended. The client may close the connection down at any time; + however to allow for network delays the client should wait at least + 30 seconds (or longer) after a query before abandoning the query and + closing the connection. + + + + + + + +St. Johns [Page 1] + +RFC 1413 Identification Protocol February 1993 + + +3. RESTRICTIONS + + Queries are permitted only for fully specified connections. The + query contains the local/foreign port pair -- the local/foreign + address pair used to fully specify the connection is taken from the + local and foreign address of query connection. This means a user on + address A may only query the server on address B about connections + between A and B. + +4. QUERY/RESPONSE FORMAT + + The server accepts simple text query requests of the form: + + <port-on-server> , <port-on-client> + + where <port-on-server> is the TCP port (decimal) on the target (where + the "ident" server is running) system, and <port-on-client> is the + TCP port (decimal) on the source (client) system. + + N.B - If a client on host A wants to ask a server on host B about a + connection specified locally (on the client's machine) as 23, 6191 + (an inbound TELNET connection), the client must actually ask about + 6191, 23 - which is how the connection would be specified on host B. + + For example: + + 6191, 23 + + The response is of the form + + <port-on-server> , <port-on-client> : <resp-type> : <add-info> + + where <port-on-server>,<port-on-client> are the same pair as the + query, <resp-type> is a keyword identifying the type of response, and + <add-info> is context dependent. + + The information returned is that associated with the fully specified + TCP connection identified by <server-address>, <client-address>, + <port-on-server>, <port-on-client>, where <server-address> and + <client-address> are the local and foreign IP addresses of the + querying connection -- i.e., the TCP connection to the Identification + Protocol Server. (<port-on-server> and <port-on-client> are taken + from the query.) + + For example: + + 6193, 23 : USERID : UNIX : stjohns + 6195, 23 : ERROR : NO-USER + + + +St. Johns [Page 2] + +RFC 1413 Identification Protocol February 1993 + + +5. RESPONSE TYPES + +A response can be one of two types: + +USERID + + In this case, <add-info> is a string consisting of an + operating system name (with an optional character set + identifier), followed by ":", followed by an + identification string. + + The character set (if present) is separated from the + operating system name by ",". The character set + identifier is used to indicate the character set of the + identification string. The character set identifier, + if omitted, defaults to "US-ASCII" (see below). + + Permitted operating system names and character set + names are specified in RFC 1340, "Assigned Numbers" or + its successors. + + In addition to those operating system and character set + names specified in "Assigned Numbers" there is one + special case operating system identifier - "OTHER". + + Unless "OTHER" is specified as the operating system + type, the server is expected to return the "normal" + user identification of the owner of this connection. + "Normal" in this context may be taken to mean a string + of characters which uniquely identifies the connection + owner such as a user identifier assigned by the system + administrator and used by such user as a mail + identifier, or as the "user" part of a user/password + pair used to gain access to system resources. When an + operating system is specified (e.g., anything but + "OTHER"), the user identifier is expected to be in a + more or less immediately useful form - e.g., something + that could be used as an argument to "finger" or as a + mail address. + + "OTHER" indicates the identifier is an unformatted + character string consisting of printable characters in + the specified character set. "OTHER" should be + specified if the user identifier does not meet the + constraints of the previous paragraph. Sending an + encrypted audit token, or returning other non-userid + information about a user (such as the real name and + phone number of a user from a UNIX passwd file) are + + + +St. Johns [Page 3] + +RFC 1413 Identification Protocol February 1993 + + + both examples of when "OTHER" should be used. + + Returned user identifiers are expected to be printable + in the character set indicated. + + The identifier is an unformatted octet string - - all + octets are permissible EXCEPT octal 000 (NUL), 012 (LF) + and 015 (CR). N.B. - space characters (040) following the + colon separator ARE part of the identifier string and + may not be ignored. A response string is still + terminated normally by a CR/LF. N.B. A string may be + printable, but is not *necessarily* printable. + +ERROR + + For some reason the port owner could not be determined, <add-info> + tells why. The following are the permitted values of <add-info> and + their meanings: + + INVALID-PORT + + Either the local or foreign port was improperly + specified. This should be returned if either or + both of the port ids were out of range (TCP port + numbers are from 1-65535), negative integers, reals or + in any fashion not recognized as a non-negative + integer. + + NO-USER + + The connection specified by the port pair is not + currently in use or currently not owned by an + identifiable entity. + + HIDDEN-USER + + The server was able to identify the user of this + port, but the information was not returned at the + request of the user. + + UNKNOWN-ERROR + + Can't determine connection owner; reason unknown. + Any error not covered above should return this + error code value. Optionally, this code MAY be + returned in lieu of any other specific error code + if, for example, the server desires to hide + information implied by the return of that error + + + +St. Johns [Page 4] + +RFC 1413 Identification Protocol February 1993 + + + code, or for any other reason. If a server + implements such a feature, it MUST be configurable + and it MUST default to returning the proper error + message. + + Other values may eventually be specified and defined in future + revisions to this document. If an implementer has a need to specify + a non-standard error code, that code must begin with "X". + + In addition, the server is allowed to drop the query connection + without responding. Any premature close (i.e., one where the client + does not receive the EOL, whether graceful or an abort should be + considered to have the same meaning as "ERROR : UNKNOWN-ERROR". + +FORMAL SYNTAX + + <request> ::= <port-pair> <EOL> + + <port-pair> ::= <integer> "," <integer> + + <reply> ::= <reply-text> <EOL> + + <EOL> ::= "015 012" ; CR-LF End of Line Indicator + + <reply-text> ::= <error-reply> | <ident-reply> + + <error-reply> ::= <port-pair> ":" "ERROR" ":" <error-type> + + <ident-reply> ::= <port-pair> ":" "USERID" ":" <opsys-field> + ":" <user-id> + + <error-type> ::= "INVALID-PORT" | "NO-USER" | "UNKNOWN-ERROR" + | "HIDDEN-USER" | <error-token> + + <opsys-field> ::= <opsys> [ "," <charset>] + + <opsys> ::= "OTHER" | "UNIX" | <token> ...etc. + ; (See "Assigned Numbers") + + <charset> ::= "US-ASCII" | ...etc. + ; (See "Assigned Numbers") + + <user-id> ::= <octet-string> + + <token> ::= 1*64<token-characters> ; 1-64 characters + + <error-token> ::= "X"1*63<token-characters> + ; 2-64 chars beginning w/X + + + +St. Johns [Page 5] + +RFC 1413 Identification Protocol February 1993 + + + <integer> ::= 1*5<digit> ; 1-5 digits. + + <digit> ::= "0" | "1" ... "8" | "9" ; 0-9 + + <token-characters> ::= + <Any of these ASCII characters: a-z, A-Z, + - (dash), .!@#$%^&*()_=+.,<>/?"'~`{}[]; > + ; upper and lowercase a-z plus + ; printables minus the colon ":" + ; character. + + <octet-string> ::= 1*512<octet-characters> + + <octet-characters> ::= + <any octet from 00 to 377 (octal) except for + ASCII NUL (000), CR (015) and LF (012)> + +Notes on Syntax: + + 1) To promote interoperability among variant + implementations, with respect to white space the above + syntax is understood to embody the "be conservative in + what you send and be liberal in what you accept" + philosophy. Clients and servers should not generate + unnecessary white space (space and tab characters) but + should accept white space anywhere except within a + token. In parsing responses, white space may occur + anywhere, except within a token. Specifically, any + amount of white space is permitted at the beginning or + end of a line both for queries and responses. This + does not apply for responses that contain a user ID + because everything after the colon after the operating + system type until the terminating CR/LF is taken as + part of the user ID. The terminating CR/LF is NOT + considered part of the user ID. + + 2) The above notwithstanding, servers should restrict the + amount of inter-token white space they send to the + smallest amount reasonable or useful. Clients should + feel free to abort a connection if they receive 1000 + characters without receiving an <EOL>. + + 3) The 512 character limit on user IDs and the 64 + character limit on tokens should be understood to mean + as follows: a) No new token (i.e., OPSYS or ERROR-TYPE) + token will be defined that has a length greater than 64 + and b) a server SHOULD NOT send more than 512 octets of + user ID and a client MUST accept at least 512 octets of + + + +St. Johns [Page 6] + +RFC 1413 Identification Protocol February 1993 + + + user ID. Because of this limitation, a server MUST + return the most significant portion of the user ID in + the first 512 octets. + + 4) The character sets and character set identifiers should + map directly to those defined in or referenced by RFC 1340, + "Assigned Numbers" or its successors. Character set + identifiers only apply to the user identification field + - all other fields will be defined in and must be sent + as US-ASCII. + + 5) Although <user-id> is defined as an <octet-string> + above, it must follow the format and character set + constraints implied by the <opsys-field>; see the + discussion above. + + 6) The character set provides context for the client to + print or store the returned user identification string. + If the client does not recognize or implement the + returned character set, it should handle the returned + identification string as OCTET, but should in addition + store or report the character set. An OCTET string + should be printed, stored or handled in hex notation + (0-9a-f) in addition to any other representation the + client implements - this provides a standard + representation among differing implementations. + +6. Security Considerations + + The information returned by this protocol is at most as trustworthy + as the host providing it OR the organization operating the host. For + example, a PC in an open lab has few if any controls on it to prevent + a user from having this protocol return any identifier the user + wants. Likewise, if the host has been compromised the information + returned may be completely erroneous and misleading. + + The Identification Protocol is not intended as an authorization or + access control protocol. At best, it provides some additional + auditing information with respect to TCP connections. At worst, it + can provide misleading, incorrect, or maliciously incorrect + information. + + The use of the information returned by this protocol for other than + auditing is strongly discouraged. Specifically, using Identification + Protocol information to make access control decisions - either as the + primary method (i.e., no other checks) or as an adjunct to other + methods may result in a weakening of normal host security. + + + + +St. Johns [Page 7] + +RFC 1413 Identification Protocol February 1993 + + + An Identification server may reveal information about users, + entities, objects or processes which might normally be considered + private. An Identification server provides service which is a rough + analog of the CallerID services provided by some phone companies and + many of the same privacy considerations and arguments that apply to + the CallerID service apply to Identification. If you wouldn't run a + "finger" server due to privacy considerations you may not want to run + this protocol. + +7. ACKNOWLEDGEMENTS + + Acknowledgement is given to Dan Bernstein who is primarily + responsible for renewing interest in this protocol and for pointing + out some annoying errors in RFC 931. + +References + + [1] St. Johns, M., "Authentication Server", RFC 931, TPSC, January + 1985. + + [2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340, + USC/Information Sciences Institute, July 1992. + +Author's Address + + Michael C. St. Johns + DARPA/CSTO + 3701 N. Fairfax Dr + Arlington, VA 22203 + + Phone: (703) 696-2271 + EMail: st...@DA... + + + + + + + + + + + + + + + + + + + +St. Johns [Page 8] + ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-01-10 12:22:29
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-10 12:22:11 UTC Modified files: include/IPcheck.h include/capab.h include/channel.h include/class.h include/client.h include/crule.h include/dbuf.h include/ddb.h include/destruct_event.h include/fileio.h include/gline.h include/handlers.h include/hash.h include/ircd.h include/ircd_alloc.h include/ircd_auth.h include/ircd_chattr.h include/ircd_crypt.h include/ircd_crypt_native.h include/ircd_crypt_plain.h include/ircd_crypt_smd5.h include/ircd_defs.h include/ircd_events.h include/ircd_features.h include/ircd_handler.h include/ircd_log.h include/ircd_md5.h include/ircd_osdep.h include/ircd_relay.h include/ircd_reply.h include/ircd_reslib.h include/ircd_signal.h include/ircd_snprintf.h include/ircd_string.h include/ircd_tea.h include/jupe.h include/list.h include/listener.h include/match.h include/memdebug.h include/motd.h include/msg.h include/msgq.h include/numeric.h include/numnicks.h include/opercmds.h include/packet.h include/parse.h include/patchlevel.h include/querycmds.h include/random.h include/res.h include/s_auth.h include/s_bsd.h include/s_conf.h include/s_debug.h include/s_misc.h include/s_numeric.h include/s_serv.h include/s_stats.h include/s_user.h include/send.h include/struct.h include/supported.h include/sys.h include/umkpasswd.h include/uping.h include/userload.h include/version.h include/watch.h include/whocmds.h include/whowas.h Log message: Actualizacion anio 2005 en los copyrights. ---------------------- diff included ---------------------- Index: ircd-ircdev/include/IPcheck.h diff -u ircd-ircdev/include/IPcheck.h:1.3 ircd-ircdev/include/IPcheck.h:1.4 --- ircd-ircdev/include/IPcheck.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/IPcheck.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/IPcheck.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Carlo Wood <Ru...@un...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interface to count users connected from particular IP addresses. - * @version $Id: IPcheck.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: IPcheck.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ipcheck_h #define INCLUDED_ipcheck_h Index: ircd-ircdev/include/capab.h diff -u ircd-ircdev/include/capab.h:1.1 ircd-ircdev/include/capab.h:1.2 --- ircd-ircdev/include/capab.h:1.1 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/capab.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/capab.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for capabilities extension - * @version $Id: capab.h,v 1.1 2004/12/28 11:15:44 zolty Exp $ + * @version $Id: capab.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_capab_h #define INCLUDED_capab_h Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.7 ircd-ircdev/include/channel.h:1.8 --- ircd-ircdev/include/channel.h:1.7 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/channel.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/channel.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1996-1997 Carlo Wood * Copyright (C) 1990 Jarkko Oikarinen * @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.7 2004/12/28 11:15:44 zolty Exp $ + * @version $Id: channel.h,v 1.8 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h Index: ircd-ircdev/include/class.h diff -u ircd-ircdev/include/class.h:1.5 ircd-ircdev/include/class.h:1.6 --- ircd-ircdev/include/class.h:1.5 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/class.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/class.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1996-1997 Carlo Wood * Copyright (C) 1990 Darren Reed * @@ -22,7 +22,7 @@ */ /** @file * @brief Declarations and interfaces for handling connection classes. - * @version $Id: class.h,v 1.5 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: class.h,v 1.6 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_class_h #define INCLUDED_class_h Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.8 ircd-ircdev/include/client.h:1.9 --- ircd-ircdev/include/client.h:1.8 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/client.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/client.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.8 2004/12/28 11:15:44 zolty Exp $ + * @version $Id: client.h,v 1.9 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h Index: ircd-ircdev/include/crule.h diff -u ircd-ircdev/include/crule.h:1.3 ircd-ircdev/include/crule.h:1.4 --- ircd-ircdev/include/crule.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/crule.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/crule.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file crule.h * @brief Interfaces and declarations for connection rule checking. - * @version $Id: crule.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: crule.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_crule_h #define INCLUDED_crule_h Index: ircd-ircdev/include/dbuf.h diff -u ircd-ircdev/include/dbuf.h:1.3 ircd-ircdev/include/dbuf.h:1.4 --- ircd-ircdev/include/dbuf.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/dbuf.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/dbuf.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Markku Savela * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interfaces and declarations for dealing with data buffers. - * @version $Id: dbuf.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: dbuf.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_dbuf_h #define INCLUDED_dbuf_h Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.1 ircd-ircdev/include/ddb.h:1.2 --- ircd-ircdev/include/ddb.h:1.1 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/include/ddb.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ddb.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004 Toni Garcia (zoltan) <zo...@ir...> * * This program is free software; you can redistribute it and/or modify @@ -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: ddb.h,v 1.1 2004/11/16 17:58:47 zolty Exp $ + * $Id: ddb.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ * */ #ifndef INCLUDED_ddb_h Index: ircd-ircdev/include/destruct_event.h diff -u ircd-ircdev/include/destruct_event.h:1.3 ircd-ircdev/include/destruct_event.h:1.4 --- ircd-ircdev/include/destruct_event.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/destruct_event.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/destruct_event.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 Carlo Wood <ca...@al...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Functions for handling timed channel destruction events. - * @version $Id: destruct_event.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: destruct_event.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_destruct_event_h #define INCLUDED_destruct_event_h Index: ircd-ircdev/include/fileio.h diff -u ircd-ircdev/include/fileio.h:1.3 ircd-ircdev/include/fileio.h:1.4 --- ircd-ircdev/include/fileio.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/fileio.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/fileio.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Thomas Helvey <to...@in...> * Copyright (C) 1990 Jarkko Oikarinen * @@ -22,7 +22,7 @@ */ /** @file fileio.h * @brief ANSI FILE* clone API declarations. - * @version $Id: fileio.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: fileio.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_fileio_h #define INCLUDED_fileio_h Index: ircd-ircdev/include/gline.h diff -u ircd-ircdev/include/gline.h:1.4 ircd-ircdev/include/gline.h:1.5 --- ircd-ircdev/include/gline.h:1.4 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/gline.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/gline.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2000 Kevin L. Mitchell <kl...@mi...> * Copyright (C) 1996-1997 Carlo Wood * Copyright (C) 1990 Jarkko Oikarinen @@ -23,7 +23,7 @@ */ /** @file * @brief Structures and APIs for G-line manipulation. - * @version $Id: gline.h,v 1.4 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: gline.h,v 1.5 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_gline_h #define INCLUDED_gline_h Index: ircd-ircdev/include/handlers.h diff -u ircd-ircdev/include/handlers.h:1.9 ircd-ircdev/include/handlers.h:1.10 --- ircd-ircdev/include/handlers.h:1.9 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/handlers.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/handlers.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations for all protocol message handler functions. - * @version $Id: handlers.h,v 1.9 2004/12/28 11:15:44 zolty Exp $ + * @version $Id: handlers.h,v 1.10 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_handlers_h #define INCLUDED_handlers_h Index: ircd-ircdev/include/hash.h diff -u ircd-ircdev/include/hash.h:1.4 ircd-ircdev/include/hash.h:1.5 --- ircd-ircdev/include/hash.h:1.4 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/hash.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/hash.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Andrea Cocito * Copyright (C) 1991 Darren Reed * @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management APIs. - * @version $Id: hash.h,v 1.4 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: hash.h,v 1.5 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_hash_h #define INCLUDED_hash_h Index: ircd-ircdev/include/ircd.h diff -u ircd-ircdev/include/ircd.h:1.3 ircd-ircdev/include/ircd.h:1.4 --- ircd-ircdev/include/ircd.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file ircd.h * @brief Global data for the daemon. - * @version $Id: ircd.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_h #define INCLUDED_ircd_h Index: ircd-ircdev/include/ircd_alloc.h diff -u ircd-ircdev/include/ircd_alloc.h:1.3 ircd-ircdev/include/ircd_alloc.h:1.4 --- ircd-ircdev/include/ircd_alloc.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_alloc.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_alloc.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1999 Thomas Helvey <to...@in...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief IRC daemon memory allocation functions. - * @version $Id: ircd_alloc.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_alloc.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_alloc_h #define INCLUDED_ircd_alloc_h Index: ircd-ircdev/include/ircd_auth.h diff -u ircd-ircdev/include/ircd_auth.h:1.1 ircd-ircdev/include/ircd_auth.h:1.2 --- ircd-ircdev/include/ircd_auth.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_auth.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_auth.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004 Michael Poole <md...@tr...> * Copyright (C) 2001 Perry Lorier <is...@co...> * @@ -22,7 +22,7 @@ */ /** @file * @brief Interface to IAuth client implementation. - * @version $Id: ircd_auth.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_auth.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_auth_h #define INCLUDED_ircd_auth_h Index: ircd-ircdev/include/ircd_chattr.h diff -u ircd-ircdev/include/ircd_chattr.h:1.3 ircd-ircdev/include/ircd_chattr.h:1.4 --- ircd-ircdev/include/ircd_chattr.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_chattr.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_chattr.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Andrea Cocito * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Character attribute definitions and arrays. - * @version $Id: ircd_chattr.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_chattr.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ * * This character set code is adapted from Nemesi's Tools Library, * which gives us the prefix NTL_ on these macros. Index: ircd-ircdev/include/ircd_crypt.h diff -u ircd-ircdev/include/ircd_crypt.h:1.1 ircd-ircdev/include/ircd_crypt.h:1.2 --- ircd-ircdev/include/ircd_crypt.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_crypt.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_crypt.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -20,7 +20,7 @@ */ /** @file * @brief Core password encryption and hashing APIs. - * @version $Id: ircd_crypt.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_crypt.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_crypt_h #define INCLUDED_ircd_crypt_h Index: ircd-ircdev/include/ircd_crypt_native.h diff -u ircd-ircdev/include/ircd_crypt_native.h:1.1 ircd-ircdev/include/ircd_crypt_native.h:1.2 --- ircd-ircdev/include/ircd_crypt_native.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_crypt_native.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_crypt_native.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * Copyright (C) 1990-1991 Armin Gruner * @@ -22,7 +22,7 @@ */ /** @file * @brief Native crypt() function declarations. - * @version $Id: ircd_crypt_native.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_crypt_native.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_crypt_native_h #define INCLUDED_ircd_crypt_native_h Index: ircd-ircdev/include/ircd_crypt_plain.h diff -u ircd-ircdev/include/ircd_crypt_plain.h:1.1 ircd-ircdev/include/ircd_crypt_plain.h:1.2 --- ircd-ircdev/include/ircd_crypt_plain.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_crypt_plain.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_crypt_plain.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -20,7 +20,7 @@ */ /** @file * @brief Declarations for plaintext password "crypting". - * @version $Id: ircd_crypt_plain.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_crypt_plain.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_crypt_plain_h #define INCLUDED_ircd_crypt_plain_h Index: ircd-ircdev/include/ircd_crypt_smd5.h diff -u ircd-ircdev/include/ircd_crypt_smd5.h:1.1 ircd-ircdev/include/ircd_crypt_smd5.h:1.2 --- ircd-ircdev/include/ircd_crypt_smd5.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_crypt_smd5.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_crypt_smd5.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations for salted MD5 password crypting. - * @version $Id: ircd_crypt_smd5.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_crypt_smd5.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_crypt_smd5_h #define INCLUDED_ircd_crypt_smd5_h Index: ircd-ircdev/include/ircd_defs.h diff -u ircd-ircdev/include/ircd_defs.h:1.4 ircd-ircdev/include/ircd_defs.h:1.5 --- ircd-ircdev/include/ircd_defs.h:1.4 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_defs.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_defs.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1999 Thomas Helvey <to...@in...> * Copyright (C) 1990 Jarkko Oikarinen * @@ -26,7 +26,7 @@ * NOTE: Changing any of these definitions (except for the * target-related ones at the bottom) is equivalent to a protocol * revision. Every server on a given network must use the same values. - * @version $Id: ircd_defs.h,v 1.4 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_defs.h,v 1.5 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_defs_h #define INCLUDED_ircd_defs_h Index: ircd-ircdev/include/ircd_events.h diff -u ircd-ircdev/include/ircd_events.h:1.3 ircd-ircdev/include/ircd_events.h:1.4 --- ircd-ircdev/include/ircd_events.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_events.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_events.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for event loop. - * @version $Id: ircd_events.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_events.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_events_h #define INCLUDED_ircd_events_h Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.8 ircd-ircdev/include/ircd_features.h:1.9 --- ircd-ircdev/include/ircd_features.h:1.8 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_features.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_features.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2000 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.8 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_features.h,v 1.9 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h Index: ircd-ircdev/include/ircd_handler.h diff -u ircd-ircdev/include/ircd_handler.h:1.3 ircd-ircdev/include/ircd_handler.h:1.4 --- ircd-ircdev/include/ircd_handler.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_handler.h Mon Jan 10 04:21:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_handler.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Message handler types and definitions. - * @version $Id: ircd_handler.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_handler.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ */ #ifndef INCLUDED_ircd_handler_h #define INCLUDED_ircd_handler_h Index: ircd-ircdev/include/ircd_log.h diff -u ircd-ircdev/include/ircd_log.h:1.4 ircd-ircdev/include/ircd_log.h:1.5 --- ircd-ircdev/include/ircd_log.h:1.4 Tue Dec 28 03:15:44 2004 +++ ircd-ircdev/include/ircd_log.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_log.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1999 Thomas Helvey * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief IRC logging interface. - * @version $Id: ircd_log.h,v 1.4 2004/12/28 11:15:44 zolty Exp $ + * @version $Id: ircd_log.h,v 1.5 2005/01/10 12:22:00 zolty Exp $ */ #ifndef INCLUDED_ircd_log_h #define INCLUDED_ircd_log_h Index: ircd-ircdev/include/ircd_md5.h diff -u ircd-ircdev/include/ircd_md5.h:1.1 ircd-ircdev/include/ircd_md5.h:1.2 --- ircd-ircdev/include/ircd_md5.h:1.1 Wed Nov 24 08:10:01 2004 +++ ircd-ircdev/include/ircd_md5.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_md5.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -34,7 +34,7 @@ */ /** @file * @brief MD5 implementation for ircu. - * @version $Id: ircd_md5.h,v 1.1 2004/11/24 16:10:01 zolty Exp $ + * @version $Id: ircd_md5.h,v 1.2 2005/01/10 12:22:00 zolty Exp $ */ #ifndef ircd_md5_h #define ircd_md5_h Index: ircd-ircdev/include/ircd_osdep.h diff -u ircd-ircdev/include/ircd_osdep.h:1.3 ircd-ircdev/include/ircd_osdep.h:1.4 --- ircd-ircdev/include/ircd_osdep.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_osdep.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_osdep.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1999 Thomas Helvey <to...@in...> * Copyright (C) 1990 Jarkko Oikarinen * @@ -22,7 +22,7 @@ */ /** @file ircd_osdep.h * @brief Public definitions and APIs for OS-dependent operations. - * @version $Id: ircd_osdep.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_osdep.h,v 1.4 2005/01/10 12:22:00 zolty Exp $ */ #ifndef INCLUDED_ircd_osdep_h #define INCLUDED_ircd_osdep_h Index: ircd-ircdev/include/ircd_relay.h diff -u ircd-ircdev/include/ircd_relay.h:1.3 ircd-ircdev/include/ircd_relay.h:1.4 --- ircd-ircdev/include/ircd_relay.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_relay.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_relay.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interface to functions for relaying messages. - * @version $Id: ircd_relay.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_relay.h,v 1.4 2005/01/10 12:22:00 zolty Exp $ */ #ifndef INCLUDED_ircd_relay_h #define INCLUDED_ircd_relay_h Index: ircd-ircdev/include/ircd_reply.h diff -u ircd-ircdev/include/ircd_reply.h:1.3 ircd-ircdev/include/ircd_reply.h:1.4 --- ircd-ircdev/include/ircd_reply.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_reply.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_handler.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interfaces for sending common replies to users. - * @version $Id: ircd_reply.h,v 1.3 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_reply.h,v 1.4 2005/01/10 12:22:00 zolty Exp $ */ #ifndef INCLUDED_ircd_reply_h #define INCLUDED_ircd_reply_h Index: ircd-ircdev/include/ircd_reslib.h diff -u ircd-ircdev/include/ircd_reslib.h:1.1 ircd-ircdev/include/ircd_reslib.h:1.2 --- ircd-ircdev/include/ircd_reslib.h:1.1 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_reslib.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_reslib.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1992 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Interface from ircd resolver to its support functions. - * @version $Id: ircd_reslib.h,v 1.1 2004/11/24 16:00:43 zolty Exp $ + * @version $Id: ircd_reslib.h,v 1.2 2005/01/10 12:22:00 zolty Exp $ */ #ifndef INCLUDED_ircdreslib_h #define INCLUDED_ircdreslib_h Index: ircd-ircdev/include/ircd_signal.h diff -u ircd-ircdev/include/ircd_signal.h:1.3 ircd-ircdev/include/ircd_signal.h:1.4 --- ircd-ircdev/include/ircd_signal.h:1.3 Wed Nov 24 08:00:43 2004 +++ ircd-ircdev/include/ircd_signal.h Mon Jan 10 04:22:00 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_signal.h * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-01-10 12:24:23
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-01-10 12:23:15 UTC Modified files: ircd/IPcheck.c ircd/channel.c ircd/class.c ircd/client.c ircd/crule.c ircd/dbuf.c ircd/ddb.c ircd/destruct_event.c ircd/engine_devpoll.c ircd/engine_epoll.c ircd/engine_kqueue.c ircd/engine_poll.c ircd/engine_select.c ircd/fileio.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_alloc.c ircd/ircd_auth.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_crypt_plain.c ircd/ircd_crypt_smd5.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_md5.c ircd/ircd_relay.c ircd/ircd_reply.c ircd/ircd_res.c ircd/ircd_reslib.c ircd/ircd_signal.c ircd/ircd_snprintf.c ircd/ircd_string.c ircd/ircd_tea.c ircd/jupe.c ircd/list.c ircd/listener.c ircd/m_account.c ircd/m_admin.c ircd/m_asll.c ircd/m_away.c ircd/m_burst.c ircd/m_cap.c ircd/m_clearmode.c ircd/m_close.c ircd/m_connect.c ircd/m_cprivmsg.c ircd/m_create.c ircd/m_db.c ircd/m_dbq.c ircd/m_defaults.c ircd/m_destruct.c ircd/m_desynch.c ircd/m_die.c ircd/m_endburst.c ircd/m_error.c ircd/m_get.c ircd/m_gline.c ircd/m_help.c ircd/m_info.c ircd/m_invite.c ircd/m_ison.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_kill.c ircd/m_links.c ircd/m_list.c ircd/m_lusers.c ircd/m_map.c ircd/m_mode.c ircd/m_motd.c ircd/m_names.c ircd/m_nick.c ircd/m_notice.c ircd/m_oper.c ircd/m_opmode.c ircd/m_part.c ircd/m_pass.c ircd/m_ping.c ircd/m_pong.c ircd/m_privmsg.c ircd/m_privs.c ircd/m_proto.c ircd/m_pseudo.c ircd/m_quit.c ircd/m_rehash.c ircd/m_reset.c ircd/m_restart.c ircd/m_rping.c ircd/m_rpong.c ircd/m_server.c ircd/m_set.c ircd/m_settime.c ircd/m_silence.c ircd/m_squit.c ircd/m_stats.c ircd/m_time.c ircd/m_tmpl.c ircd/m_topic.c ircd/m_trace.c ircd/m_uping.c ircd/m_user.c ircd/m_userhost.c ircd/m_userip.c ircd/m_users.c ircd/m_version.c ircd/m_wallchops.c ircd/m_wallops.c ircd/m_wallusers.c ircd/m_wallvoices.c ircd/m_watch.c ircd/m_who.c ircd/m_whois.c ircd/m_whowas.c ircd/match.c ircd/memdebug.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/opercmds.c ircd/os_generic.c ircd/packet.c ircd/parse.c ircd/querycmds.c ircd/random.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/table_gen.c ircd/umkpasswd.c ircd/uping.c ircd/userload.c ircd/watch.c ircd/whocmds.c ircd/whowas.c Log message: Actualizacion anio 2005 en los copyrights. ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/IPcheck.c diff -u ircd-ircdev/ircd/IPcheck.c:1.7 ircd-ircdev/ircd/IPcheck.c:1.8 --- ircd-ircdev/ircd/IPcheck.c:1.7 Wed Jan 5 03:58:35 2005 +++ ircd-ircdev/ircd/IPcheck.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/IPcheck.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Carlo Wood <Ru...@un...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Code to count users connected from particular IP addresses. - * @version $Id: IPcheck.c,v 1.7 2005/01/05 11:58:35 zolty Exp $ + * @version $Id: IPcheck.c,v 1.8 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.10 ircd-ircdev/ircd/channel.c:1.11 --- ircd-ircdev/ircd/channel.c:1.10 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/channel.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/channel.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.10 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: channel.c,v 1.11 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/class.c diff -u ircd-ircdev/ircd/class.c:1.5 ircd-ircdev/ircd/class.c:1.6 --- ircd-ircdev/ircd/class.c:1.5 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/class.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/class.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1993 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of connection class handling functions. - * @version $Id: class.c,v 1.5 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: class.c,v 1.6 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/client.c diff -u ircd-ircdev/ircd/client.c:1.6 ircd-ircdev/ircd/client.c:1.7 --- ircd-ircdev/ircd/client.c:1.6 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/client.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/client.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of functions for handling local clients. - * @version $Id: client.c,v 1.6 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: client.c,v 1.7 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/crule.c diff -u ircd-ircdev/ircd/crule.c:1.3 ircd-ircdev/ircd/crule.c:1.4 --- ircd-ircdev/ircd/crule.c:1.3 Wed Nov 24 08:06:14 2004 +++ ircd-ircdev/ircd/crule.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/crule.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /** * @file * @brief Connection rule parser and checker - * @version $Id: crule.c,v 1.3 2004/11/24 16:06:14 zolty Exp $ + * @version $Id: crule.c,v 1.4 2005/01/10 12:22:58 zolty Exp $ * * by Tony Vencill (Tonto on IRC) <ve...@bg...> * Index: ircd-ircdev/ircd/dbuf.c diff -u ircd-ircdev/ircd/dbuf.c:1.4 ircd-ircdev/ircd/dbuf.c:1.5 --- ircd-ircdev/ircd/dbuf.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/dbuf.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/dbuf.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Markku Savela * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of functions dealing with data buffers. - * @version $Id: dbuf.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: dbuf.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ddb.c diff -u ircd-ircdev/ircd/ddb.c:1.2 ircd-ircdev/ircd/ddb.c:1.3 --- ircd-ircdev/ircd/ddb.c:1.2 Tue Nov 16 09:58:47 2004 +++ ircd-ircdev/ircd/ddb.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ddb.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004 Toni Garcia (zoltan) <zo...@ir...> * * This program is free software; you can redistribute it and/or modify @@ -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: ddb.c,v 1.2 2004/11/16 17:58:47 zolty Exp $ + * $Id: ddb.c,v 1.3 2005/01/10 12:22:58 zolty Exp $ * */ #include "config.h" Index: ircd-ircdev/ircd/destruct_event.c diff -u ircd-ircdev/ircd/destruct_event.c:1.4 ircd-ircdev/ircd/destruct_event.c:1.5 --- ircd-ircdev/ircd/destruct_event.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/destruct_event.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/destruct_event.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 Carlo Wood <ca...@al...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of timed channel destruction events. - * @version $Id: destruct_event.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: destruct_event.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/engine_devpoll.c diff -u ircd-ircdev/ircd/engine_devpoll.c:1.4 ircd-ircdev/ircd/engine_devpoll.c:1.5 --- ircd-ircdev/ircd/engine_devpoll.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/engine_devpoll.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/engine_devpoll.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Solaris /dev/poll event engine. - * @version $Id: engine_devpoll.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: engine_devpoll.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/engine_epoll.c diff -u ircd-ircdev/ircd/engine_epoll.c:1.6 ircd-ircdev/ircd/engine_epoll.c:1.7 --- ircd-ircdev/ircd/engine_epoll.c:1.6 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/engine_epoll.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/engine_epoll.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2003 Michael Poole <md...@tr...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Linux epoll_*() event engine. - * @version $Id: engine_epoll.c,v 1.6 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: engine_epoll.c,v 1.7 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/engine_kqueue.c diff -u ircd-ircdev/ircd/engine_kqueue.c:1.4 ircd-ircdev/ircd/engine_kqueue.c:1.5 --- ircd-ircdev/ircd/engine_kqueue.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/engine_kqueue.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/engine_kqueue.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief FreeBSD kqueue()/kevent() event engine. - * @version $Id: engine_kqueue.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: engine_kqueue.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/engine_poll.c diff -u ircd-ircdev/ircd/engine_poll.c:1.4 ircd-ircdev/ircd/engine_poll.c:1.5 --- ircd-ircdev/ircd/engine_poll.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/engine_poll.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/engine_poll.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief POSIX poll() event engine. - * @version $Id: engine_poll.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: engine_poll.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/engine_select.c diff -u ircd-ircdev/ircd/engine_select.c:1.4 ircd-ircdev/ircd/engine_select.c:1.5 --- ircd-ircdev/ircd/engine_select.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/engine_select.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/engine_select.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief BSD sockets select() event engine. - * @version $Id: engine_select.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: engine_select.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/fileio.c diff -u ircd-ircdev/ircd/fileio.c:1.4 ircd-ircdev/ircd/fileio.c:1.5 --- ircd-ircdev/ircd/fileio.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/fileio.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/fileio.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Thomas Helvey <to...@in...> * Copyright (C) 1990 Jarkko Oikarinen * @@ -22,7 +22,7 @@ */ /** @file * @brief ANSI FILE* clone API implementation. - * @version $Id: fileio.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: fileio.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.10 ircd-ircdev/ircd/gline.c:1.11 --- ircd-ircdev/ircd/gline.c:1.10 Wed Jan 5 03:58:35 2005 +++ ircd-ircdev/ircd/gline.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/gline.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2000 Kevin L. Mitchell <kl...@mi...> * Copyright (C) 1996-1997 Carlo Wood * Copyright (C) 1990 Jarkko Oikarinen @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.10 2005/01/05 11:58:35 zolty Exp $ + * @version $Id: gline.c,v 1.11 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/hash.c diff -u ircd-ircdev/ircd/hash.c:1.5 ircd-ircdev/ircd/hash.c:1.6 --- ircd-ircdev/ircd/hash.c:1.5 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/hash.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/hash.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1998 Andrea Cocito * Copyright (C) 1991 Darren Reed * @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management. - * @version $Id: hash.c,v 1.5 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: hash.c,v 1.6 2005/01/10 12:22:58 zolty Exp $ * * This file used to use some very complicated hash function. Now it * uses CRC-32, but effectively remaps each input byte according to a Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.10 ircd-ircdev/ircd/ircd.c:1.11 --- ircd-ircdev/ircd/ircd.c:1.10 Wed Jan 5 03:58:35 2005 +++ ircd-ircdev/ircd/ircd.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.10 2005/01/05 11:58:35 zolty Exp $ + * @version $Id: ircd.c,v 1.11 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_alloc.c diff -u ircd-ircdev/ircd/ircd_alloc.c:1.4 ircd-ircdev/ircd/ircd_alloc.c:1.5 --- ircd-ircdev/ircd/ircd_alloc.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_alloc.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_alloc.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1999 Thomas Helvey <to...@in...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief IRC daemon memory allocation functions. - * @version $Id: ircd_alloc.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_alloc.c,v 1.5 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.3 ircd-ircdev/ircd/ircd_auth.c:1.4 --- ircd-ircdev/ircd/ircd_auth.c:1.3 Wed Jan 5 03:58:35 2005 +++ ircd-ircdev/ircd/ircd_auth.c Mon Jan 10 04:22:58 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_iauth.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004 Michael Poole <md...@tr...> * Copyright (C) 2001 Perry Lorier <is...@co...> * @@ -22,7 +22,7 @@ */ /** @file * @brief IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.3 2005/01/05 11:58:35 zolty Exp $ + * @version $Id: ircd_auth.c,v 1.4 2005/01/10 12:22:58 zolty Exp $ */ #include "config.h" #include "client.h" Index: ircd-ircdev/ircd/ircd_crypt.c diff -u ircd-ircdev/ircd/ircd_crypt.c:1.2 ircd-ircdev/ircd/ircd_crypt.c:1.3 --- ircd-ircdev/ircd/ircd_crypt.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_crypt.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_crypt.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -22,7 +22,7 @@ /** * @file * @brief Core password encryption routines. - * @version $Id: ircd_crypt.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_crypt.c,v 1.3 2005/01/10 12:22:59 zolty Exp $ * * This is a new look crypto API for ircu, it can handle different * password formats by the grace of magic tokens at the begining of the Index: ircd-ircdev/ircd/ircd_crypt_native.c diff -u ircd-ircdev/ircd/ircd_crypt_native.c:1.2 ircd-ircdev/ircd/ircd_crypt_native.c:1.3 --- ircd-ircdev/ircd/ircd_crypt_native.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_crypt_native.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_crypt_native.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990-1991 Armin Gruner * * This program is free software; you can redistribute it and/or modify @@ -22,7 +22,7 @@ /** * @file * @brief Native crypt() function routines - * @version $Id: ircd_crypt_native.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_crypt_native.c,v 1.3 2005/01/10 12:22:59 zolty Exp $ * * Routines for handling passwords encrypted with the system's native crypt() * function (typicaly a DES encryption routine, but can be anything nowdays). Index: ircd-ircdev/ircd/ircd_crypt_plain.c diff -u ircd-ircdev/ircd/ircd_crypt_plain.c:1.2 ircd-ircdev/ircd/ircd_crypt_plain.c:1.3 --- ircd-ircdev/ircd/ircd_crypt_plain.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_crypt_plain.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_crypt_plain.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -22,7 +22,7 @@ /** * @file * @brief Routines for PLAIN passwords. - * @version $Id: ircd_crypt_plain.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_crypt_plain.c,v 1.3 2005/01/10 12:22:59 zolty Exp $ * * PLAIN text encryption. Oxymoron and a half that. */ Index: ircd-ircdev/ircd/ircd_crypt_smd5.c diff -u ircd-ircdev/ircd/ircd_crypt_smd5.c:1.2 ircd-ircdev/ircd/ircd_crypt_smd5.c:1.3 --- ircd-ircdev/ircd/ircd_crypt_smd5.c:1.2 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_crypt_smd5.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_crypt_smd5.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -22,7 +22,7 @@ /** * @file * @brief Routines for Salted MD5 passwords - * @version $Id: ircd_crypt_smd5.c,v 1.2 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_crypt_smd5.c,v 1.3 2005/01/10 12:22:59 zolty Exp $ * * ircd_crypt_smd5 is largely taken from md5_crypt.c from the Linux PAM * source code. it's been modified to fit in with ircu and some of the Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.5 ircd-ircdev/ircd/ircd_events.c:1.6 --- ircd-ircdev/ircd/ircd_events.c:1.5 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_events.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_events.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2001 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.5 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_events.c,v 1.6 2005/01/10 12:22:59 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.9 ircd-ircdev/ircd/ircd_features.c:1.10 --- ircd-ircdev/ircd/ircd_features.c:1.9 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_features.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_features.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2000 Kevin L. Mitchell <kl...@mi...> * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.9 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_features.c,v 1.10 2005/01/10 12:22:59 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_log.c diff -u ircd-ircdev/ircd/ircd_log.c:1.5 ircd-ircdev/ircd/ircd_log.c:1.6 --- ircd-ircdev/ircd/ircd_log.c:1.5 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_log.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_log.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2000 Kevin L. Mitchell <kl...@mi...> * Copyright (C) 1999 Thomas Helvey <to...@in...> * @@ -22,7 +22,7 @@ */ /** @file * @brief IRC logging implementation. - * @version $Id: ircd_log.c,v 1.5 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_log.c,v 1.6 2005/01/10 12:22:59 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_md5.c diff -u ircd-ircdev/ircd/ircd_md5.c:1.1 ircd-ircdev/ircd/ircd_md5.c:1.2 --- ircd-ircdev/ircd/ircd_md5.c:1.1 Wed Nov 24 08:05:01 2004 +++ ircd-ircdev/ircd/ircd_md5.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_md5.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2002 hikari * * This program is free software; you can redistribute it and/or modify @@ -39,7 +39,7 @@ */ /** @file * @brief MD5 implementation for ircu. - * @version $Id: ircd_md5.c,v 1.1 2004/11/24 16:05:01 zolty Exp $ + * @version $Id: ircd_md5.c,v 1.2 2005/01/10 12:22:59 zolty Exp $ */ #include <string.h> Index: ircd-ircdev/ircd/ircd_relay.c diff -u ircd-ircdev/ircd/ircd_relay.c:1.7 ircd-ircdev/ircd/ircd_relay.c:1.8 --- ircd-ircdev/ircd/ircd_relay.c:1.7 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_relay.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_relay.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Helper functions to relay various types of messages. - * @version $Id: ircd_relay.c,v 1.7 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_relay.c,v 1.8 2005/01/10 12:22:59 zolty Exp $ * * There are four basic types of messages, each with four subtypes. * Index: ircd-ircdev/ircd/ircd_reply.c diff -u ircd-ircdev/ircd/ircd_reply.c:1.4 ircd-ircdev/ircd/ircd_reply.c:1.5 --- ircd-ircdev/ircd/ircd_reply.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_reply.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_reply.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of functions to send common replies to users. - * @version $Id: ircd_reply.c,v 1.4 2004/12/28 11:15:45 zolty Exp $ + * @version $Id: ircd_reply.c,v 1.5 2005/01/10 12:22:59 zolty Exp $ */ #include "config.h" Index: ircd-ircdev/ircd/ircd_res.c diff -u ircd-ircdev/ircd/ircd_res.c:1.3 ircd-ircdev/ircd/ircd_res.c:1.4 --- ircd-ircdev/ircd/ircd_res.c:1.3 Wed Jan 5 03:58:35 2005 +++ ircd-ircdev/ircd/ircd_res.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_res.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2003 cryogen and Dianora * Copyright (C) 1999 Thomas Helvey * Copyright (C) 1992 Darren Reed @@ -41,7 +41,7 @@ */ /** @file * @brief IRC resolver functions. - * @version $Id: ircd_res.c,v 1.3 2005/01/05 11:58:35 zolty Exp $ + * @version $Id: ircd_res.c,v 1.4 2005/01/10 12:22:59 zolty Exp $ */ #include "client.h" #include "ircd_alloc.h" Index: ircd-ircdev/ircd/ircd_reslib.c diff -u ircd-ircdev/ircd/ircd_reslib.c:1.1 ircd-ircdev/ircd/ircd_reslib.c:1.2 --- ircd-ircdev/ircd/ircd_reslib.c:1.1 Wed Nov 24 08:05:01 2004 +++ ircd-ircdev/ircd/ircd_reslib.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_reslib.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1996-1999 by Internet Software Consortium * Copyright (C) 1993 by Digital Equipment Corporation * Copyright (C) 1985-1993 The Regents of the University of California @@ -122,7 +122,7 @@ /** @file * @brief DNS resolver library functions. - * @version $Id: ircd_reslib.c,v 1.1 2004/11/24 16:05:01 zolty Exp $ + * @version $Id: ircd_reslib.c,v 1.2 2005/01/10 12:22:59 zolty Exp $ */ /** Array of nameserver addresses. */ Index: ircd-ircdev/ircd/ircd_signal.c diff -u ircd-ircdev/ircd/ircd_signal.c:1.4 ircd-ircdev/ircd/ircd_signal.c:1.5 --- ircd-ircdev/ircd/ircd_signal.c:1.4 Tue Dec 28 03:15:45 2004 +++ ircd-ircdev/ircd/ircd_signal.c Mon Jan 10 04:22:59 2005 @@ -1,7 +1,7 @@ /* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_signal.c * - * Copyright (C) 2002-2004 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 1990 Jarkko Oikarinen ... [truncated message content] |