irc-dev-ipv6 Mailing List for IRC-Dev ircd development (Page 2)
Brought to you by:
zolty
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(49) |
Oct
(6) |
Nov
(5) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(8) |
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jorge D. <jdu...@na...> - 2002-11-15 15:34:03
|
gcc -g -O3 -pipe -I../include -I../zlib -c s_bsd.c -o s_bsd.o s_bsd.c: In function `inetport': s_bsd.c:315: incompatible types in assignment s_bsd.c: In function `setup_ping': s_bsd.c:2652: incompatible types in assignment make[1]: *** [s_bsd.o] Error 1 *** Esto pasa, haciendo el make, activando la opción INET6 (pillé la actual versión mediante CVS)... ¿ qué pasa ? _ ____ ____ | | | _ \ | _ \ _ | | | | | | | |_) | Jorge Duarte Rodríguez - mount | |_| | | |_| | | _ < _ \___(_) |____(_) |_| \_(_) ``Hay cosas en la vida, que no se pueden expresar con palabras´´. |
From: Zolty <zo...@us...> - 2002-11-09 14:53:06
|
CVSROOT : /cvsroot/irc-dev Module : ipv6 Commit time: 2002-11-09 14:53:04 UTC Modified files: .patches CAMBIOS.Ipv6 CAMBIOS2_10_H_05 todo.jcea include/channel.h include/patchlevel.h include/querycmds.h ircd/channel.c ircd/m_watch.c ircd/opercmds.c ircd/s_bdd.c ircd/s_err.c ircd/s_user.c ircd/whocmds.c Added files: CAMBIOS2_10_H_06 Log message: Sincronizacion u2.10.H.06.13 ---------------------- diff included ---------------------- Index: ipv6/.patches diff -u ipv6/.patches:1.2 ipv6/.patches:1.3 --- ipv6/.patches:1.2 Mon Sep 30 08:01:59 2002 +++ ipv6/.patches Sat Nov 9 06:52:54 2002 @@ -1 +1 @@ -u2.10.H.05.93 +u2.10.H.06.13 Index: ipv6/CAMBIOS.Ipv6 diff -u ipv6/CAMBIOS.Ipv6:1.11 ipv6/CAMBIOS.Ipv6:1.12 --- ipv6/CAMBIOS.Ipv6:1.11 Mon Sep 30 08:01:59 2002 +++ ipv6/CAMBIOS.Ipv6 Sat Nov 9 06:52:54 2002 @@ -1,3 +1,7 @@ +* 2002/11/09 zo...@ir... INET6.12 +----------------------------------------------------------------------- +Actualizacion IRCD hasta el u2.10.H.06.13. + * 2002/09/30 zo...@ir... INET6.11 ----------------------------------------------------------------------- Actualizacion IRCD hasta el u2.10.H.05.93. Index: ipv6/CAMBIOS2_10_H_05 diff -u ipv6/CAMBIOS2_10_H_05:1.2 ipv6/CAMBIOS2_10_H_05:1.3 --- ipv6/CAMBIOS2_10_H_05:1.2 Mon Sep 30 08:01:59 2002 +++ ipv6/CAMBIOS2_10_H_05 Sat Nov 9 06:52:54 2002 @@ -1,4 +1,15 @@ -$Id: CAMBIOS2_10_H_05,v 1.2 2002/09/30 15:01:59 zolty Exp $ +$Id: CAMBIOS2_10_H_05,v 1.3 2002/11/09 14:52:54 zolty Exp $ + +* 2002/09/01 jc...@ar... (u2.10.H.05.95) FEATURE + ----------------------------------------------------------------------- + Ampliacion de TOPICLEN de 160 a 240 caracteres (un 50% mas). + +* 2002/09/01 ni...@ir... (u2.10.H.05.94) FIX + ----------------------------------------------------------------------- + Deshacemos el parche u2.10.H.05.71 por enviar el numeric en vez del + nick. Es imposible saber el nick al que se envia un PRIVMSG si el + mensaje se pierde en transito por la red a su destino. Por ello, se + vuelve a mostrar el "*" del codigo original. * 2002/09/30 ni...@ir... (u2.10.H.05.93) FIX ----------------------------------------------------------------------- Index: ipv6/CAMBIOS2_10_H_06 diff -u /dev/null ipv6/CAMBIOS2_10_H_06:1.1 --- /dev/null Sat Nov 9 06:53:05 2002 +++ ipv6/CAMBIOS2_10_H_06 Sat Nov 9 06:52:54 2002 @@ -0,0 +1,79 @@ +$Id: CAMBIOS2_10_H_06,v 1.1 2002/11/09 14:52:54 zolty Exp $ + +* 2002/10/22 jc...@ar... (u2.10.H.06.13) FIX + ----------------------------------------------------------------------- + Otro bug delicado de topic y "/list". + +* 2002/10/21 jc...@ar... (u2.10.H.06.12) FIX + ----------------------------------------------------------------------- + Bug fix de los dos parches anteriores. Este bug es chungo, pero se ha + detectado y solucionado en minutos :-). El servidor cascaba si se hacia + un "/list", ya que ahora puede no existir ni siquiera la informacion + de TOPIC. Antes, aunque no hubiese topic, su espacio SI existia, que + es precisamente lo que queremos eliminar con estos parches. + +* 2002/10/21 jc...@ar... (u2.10.H.06.11) FIX + ----------------------------------------------------------------------- + Bug fix de los dos parches anteriores. + +* 2002/10/21 jc...@ar... (u2.10.H.06.10) FEATURE + ----------------------------------------------------------------------- + Como optimizacion del parche anterior, cuando se pone un "topic" nuevo, + reutilizamos la memoria dinamica del topic anterior si su longitud es + lo bastante grande como para acomodar el nuevo. + +* 2002/10/21 jc...@ar... (u2.10.H.06.09) FEATURE + ----------------------------------------------------------------------- + En vez de reservar 'X' bytes para el topic y el nick del usuario que lo + pone, se usa memoria dinamica para ello. + +* 2002/10/21 ni...@ir... (u2.10.H.06.08) FIX + ----------------------------------------------------------------------- + Solucionado un bug que hacia que no se propagase el modo de canal +M en + los bursts. + +* 2002/10/10 jc...@ar... (u2.10.H.06.07) FIX + ----------------------------------------------------------------------- + Solucionado un posible problema de seguridad en "m_stat()". Ahora no + es problematico, pero no sabemos como puede evolucionar esa funcion + en el futuro, asi que mejor curarse en salud. + +* 2002/10/09 jc...@ar... (u2.10.H.06.06) FEATURE + ----------------------------------------------------------------------- + No se incluye la IP cifrada en los usuarios con IP Virtual personalizada, + porque ello incrementa su "sex appeal" cara a los usuarios. + + El perder esa informacion queda compensado con el + hecho de que las entradas de los usuarios +r quedan + registradas en los bots, incluyendo sus IPs. + + No me acaba de gustar, pero es una peticion de Sisco. + +* 2002/10/09 ni...@ir... (u2.10.H.06.05) FIX + ----------------------------------------------------------------------- + Refinamos el parche u2.10.H.06.02 pues nodos con esa version, esta vez + tenian un numero negativo de helpers. El error se producia porque al + eliminar el conteo de register_user() con la intencion de procesar esa + entrada y sumarla en m_nick(), para entradas remotas de opers con + nick:clave o entradas remotas de bots con +h, no se hacia el conteo de + ese helper, y cuando despues un +h salia de la red, se restaba uno sin + haberse sumado uno anteriormente. + +* 2002/10/07 am...@on... (u2.10.H.06.04) FIX + ----------------------------------------------------------------------- + Comprobaciones extras en los parametros del mensaje DBQ. En concreto, + el nombre de la tabla sólo puede contener un caracter. + +* 2002/10/07 am...@on... (u2.10.H.06.03) FIX + ----------------------------------------------------------------------- + Los JOIN, PART y WHO en los que el origen (es decir, sptr) es un servidor + son ignorados, ya que en el caso del JOIN y WHO, mata el proceso. + +* 2002/10/06 ni...@ir... (u2.10.H.06.02) FIX + ----------------------------------------------------------------------- + Solucionamos un pequeño bug que hacia que en el LUSERS se mostrase + un numero equivocado (mayor) de helpers. + +* 2002/10/01 jc...@ar... (u2.10.H.06.01) CLEANUP + ----------------------------------------------------------------------- + "make indent". Index: ipv6/include/channel.h diff -u ipv6/include/channel.h:1.3 ipv6/include/channel.h:1.4 --- ipv6/include/channel.h:1.3 Mon Sep 30 08:02:00 2002 +++ ipv6/include/channel.h Sat Nov 9 06:52:54 2002 @@ -31,7 +31,7 @@ #define MODEBUFLEN 200 #define KEYLEN 23 -#define TOPICLEN 160 +#define TOPICLEN 240 #define CHANNELLEN 64 #define MAXBANS 75 @@ -154,8 +154,13 @@ struct Channel *nextch, *prevch, *hnextch; Mode mode; time_t creationtime; - char topic[TOPICLEN + 1]; - char topic_nick[NICKLEN + 1]; +/* +** 'topic_nick' se almacena JUSTO A CONTINUACION +** del 'topic' propiamente dicho. Asi nos basta +** con un "malloc"/"free", en vez de dos. +*/ + char *topic; + char *topic_nick; time_t topic_time; unsigned int users; struct SLink *members; Index: ipv6/include/patchlevel.h diff -u ipv6/include/patchlevel.h:1.12 ipv6/include/patchlevel.h:1.13 --- ipv6/include/patchlevel.h:1.12 Mon Sep 30 08:02:00 2002 +++ ipv6/include/patchlevel.h Sat Nov 9 06:52:54 2002 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.11" + "+INET6.12" /* * Deliberate empty lines Index: ipv6/include/querycmds.h diff -u ipv6/include/querycmds.h:1.2 ipv6/include/querycmds.h:1.3 --- ipv6/include/querycmds.h:1.2 Mon Sep 30 08:02:00 2002 +++ ipv6/include/querycmds.h Sat Nov 9 06:52:54 2002 @@ -22,7 +22,6 @@ unsigned int helpers; /* IsHelpOp() */ unsigned int bots_oficiales; /* IsServicesBot() */ #endif - }; /*============================================================================= Index: ipv6/ircd/channel.c diff -u ipv6/ircd/channel.c:1.6 ipv6/ircd/channel.c:1.7 --- ipv6/ircd/channel.c:1.6 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/channel.c Sat Nov 9 06:52:54 2002 @@ -20,6 +20,7 @@ #include "sys.h" #include <stdlib.h> +#include <assert.h> #include "h.h" #include "struct.h" #include "channel.h" @@ -47,7 +48,7 @@ #include "sprintf_irc.h" #include "querycmds.h" -RCSTAG_CC("$Id: channel.c,v 1.6 2002/09/30 15:02:00 zolty Exp $"); +RCSTAG_CC("$Id: channel.c,v 1.7 2002/11/09 14:52:54 zolty Exp $"); aChannel *channel = NullChn; @@ -2544,13 +2545,14 @@ if (chptr->users > args->min_users && chptr->users < args->max_users && chptr->creationtime > args->min_time && chptr->creationtime < args->max_time && - (!args->topic_limits || (*chptr->topic && + (!args->topic_limits || (chptr->topic && chptr->topic_time > args->min_topic_time && chptr->topic_time < args->max_topic_time))) { sendto_one(cptr, rpl_str(RPL_LIST), me.name, cptr->name, ShowChannel(cptr, chptr) ? chptr->chname : "*", - chptr->users, ShowChannel(cptr, chptr) ? chptr->topic : ""); + chptr->users, ShowChannel(cptr, + chptr) ? (chptr->topic ? (char *)(chptr->topic) : "") : ""); chptr = chptr->nextch; break; } @@ -2623,6 +2625,11 @@ chptr->nextch->prevch = chptr->prevch; hRemChannel(chptr); --nrof.channels; + + if (chptr->topic) + { + RunFree(chptr->topic); + } RunFree((char *)chptr); } @@ -2645,6 +2652,9 @@ size_t *buflen; char *p = NULL, *bufptr; + if (IsServer(sptr)) /* Un servidor entrando en un canal? */ + return 0; + if (parc < 2 || *parv[1] == '\0') { sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "JOIN"); @@ -2888,7 +2898,7 @@ if (MyUser(sptr)) { del_invite(sptr, chptr); - if (chptr->topic[0] != '\0') + if (chptr->topic) { sendto_one(sptr, rpl_str(RPL_TOPIC), me.name, parv[0], name, chptr->topic); @@ -3554,6 +3564,20 @@ modebuf[mblen2++] = 'S'; break; } + case 'M': + { + register int tmp; + prev_mode &= ~MODE_MSGNONREG; + if (!(tmp = netride || + (current_mode->mode & MODE_MSGNONREG)) || wipeout) + { + bmodebuf[mblen++] = 'M'; + current_mode->mode |= MODE_MSGNONREG; + } + if (!tmp) + modebuf[mblen2++] = 'M'; + break; + } #endif /* BDD */ case 'n': { @@ -4058,6 +4082,9 @@ sptr->flags &= ~FLAGS_TS8; + if (IsServer(sptr)) /* Sin esto no pasa nada, pero por si las moscas.. */ + return 0; + if (parc < 2 || parv[1][0] == '\0') { sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "PART"); @@ -4415,7 +4442,7 @@ if (!topic) /* only asking for topic */ { - if (chptr->topic[0] == '\0') + if (chptr->topic) sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname); else { @@ -4435,8 +4462,37 @@ #endif { /* setting a topic */ - strncpy(chptr->topic, topic, TOPICLEN); - strncpy(chptr->topic_nick, sptr->name, NICKLEN); + { + int len, len2; + + len = strlen(topic); + if (len > TOPICLEN) + { + len = TOPICLEN; + topic[len] = '\0'; + } + + len2 = len + strlen(sptr->name) + 2; /* El +2 es por los dos '\0' */ + if (chptr->topic) + { + if (chptr->topic_nick + strlen(chptr->topic_nick) + 1 - chptr->topic < + len2) + { + RunFree(chptr->topic); + chptr->topic = RunMalloc(len2); + assert(chptr->topic); + } + } + else + { + chptr->topic = RunMalloc(len2); + assert(chptr->topic); + } + + strcpy(chptr->topic, topic); + chptr->topic_nick = chptr->topic + len + 1; /* Ponemos el nick justo a continuacion */ + strcpy(chptr->topic_nick, sptr->name); + } chptr->topic_time = now; if (!IsLocalChannel(name)) { @@ -4815,7 +4871,8 @@ if (chptr && ShowChannel(sptr, chptr) && sptr->user) sendto_one(sptr, rpl_str(RPL_LIST), me.name, parv[0], ShowChannel(sptr, chptr) ? chptr->chname : "*", - chptr->users - number_of_zombies(chptr), chptr->topic); + chptr->users - number_of_zombies(chptr), + chptr->topic ? chptr->topic : ""); } sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); Index: ipv6/ircd/m_watch.c diff -u ipv6/ircd/m_watch.c:1.4 ipv6/ircd/m_watch.c:1.5 --- ipv6/ircd/m_watch.c:1.4 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/m_watch.c Sat Nov 9 06:52:54 2002 @@ -110,20 +110,24 @@ if (!wptr) return; /* No esta en ningun notify */ -#ifdef BDD_VIP if (!ip_override) { +#if defined(BDD_VIP) if (sptr->user->virtualhost[0] == '\0') { make_virtualhost(sptr, 0, 0); } +#endif +#if defined(BDD) if (!IsHidden(sptr)) { /* Optimizacion para simplificar codigo mas abajo */ ip_override = ip_override_SeeHidden = sptr->user->host; } - } +#else + ip_override = ip_override_SeeHidden = sptr->user->host; #endif + } wptr->lasttime = TStime(); @@ -148,11 +152,11 @@ } else { -#if defined(BDD_VIP) +#if defined(BDD) && defined(BDD_VIP) ip = sptr->user->virtualhost; if (IsHiddenViewer(acptr) || (sptr == acptr)) { - ip = cptr->user->host; + ip = sptr->user->host; } #else ip = sptr->user->host; Index: ipv6/ircd/opercmds.c diff -u ipv6/ircd/opercmds.c:1.3 ipv6/ircd/opercmds.c:1.4 --- ipv6/ircd/opercmds.c:1.3 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/opercmds.c Sat Nov 9 06:52:54 2002 @@ -61,7 +61,7 @@ #include "s_serv.h" #include "hash.h" -RCSTAG_CC("$Id: opercmds.c,v 1.3 2002/09/30 15:02:00 zolty Exp $"); +RCSTAG_CC("$Id: opercmds.c,v 1.4 2002/11/09 14:52:54 zolty Exp $"); /* * m_squit @@ -305,7 +305,7 @@ aClient *acptr; aGline *agline, *a2gline; aConfItem *aconf; - char stat = parc > 1 ? parv[1][0] : '\0'; + unsigned char stat = parc > 1 ? parv[1][0] : '\0'; Reg1 int i; /* m_stats is so obnoxiously full of special cases that the different @@ -1366,7 +1366,10 @@ parv[3] = NULL; if ((i = hunt_server(IsServer(acptr), cptr, sptr, ":%s TRACE %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) + { + sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[2]); return 0; + } } else i = HUNTED_ISME; @@ -1381,10 +1384,7 @@ acptr = FindNServer(parv[2]); if ((i = hunt_server(0, cptr, sptr, ":%s TRACE %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) - { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[2]); return 0; - } tname = parv[1]; } Index: ipv6/ircd/s_bdd.c diff -u ipv6/ircd/s_bdd.c:1.2 ipv6/ircd/s_bdd.c:1.3 --- ipv6/ircd/s_bdd.c:1.2 Thu Sep 12 12:19:00 2002 +++ ipv6/ircd/s_bdd.c Sat Nov 9 06:52:54 2002 @@ -1578,7 +1578,9 @@ return 0; /* No autorizado */ } /* <Origen> DBQ [<server>] <Tabla> <Clave> */ - if (parc != 3 && parc != 4) + if ((parc != 3 && parc != 4) || + (parc == 3 && (parv[1][0] == '\0' || parv[1][1] != '\0')) || + (parc == 4 && (parv[2][0] == '\0' || parv[2][1] != '\0'))) { if (!IsServer(sptr)) Index: ipv6/ircd/s_err.c diff -u ipv6/ircd/s_err.c:1.2 ipv6/ircd/s_err.c:1.3 --- ipv6/ircd/s_err.c:1.2 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/s_err.c Sat Nov 9 06:52:54 2002 @@ -24,7 +24,7 @@ #include "sprintf_irc.h" #include "m_watch.h" -RCSTAG_CC("$Id: s_err.c,v 1.2 2002/09/30 15:02:00 zolty Exp $"); +RCSTAG_CC("$Id: s_err.c,v 1.3 2002/11/09 14:52:54 zolty Exp $"); typedef struct { int num_val; @@ -42,6 +42,7 @@ {RPL_YOURHOST, ":Your host is %s, running version %s"}, /* 003 */ {RPL_CREATED, ":This server was created %s"}, + /* 004 */ #if defined(BDD) #if defined(BDD_VIP) @@ -52,6 +53,7 @@ #else {RPL_MYINFO, "%s %s dioswkg biklmnopstv"}, #endif /* BDD */ + /* 005 */ {RPL_ISUPPORT, "%s :are supported by this server"}, /* 006 */ @@ -675,7 +677,7 @@ #ifdef BDD {RPL_LUSEROP, "%d :IRCop(s), %d helper(s) and %d official bot(s) online"}, #else - {RPL_LUSEROP, "%d :operator(s) online"}, + {RPL_LUSEROP, "%d :IRCop(s) online"}, #endif /* 253 */ {RPL_LUSERUNKNOWN, "%d :unknown connection(s)"}, Index: ipv6/ircd/s_user.c diff -u ipv6/ircd/s_user.c:1.7 ipv6/ircd/s_user.c:1.8 --- ipv6/ircd/s_user.c:1.7 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/s_user.c Sat Nov 9 06:52:54 2002 @@ -69,7 +69,7 @@ #include "IPcheck.h" #include "class.h" -RCSTAG_CC("$Id: s_user.c,v 1.7 2002/09/30 15:02:00 zolty Exp $"); +RCSTAG_CC("$Id: s_user.c,v 1.8 2002/11/09 14:52:54 zolty Exp $"); /* *INDENT-OFF* */ @@ -619,8 +619,8 @@ if (IsOper(sptr)) ++nrof.opers; #if defined(BDD) - if (IsHelpOp(sptr)) - ++nrof.helpers; + if (!MyUser(sptr) && IsHelpOp(sptr)) /* Sumamos para entradas REMOTAS de +h */ + ++nrof.helpers; /* Las locales se procesan en m_nick */ if (IsServicesBot(sptr)) ++nrof.bots_oficiales; #endif @@ -1954,6 +1954,7 @@ * ha entrado (ha puesto el nick). * (Cambio de nick local y remoto). */ + if (IsUser(sptr) && !nick_equivalentes) { #ifdef BDD @@ -1974,9 +1975,11 @@ } else { -#endif /* BDD */ chequea_estado_watch(sptr, RPL_LOGON, NULL, NULL); } +#else /* BDD */ + chequea_estado_watch(sptr, RPL_LOGON, NULL, NULL); +#endif /* BDD */ } #endif /* WATCH */ @@ -2185,9 +2188,19 @@ else if (MyUser(sptr) || Protocol(cptr) < 10) sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); else + { +/* +** jc...@ar... - u2.10.H.05.94 +** No podemos devolver el NICK porque +** aqui solo tenemos el "numeric", y si +** el usuario ya se ha desconectado, como +** es el caso, pues no podemos hacer +** la conversion "numeric" -> "nick". +*/ sendto_one(sptr, - ":%s %d %s %s :Target left IRC. Failed to deliver: [%.50s]", - me.name, ERR_NOSUCHNICK, sptr->name, nick, parv[parc - 1]); + ":%s %d %s * :Target left IRC. Failed to deliver: [%.50s]", + me.name, ERR_NOSUCHNICK, sptr->name, parv[parc - 1]); + } continue; } /* @@ -4340,9 +4353,25 @@ && (reg = db_buscar_registro(BDD_IPVIRTUAL2DB, acptr->name))) { assert(strlen(reg->valor) < (HOSTLEN - 24)); + +/* +** A partir de u2.10.H.06.06 no se incluye la IP cifrada +** en los usuarios con IP Virtual personalizada porque +** ello incrementa su "sex appeal" cara a los usuarios. +** El perder esa informacion queda compensado con el +** hecho de que las entradas de los usuarios +r quedan +** registradas en los bots, incluyendo sus IPs. +** No me acaba de gustar, pero es una peticion de Sisco. +** 09/Oct/02 - jc...@ar... +*/ +#if 0 *(acptr->user->virtualhost + 13) = '.'; strcpy(acptr->user->virtualhost + 14, reg->valor); strcat(acptr->user->virtualhost + 14, ".virtual"); +#else + strcpy(acptr->user->virtualhost, reg->valor); + strcat(acptr->user->virtualhost, ".virtual"); +#endif } else { Index: ipv6/ircd/whocmds.c diff -u ipv6/ircd/whocmds.c:1.5 ipv6/ircd/whocmds.c:1.6 --- ipv6/ircd/whocmds.c:1.5 Mon Sep 30 08:02:00 2002 +++ ipv6/ircd/whocmds.c Sat Nov 9 06:52:54 2002 @@ -64,7 +64,7 @@ #include "querycmds.h" #include "IPcheck.h" -RCSTAG_CC("$Id: whocmds.c,v 1.5 2002/09/30 15:02:00 zolty Exp $"); +RCSTAG_CC("$Id: whocmds.c,v 1.6 2002/11/09 14:52:54 zolty Exp $"); /* * m_who() @@ -391,6 +391,9 @@ char *p; /* Scratch char pointer */ char *qrt; /* Pointer to the query type */ static char mymask[512]; /* To save the mask before corrupting it */ + + if (IsServer(sptr)) + return 0; /* Let's find where is our mask, and if actually contains something */ mask = ((parc > 1) ? parv[1] : NULL); Index: ipv6/todo.jcea diff -u ipv6/todo.jcea:1.2 ipv6/todo.jcea:1.3 --- ipv6/todo.jcea:1.2 Mon Sep 30 08:01:59 2002 +++ ipv6/todo.jcea Sat Nov 9 06:52:54 2002 @@ -1,4 +1,32 @@ -$Id: todo.jcea,v 1.2 2002/09/30 15:01:59 zolty Exp $ +$Id: todo.jcea,v 1.3 2002/11/09 14:52:54 zolty Exp $ + +17/Oct/02 +[11:42] <NiKoLaS> que al hacer un /invite te devuelva los canales donde estas invitado y aun no entraste? +[11:42] <NiKoLaS> esto seria sacado de undernet + +17/Oct/02 +[11:28] <NiKoLaS> En el whois se ha de poder ver el resumen de modos del usuario. Se mostraran +[11:28] <NiKoLaS> los mismos modos que en el WHO y se unificara la rutina que los calcula en +[11:28] <NiKoLaS> en WHO para poder llamarla desde el WHO y el WHOIS y evitar redundancias en +[11:28] <NiKoLaS> el codigo. + +16/Oct/02 +El modo +k debe saltarse tambien la limitacion de cambios +de nick y de TARGETS. + +10/Oct/02 +Pasar la tabla 'o' a FLAGS individuales. Osea, cada bit, un flag. + +10/Oct/02 +En el IRCD hay varias secciones marcadas como FIXME o con "#if 0" +y similares. Hacer limpieza de lo que sobre. + +01/Oct/02 +Hay datos en las estructuras que tienen un taman~o fijo elevado, +pero que no se suelen usar a tope. Ejemplos de ello son el +"topic" en los canales, o el "hostname" en los usuarios. + +Deberian usarse estructuras dinamicas. Evaluar conveniencia. 25/Sep/02 Ahora que se muestran los IRCops, Opers y Bots online, ver ----------------------- End of diff ----------------------- |
From: <zo...@te...> - 2002-10-19 22:02:37
|
Por si no tienen ipv6 http://www.ipng.nl/tpipv6-001205-SP3-IE6.zip Y para los usuarios de los obsoletos Windows95, 98, Me y NT http://www.trumpet.com.au/ipv6.htm Un saludo zoltan |
From: <zo...@te...> - 2002-10-19 20:16:34
|
1752 The Recommendation for the IP Next Generation Protocol 1809 Using the Flow Label in IPv6 1881 IPv6 Address Allocation Management 1883 Internet Protocol, Version 6 Specification 1884 IP Version 6 Addressing Architecture 1885 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification 1886 DNS Extensions to Support IP Version 6 1887 An Architecture for IPv6 Unicast Address Allocation 1888 OSI NSAPs and IPv6 1897 IPv6 Testing Address Allocation 1924 A Compact Representation of IPv6 Addresses 1933 Transition Mechanisms for IPv6 Hosts and Routers 1970 Neighbor Discovery for IP Version 6 (IPv6) 1971 IPv6 Stateless Address Autoconfiguration 1972 A Method for the Transmission of IPv6 Packets over Ethernet Networks 2019 Transmission of IPv6 Packets Over FDDI 2030 Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI 2073 An IPv6 Provider-Based Unicast Address Format 2080 RIPng for IPv6 2133 Basic Socket Interface Extensions for IPv6 2147 TCP and UDP over IPv6 Jumbograms 2185 Routing Aspects of IPv6 Transition 2292 Advanced Sockets API for IPv6 2373 IP Version 6 Addressing Architecture 2374 An IPv6 Aggregatable Global Unicast Address Format 2375 IPv6 Multicast Address Assignments 2428 FTP Extensions for IPv6 and NATs 2460 Internet Protocol, Version 6 (IPv6) 2461 Neighbor Discovery for IP Version 6 (IPv6) 2462 IPv6 Stateless Address Autoconfiguration 2463 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification 2464 Transmission of IPv6 Packets over Ethernet Networks 2465 Management Information Base for IP Version 6 2466 Management Information Base for IP Version 6 2467 Transmission of IPv6 Packets over FDDI Networks 2470 Transmission of IPv6 Packets over Token Ring Networks 2471 IPv6 Testing Address Allocation 2472 IP Version 6 over PPP 2473 Generic Packet Tunneling in IPv6 Specification 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers 2491 IPv6 over Non-Broadcast Multiple Access (NBMA) networks 2492 IPv6 over ATM Networks 2497 Transmission of IPv6 Packets over ARCnet Networks 2526 Reserved IPv6 Subnet Anycast Addresses 2529 Transmission of IPv6 over IPv4 Domains without Explicit Tunnels 2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing 2553 Basic Socket Interface Extensions for IPv6 2590 Transmission of IPv6 Packets over Frame Relay 2675 IPv6 Jumbograms 2710 Multicast Listener Discovery (MLD) for IPv6 2711 IPv6 Router Alert Option 2732 Format for Literal IPv6 Addresses in URL's 2740 OSPF for IPv6 2874 DNS Extensions to Support IPv6 Address Aggregation and Renumbering 2893 Transition Mechanisms for IPv6 Hosts and Routers 2894 Router Renumbering for IPv6 2928 Initial IPv6 Sub-TLA ID Assignments 3041 Privacy Extensions for Stateless Address Autoconfiguration in IPv6 3053 IPv6 Tunnel Broker 3056 Connection of IPv6 Domains via IPv4 Clouds 3122 Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification 3146 Transmission of IPv6 Packets over IEEE 1394 Networks 3152 Delegation of IP6.ARPA 3162 RADIUS and IPv6 3177 IAB/IESG Recommendations on IPv6 Address Allocations to Sites 3178 IPv6 multihoming support at site exit routers 3226 DNSSEC and IPv6 A6 aware server/resolver message size requirements 3307 Allocation Guidelines for IPv6 Multicast Addresses 3363 Representing Internet Protocol version 6 (IPv6) Addresses in the Domain Name System (DNS) 3364 Tradeoffs in Domain Name System (DNS) Support for Internet Protocol version 6 (IPv6) Un saludo zoltan |
From: <zo...@te...> - 2002-10-19 20:13:57
|
IPv6 Servers on IRCnet - IPv6 Channel Stats 2001:670:8b:1002:2d0:b7ff:fe16:9ee2 irc6.datanet.ee 3ffe:8280:0:280::6667 irc.ipv6.xs4all.nl 2001:7d0::6666 irc.ipv6.estpak.ee 2001:6e0:208:0:204:76ff:fe23:2024 linz.irc.at 2001:610:1908:8000:280:48ff:fecd:8883 irc.snt.ipv6.utwente.nl 2001:670:8e:f000::2 eu-fi.irc6.net 2001:200:0:c00::6667 irc6.kyoto.wide.ad.jp 2001:750:2:0:202:a5ff:fef0:aac7 irc6.edisontel.it 2001:6b8:1:0:210:83ff:fe35:2816 irc6.ngnet.it 2001:6e8::1 irc.song.fi 2001:718:1:1:203:47ff:fe71:9 eaairc.ipv6.cesnet.cz Only Czech andSlovak users allowed 2001:638:a00:2::53 uni-erlangen.de aka irc6.ipv6.uni-erlangen.de only open to users with german RIPE space IPv6 Servers on Striked: Random IPv6 Connectirc6.striked.org 2001:470:1f00:392::aaaa starburst.ab.ca.striked.org 3ffe:80ee:35f::11 ares.si.eu.striked.org 3ffe:4008:3:ffff::a deathstar.se.eu.striked.org IPv6 Servers on EFNET: 2001:840::1000 irc.ipv6.homelien.no 2001:410:300:0:DEAD:BEEF:CAFE:BABE irc6.qeast.net IPv6 Servers on Breezer IRC Network: 3ffe:8280:10:410::6667 blue-paradise.breezer.org 3ffe:8280:10:20:30:40:50:60 island-peach.breezer.org 3ffe:8280:10:3e0::6 fuzzy-navel.breezer.org 8114:2000:b20::6667 watermelon.breezer.org IPv6 Servers on SwipeNet.Org: 3ffe:80ee:3da:0:0:0:0:a1 Area51.Nl.Eu.SwipeNet.Org 3ffe:80ee:3d7:0:0:0:0:1 Locutus.Nl.Eu.SwipeNet.Org 3ffe:80ee:469:0:0:0:0:1 Tux.Nl Eu.SwipeNet.Org 3ffe:80ee:03ff:0:0:0:0:5 Wsn.Nl.Eu.SwipeNet.Org 3ffe:b80:46c:0:0:0:0:20 Onliner.Be.Eu.SwipeNet.Org 3ffe:8100:100:12:0:0:0:1 Tyranz.Qc.Ca.SwipeNet.Org IPv6 Servers on Freenode name change from Open Projects Network: 3ffe:8171:10:16::25 calvino.freenode.net 3ffe:8271:a040:16::25 calvino.freenode.net 3ffe:1001:210:16::25 calvino.freenode.net 2001:608:1:117:7d94:13d3:df0:7fe1 gerrold.freenode.net 2001:658:0:117:7d94:13d3:df0:7fe1 gerrold.freenode.net IPv6 Server on FlexNet: 3ffe:b80:2:a5ee::2 irc6.de.flexnet.org 2001:6e0:202:1026::6667 irc6.nl.flexnet.org IPv6 Server on iwsds.net: 3FFE:8270:9:2000:0:0:0:6 irc.ipv6.iwsds.net 3FFE:8270:9:1002:0:0:0:20 irc6.ipv6.iwsds.net IPv6 Servers on Beatmix: Random IPv6 Connect irc6.beatmix.net 3ffe:b80:2:69b7::2 irc.ipv6.beatmix.net 3ffe:80ee:3da:0:0:0:0:b0 irc.ipv6.locutus.be IPv6 Server on AzzurraNet: 3ffe:1001:310:1:201:80ff:fe05:80cf ctonet.azzurra.org 2001:6b8::206:5bff:fe39:3a90 ngnet.azzurra.org IPv6 Server on irc-chat: 3ffe:80d0:fffc:10::17 ipv6.irc-chat.org IPv6 Server on insiderZ: 3ffe:1001:600:3::6667 irc6.insiderZ.de IPv6 Server on Smoothweb: 3ffe:80ee:410::1 irc6.smoothweb.nl Un saludo zoltan |
From: <zo...@te...> - 2002-10-18 20:12:19
|
Whois desde un nodo ipv4 o ipv6, da igual, que salen igual » Nick: zolty » Dirección: zolty@80.59.255.83 » Nombre: Sen ti no podo vivir. Pensando muchisimo en ti... » Canales: +#opers » Servidor: Odin.lopeor.biz » Nombre del Servidor: Servidor de Desarrollo - ipv6 » Nick: zolty2 » Dirección: zolty@2001:618:400::503b:ff53 » Nombre: http://www.irc-dev.net » Servidor: Odin.lopeor.biz » Nombre del Servidor: Servidor de Desarrollo - ipv6 zolty ha conectado al servidor IPv6 mediante IPv4 y zolty2 con IPv6 Hasta ahi todo correcto :) Ahora probamos el comando /USERIP, ahora desde el nodo con IPv6: zolty=-zolty@80.59.255.83 zolty2=+zolty@2001:618:400::503b:ff53 Todo correcto... Y si hacemos el userip en un nodo IPv4... zolty=+zolty@0.0.0.0 zolty2=+zolty@0.0.0.0 ¿Que sucede? La explicacion es muy sencilla... En los nodos remotos, el hostname (y en casos que no hay hostname, sale ip numerica), se propaga en el comando NICK de servidor, por esto salen correctamente en los WHOIS. Despues, la IP numerica que se guarda aparte, se procesa a partir de la ip en base 64, de 6 caracteres que se propaga en el comando NICK en modo P10, en P09 no manda. En el ircd compilado con IPv6, manda siempre un "AAAAAA" que equivale a 0.0.0.0 ya que daba error de compilacion y he dejado asi provisionalmente mientras hacia lo mas importante. Una posibilidad es hacer lo siguiente... Si el usuario tiene ipv4, mandar solo 6 caracteres. Si el usuario tiene ipv6, mandar 22 caracteres. Amn3s1a, que opinas lo de ip en formato base64?? Un saludo zoltan |
From: <zo...@te...> - 2002-10-18 19:57:23
|
Se ha linkado un ircd con ipv6 a una red IRC con ircd's normales de irc-hispano y ha sido muy sencilla... con poner en las C/N del ircd6 la ip del otro servidor llega... ejemplo C:32.54.23.5:pass:server::50 Yo pensaba que habia que hacer con ::FFFF:32.54.23.5, porque así lo maneja la pila IPv6 cuando recibe una conexion de un usuario con ipv4, pero sin darme cuenta que ya he adaptado en el codigo, esta en s_bsd.c , funcion check_server(). A seguir haciendo pruebas :P Un saludo zoltan |
From: <zo...@te...> - 2002-10-18 19:30:07
|
- *:*:* End of /WHO list - *:* End of /WHO list - #opers aDMiNS H*@dhXrBk -@- :2 Bot de ADMINs #opers PReOPS H*@dhXrBk -@- :2 Bot de PreOpers #opers ___LORD__ H*@k ir...@Od... :0 ircu account * zolty2 H zolty@2001:618:449::bebe:cafe:69 :0 http://www.irc-dev.net * zoltanito H zolty@2001:618:449::1 :0 http://www.irc-dev.net * zoltoni H zolty@2001:618:449::2 :0 http://www.irc-dev.net * End of /WHO list #opers aDMiNS H*@dhXrBk -@- :2 Bot de ADMINs #opers PReOPS H*@dhXrBk -@- :2 Bot de PreOpers #opers ___LORD__ H*@k ir...@Od... :0 ircu account * zolty2 H zolty@2001:618:449::bebe:cafe:69 :0 http://www.irc-dev.net * zoltanito H zolty@2001:618:449::1 :0 http://www.irc-dev.net * zoltoni H zolty@2001:618:449::2 :0 http://www.irc-dev.net *.* End of /WHO list Cuando se hace un /WHO *.*, solo deberia salir los HOSTNAMES y las IPS numericas que contengan '.' como 34.5.32.54 o ::FFFF:32.53.12.65 Y si se hace /WHO *:*:* no sale nada.... Bug a añadir en el TODO Un saludo zoltan |
Update of /cvsroot/irc-dev/ipv6/ircd In directory usw-pr-cvs1:/tmp/cvs-serv3940/ircd Modified Files: channel.c common.c m_watch.c opercmds.c querycmds.c s_err.c s_misc.c s_user.c whocmds.c Log Message: Sincronizacion u2.10.H.05.93 Index: channel.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/channel.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- channel.c 16 Sep 2002 16:22:01 -0000 1.5 +++ channel.c 30 Sep 2002 15:02:00 -0000 1.6 @@ -541,6 +541,7 @@ int can_send(aClient *cptr, aChannel *chptr) { Reg1 Link *lp; + int flag; if ((IsChannelService(cptr)) #if defined(BDD) @@ -551,13 +552,24 @@ lp = IsMember(cptr, chptr); - if ((!lp || !(lp->flags & (CHFL_CHANOP | CHFL_VOICE)) || - (lp->flags & CHFL_ZOMBIE)) && MyUser(cptr) && is_banned(cptr, chptr, lp)) - return (MODE_BAN); + flag = !lp || !(lp->flags & (CHFL_CHANOP | CHFL_VOICE)) + || (lp->flags & CHFL_ZOMBIE); - if (chptr->mode.mode & MODE_MODERATED && - (!lp || !(lp->flags & (CHFL_CHANOP | CHFL_VOICE)) || - (lp->flags & CHFL_ZOMBIE))) + if (flag && MyUser(cptr)) + { +#if defined(BDD) + if (MsgOnlyRegChannel(chptr) && !IsNickRegistered(cptr)) + { + return (MODE_MSGNONREG); + } +#endif + if (is_banned(cptr, chptr, lp)) + { + return (MODE_BAN); + } + } + + if (chptr->mode.mode & MODE_MODERATED && flag) return (MODE_MODERATED); if (!lp && ((chptr->mode.mode & MODE_NOPRIVMSGS) || @@ -596,6 +608,8 @@ *mbuf++ = 'A'; if (SecureOpChannel(chptr)) *mbuf++ = 'S'; + if (MsgOnlyRegChannel(chptr)) + *mbuf++ = 'M'; #endif /* BDD */ if (chptr->mode.limit) { @@ -1157,6 +1171,7 @@ #if defined(BDD) MODE_REGCHAN, 'r', MODE_REGNICKS, 'R', MODE_AUTOOP, 'A', MODE_SECUREOP, 'S', + MODE_MSGNONREG, 'M', #endif 0x0, 0x0 }; @@ -1378,26 +1393,29 @@ *cp = 0; if (opcnt >= MAXMODEPARAMS || **parv == ':' || **parv == '\0') break; - invalid_banmask = 0; - for (p = *parv; *p; p++) + } + if (whatt == MODE_ADD) + { + if (MyUser(sptr)) { - if ((*p != 33) && (*p != 42) && (*p != 45) && (*p != 46) && - !((*p > 62) && (*p < 127)) && !((*p > 47) && (*p < 59))) + invalid_banmask = 0; + for (p = *parv; *p; p++) { - sendto_one(cptr, err_str(ERR_INVALIDBANMASK), me.name, cptr->name, - chptr->chname, *parv); - invalid_banmask = 1; + if ((*p != 33) && (*p != 42) && (*p != 45) && (*p != 46) && + !((*p > 62) && (*p < 127)) && !((*p > 47) && (*p < 59))) + { + sendto_one(cptr, err_str(ERR_INVALIDBANMASK), me.name, + cptr->name, chptr->chname, *parv); + invalid_banmask = 1; + break; + } + } + if (invalid_banmask) + { + invalid_banmask = 0; break; } } - if (invalid_banmask) - { - invalid_banmask = 0; - break; - } - } - if (whatt == MODE_ADD) - { lp = &chops[opcnt++]; lp->value.cp = *parv; lp->flags = MODE_ADD | MODE_BAN; Index: common.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/common.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- common.c 11 Sep 2002 10:09:08 -0000 1.1.1.1 +++ common.c 30 Sep 2002 15:02:00 -0000 1.2 @@ -320,7 +320,7 @@ char NTL_tolower_tab[1 + CHAR_MAX - CHAR_MIN]; /* 256 bytes */ char NTL_toupper_tab[1 + CHAR_MAX - CHAR_MIN]; /* 256 bytes */ -int NTL_char_attrib[1 + CHAR_MAX - CHAR_MIN]; /* 256 ints = 0.5 to 2 kilobytes */ +unsigned int NTL_char_attrib[1 + CHAR_MAX - CHAR_MIN]; /* 256 ints = 0.5 to 2 kilobytes */ /* * makeTables() Index: m_watch.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/m_watch.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- m_watch.c 12 Sep 2002 19:19:00 -0000 1.3 +++ m_watch.c 30 Sep 2002 15:02:00 -0000 1.4 @@ -63,16 +63,16 @@ * * LISTA_WATCH * | - * |-wptr1-|- cptr1 - * | |- cptr2 - * | |- cptr3 + * |-wptr1-|- sptr1 + * | |- sptr2 + * | |- sptr3 * | - * |-wptr2-|- cptr2 - * |- cptr1 + * |-wptr2-|- sptr2 + * |- sptr1 * * LINKS en las listas aClient. * - * cptr1 cptr2 cptr3 + * sptr1 sptr2 sptr3 * |- wptr1(nickA) |-wptr1(nickA) |-wptr1(nickA) * |- wptr2(nickB) |-wptr2(nickB) * @@ -86,7 +86,7 @@ * * Avisa a los usuarios la entrada/salida de un nick. */ -void chequea_estado_watch(aClient *cptr, int raw, char *ip_override, +void chequea_estado_watch(aClient *sptr, int raw, char *ip_override, char *ip_override_SeeHidden) { Reg1 aWatch *wptr; @@ -99,13 +99,13 @@ ** Ocurre cuando el usuario no completa ** correctamente su entrada en el IRC */ - if (!IsUser(cptr)) + if (!IsUser(sptr)) return; assert((!ip_override && !ip_override_SeeHidden) || (ip_override && ip_override_SeeHidden)); - wptr = FindWatch(cptr->name); + wptr = FindWatch(sptr->name); if (!wptr) return; /* No esta en ningun notify */ @@ -113,21 +113,21 @@ #ifdef BDD_VIP if (!ip_override) { - if (cptr->user->virtualhost[0] == '\0') + if (sptr->user->virtualhost[0] == '\0') { - make_virtualhost(cptr, 0, 0); + make_virtualhost(sptr, 0, 0); } - if (!IsHidden(cptr)) + if (!IsHidden(sptr)) { /* Optimizacion para simplificar codigo mas abajo */ - ip_override = ip_override_SeeHidden = cptr->user->host; + ip_override = ip_override_SeeHidden = sptr->user->host; } } #endif wptr->lasttime = TStime(); - username = cptr->user->username; + username = sptr->user->username; /* * Mandamos el aviso a todos los usuarios @@ -140,7 +140,7 @@ { ip = ip_override; #if defined(BDD_VIP) - if (IsHiddenViewer(acptr) || (cptr == acptr)) + if (IsHiddenViewer(acptr) || (sptr == acptr)) { ip = ip_override_SeeHidden; } @@ -149,18 +149,18 @@ else { #if defined(BDD_VIP) - ip = cptr->user->virtualhost; - if (IsHiddenViewer(acptr) || (cptr == acptr)) + ip = sptr->user->virtualhost; + if (IsHiddenViewer(acptr) || (sptr == acptr)) { ip = cptr->user->host; } #else - ip = cptr->user->host; + ip = sptr->user->host; #endif } sendto_one(lp->value.cptr, watch_str(raw), me.name, lp->value.cptr->name, - cptr->name, username, ip, wptr->lasttime); + sptr->name, username, ip, wptr->lasttime); } } @@ -170,23 +170,23 @@ * * Muestra el estado de un usuario. */ -static void muestra_estado_watch(aClient *cptr, char *nick, int raw1, int raw2) +static void muestra_estado_watch(aClient *sptr, char *nick, int raw1, int raw2) { aClient *acptr; if ((acptr = FindClient(nick))) { - sendto_one(cptr, watch_str(raw1), me.name, cptr->name, + sendto_one(sptr, watch_str(raw1), me.name, sptr->name, acptr->name, acptr->user->username, #ifdef BDD_VIP - get_visiblehost(acptr, cptr), + get_visiblehost(acptr, sptr), #else acptr->user->host, #endif acptr->lastnick); } else - sendto_one(cptr, watch_str(raw2), me.name, cptr->name, nick, "*", "*", 0); + sendto_one(sptr, watch_str(raw2), me.name, sptr->name, nick, "*", "*", 0); } @@ -195,7 +195,7 @@ * * Agrega un nick a la lista de watch del usuario. */ -static int agrega_nick_watch(aClient *cptr, char *nick) +static int agrega_nick_watch(aClient *sptr, char *nick) { aWatch *wptr; Link *lp; @@ -216,7 +216,7 @@ */ if ((lp = wptr->watch)) { - while (lp && (lp->value.cptr != cptr)) + while (lp && (lp->value.cptr != sptr)) lp = lp->next; } @@ -226,12 +226,12 @@ if (!lp) { /* - * Link en lista watch al cptr + * Link en lista watch al sptr */ lp = wptr->watch; wptr->watch = make_link(); memset(wptr->watch, 0, sizeof(Link)); - wptr->watch->value.cptr = cptr; + wptr->watch->value.cptr = sptr; wptr->watch->next = lp; /* @@ -239,10 +239,10 @@ */ lp = make_link(); memset(lp, 0, sizeof(Link)); - lp->next = cptr->user->watch; + lp->next = sptr->user->watch; lp->value.wptr = wptr; - cptr->user->watch = lp; - cptr->user->cwatch++; + sptr->user->watch = lp; + sptr->user->cwatch++; } return 0; @@ -254,7 +254,7 @@ * * Borra un nick de la lista de watch de un usuario. */ -static int borra_nick_watch(aClient *cptr, char *nick) +static int borra_nick_watch(aClient *sptr, char *nick) { aWatch *wptr; Link *lp, *lptmp = NULL; @@ -268,7 +268,7 @@ */ if ((lp = wptr->watch)) { - while (lp && (lp->value.cptr != cptr)) + while (lp && (lp->value.cptr != sptr)) { lptmp = lp; lp = lp->next; @@ -289,7 +289,7 @@ * Buscamos en el link del usuario al watch */ lptmp = lp = NULL; - if ((lp = cptr->user->watch)) + if ((lp = sptr->user->watch)) { while (lp && (lp->value.wptr != wptr)) { @@ -303,7 +303,7 @@ else { if (!lptmp) - cptr->user->watch = lp->next; + sptr->user->watch = lp->next; else lptmp->next = lp->next; @@ -318,7 +318,7 @@ free_watch(wptr); /* Actualizamos contador de watch's del usuario */ - cptr->user->cwatch--; + sptr->user->cwatch--; return 0; @@ -331,12 +331,12 @@ * Borra toda la lista de watch de un usuario. * Al hacer un /WATCH C o porque sale del irc. */ -int borra_lista_watch(aClient *cptr) +int borra_lista_watch(aClient *sptr) { Link *lp, *lp2, *lptmp; aWatch *wptr; - if (!(lp = cptr->user->watch)) + if (!(lp = sptr->user->watch)) return 0; /* Tenia la lista vacia */ /* @@ -346,7 +346,7 @@ { wptr = lp->value.wptr; lptmp = NULL; - for (lp2 = wptr->watch; lp2 && (lp2->value.cptr != cptr); lp2 = lp2->next) + for (lp2 = wptr->watch; lp2 && (lp2->value.cptr != sptr); lp2 = lp2->next) lptmp = lp2; if (!lp2) /* No deberia ocurrir */ @@ -375,8 +375,8 @@ /* * Reseteamos valores watch del usuario */ - cptr->user->watch = NULL; - cptr->user->cwatch = 0; + sptr->user->watch = NULL; + sptr->user->cwatch = 0; return 0; } Index: opercmds.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/opercmds.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- opercmds.c 12 Sep 2002 19:19:00 -0000 1.2 +++ opercmds.c 30 Sep 2002 15:02:00 -0000 1.3 @@ -1366,10 +1366,7 @@ parv[3] = NULL; if ((i = hunt_server(IsServer(acptr), cptr, sptr, ":%s TRACE %s :%s", 2, parc, parv)) == HUNTED_NOSUCH) - { - sendto_one(sptr, err_str(ERR_NOSUCHSERVER), me.name, parv[0], parv[2]); return 0; - } } else i = HUNTED_ISME; Index: querycmds.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/querycmds.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- querycmds.c 11 Sep 2002 10:09:08 -0000 1.1.1.1 +++ querycmds.c 30 Sep 2002 15:02:00 -0000 1.2 @@ -282,8 +282,14 @@ sendto_one(sptr, rpl_str(RPL_LUSERCLIENT), me.name, parv[0], nrof.clients - nrof.inv_clients, nrof.inv_clients, nrof.servers); +#ifdef BDD + if ((nrof.opers) || (nrof.helpers) || (nrof.bots_oficiales)) + sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], nrof.opers, + nrof.helpers, nrof.bots_oficiales); +#else if (nrof.opers) sendto_one(sptr, rpl_str(RPL_LUSEROP), me.name, parv[0], nrof.opers); +#endif if (nrof.unknowns > 0) sendto_one(sptr, rpl_str(RPL_LUSERUNKNOWN), me.name, parv[0], nrof.unknowns); Index: s_err.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/s_err.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- s_err.c 11 Sep 2002 10:09:09 -0000 1.1.1.1 +++ s_err.c 30 Sep 2002 15:02:00 -0000 1.2 @@ -43,13 +43,15 @@ /* 003 */ {RPL_CREATED, ":This server was created %s"}, /* 004 */ -#if defined(BDD) && defined(BDD_VIP) - {RPL_MYINFO, "%s %s dioswkgxXrRhS biklmnopstvrR"}, -#elif defined(BDD) - {RPL_MYINFO, "%s %s dioswkgrhS biklmnopstvrR"}, +#if defined(BDD) +#if defined(BDD_VIP) + {RPL_MYINFO, "%s %s dioswkgxXrRhSB biklmnopstvrRM"}, +#else + {RPL_MYINFO, "%s %s dioswkgrhSB biklmnopstvrRM"}, +#endif /* BDD_VIP */ #else {RPL_MYINFO, "%s %s dioswkg biklmnopstv"}, -#endif +#endif /* BDD */ /* 005 */ {RPL_ISUPPORT, "%s :are supported by this server"}, /* 006 */ @@ -378,7 +380,7 @@ /* 315 */ {RPL_ENDOFWHO, "%s :End of /WHO list"}, /* 316 */ - {0, (char *)NULL}, + {RPL_WHOISBOT, "%s :es un roBOT oficial de la Red"}, /* 317 */ {RPL_WHOISIDLE, "%s %ld %ld :seconds idle, signon time"}, /* 318 */ @@ -430,7 +432,7 @@ /* 341 */ {RPL_INVITING, "%s %s"}, /* 342 */ - {0, (char *)NULL}, + {RPL_MSGONLYREG, "%s :Solo admite privados de usuarios registrados"}, /* 343 */ {0, (char *)NULL}, /* 344 */ @@ -670,7 +672,11 @@ /* 251 */ {RPL_LUSERCLIENT, ":There are %d users and %d invisible on %d servers"}, /* 252 */ +#ifdef BDD + {RPL_LUSEROP, "%d :IRCop(s), %d helper(s) and %d official bot(s) online"}, +#else {RPL_LUSEROP, "%d :operator(s) online"}, +#endif /* 253 */ {RPL_LUSERUNKNOWN, "%d :unknown connection(s)"}, /* 254 */ Index: s_misc.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/s_misc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- s_misc.c 16 Sep 2002 12:22:13 -0000 1.3 +++ s_misc.c 30 Sep 2002 15:02:00 -0000 1.4 @@ -586,8 +586,16 @@ if (IsInvisible(bcptr)) --nrof.inv_clients; + +#if defined(BDD) + if (IsHelpOp(bcptr)) + --nrof.helpers; + if (IsServicesBot(bcptr)) + --nrof.bots_oficiales; +#endif if (IsOper(bcptr)) --nrof.opers; + if (MyConnect(bcptr)) Count_clientdisconnects(bcptr, nrof); else Index: s_user.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/s_user.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- s_user.c 16 Sep 2002 14:07:32 -0000 1.6 +++ s_user.c 30 Sep 2002 15:02:00 -0000 1.7 @@ -618,6 +618,12 @@ ++nrof.inv_clients; if (IsOper(sptr)) ++nrof.opers; +#if defined(BDD) + if (IsHelpOp(sptr)) + ++nrof.helpers; + if (IsServicesBot(sptr)) + ++nrof.bots_oficiales; +#endif if (MyConnect(sptr)) { @@ -797,7 +803,7 @@ sprintf(buf, "CHANMODES=b,k,l,imnpst"); #if defined(BDD) - strcat(buf, "rR"); + strcat(buf, "rRM"); #endif sprintf(buf, "%s CHANTYPES=#&+ KICKLEN=%d MAXBANS=%d", buf, KICKLEN, MAXBANS); sendto_one(sptr, rpl_str(RPL_ISUPPORT), me.name, nick, buf); @@ -1749,7 +1755,11 @@ ClearNickRegistered(sptr); ClearNickSuspended(sptr); ClearMsgOnlyReg(sptr); - ClearHelpOp(sptr); + if (IsHelpOp(sptr)) + { + ClearHelpOp(sptr); + --nrof.helpers; + } #if defined (BDD_VIP) #if !defined(BDD_VIP2) if (MyConnect(sptr)) @@ -1913,7 +1923,10 @@ #endif #endif if (db_buscar_registro(BDD_OPERDB, nick) && !nick_suspendido) + { SetHelpOp(sptr); + ++nrof.helpers; + } else ClearHelpOp(sptr); } @@ -2173,8 +2186,8 @@ sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], nick); else sendto_one(sptr, - ":%s %d %s * :Target left IRC. Failed to deliver: [%.50s]", - me.name, ERR_NOSUCHNICK, sptr->name, parv[parc - 1]); + ":%s %d %s %s :Target left IRC. Failed to deliver: [%.50s]", + me.name, ERR_NOSUCHNICK, sptr->name, nick, parv[parc - 1]); continue; } /* @@ -2424,37 +2437,34 @@ if (MyUser(sptr)) parv[1] = canonize(parv[1]); - if (IsChannelName(parv[1])) + if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) { - if ((chptr = FindChannel(parv[1]))) + if (can_send(sptr, chptr) == 0) { - if (can_send(sptr, chptr) == 0) - { - if (MyUser(sptr) && (chptr->mode.mode & MODE_NOPRIVMSGS) && - check_target_limit(sptr, chptr, chptr->chname, 0)) - return 0; - /* Send to local clients: */ - sendto_lchanops_butone(cptr, sptr, chptr, - ":%s NOTICE @%s :%s", parv[0], parv[1], parv[parc - 1]); + if (MyUser(sptr) && (chptr->mode.mode & MODE_NOPRIVMSGS) && + check_target_limit(sptr, chptr, chptr->chname, 0)) + return 0; + /* Send to local clients: */ + sendto_lchanops_butone(cptr, sptr, chptr, + ":%s NOTICE @%s :%s", parv[0], parv[1], parv[parc - 1]); #ifdef NO_PROTOCOL9 - /* And to other servers: */ - sendto_chanopsserv_butone(cptr, sptr, chptr, - ":%s WC %s :%s", parv[0], parv[1], parv[parc - 1]); + /* And to other servers: */ + sendto_chanopsserv_butone(cptr, sptr, chptr, + ":%s WC %s :%s", parv[0], parv[1], parv[parc - 1]); #else - /* - * WARNING: `sendto_chanopsserv_butone' is heavily hacked when - * `NO_PROTOCOL9' is not defined ! Therefore this is the ONLY - * place you may use `sendto_chanopsserv_butone', until all - * servers are 2.10. - */ - sendto_chanopsserv_butone(cptr, sptr, chptr, - ":%s WC %s :%s", parv[0], parv[1], parv[parc - 1]); + /* + * WARNING: `sendto_chanopsserv_butone' is heavily hacked when + * `NO_PROTOCOL9' is not defined ! Therefore this is the ONLY + * place you may use `sendto_chanopsserv_butone', until all + * servers are 2.10. + */ + sendto_chanopsserv_butone(cptr, sptr, chptr, + ":%s WC %s :%s", parv[0], parv[1], parv[parc - 1]); #endif - } - else - sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), - me.name, parv[0], parv[1]); } + else + sendto_one(sptr, err_str(ERR_CANNOTSENDTOCHAN), + me.name, parv[0], parv[1]); } else sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], parv[1]); @@ -3697,10 +3707,22 @@ * Compare new flags with old flags and send string which * will cause servers to update correctly. */ + if ((setflags & FLAGS_OPER) && !IsOper(sptr)) --nrof.opers; if (!(setflags & FLAGS_OPER) && IsOper(sptr)) ++nrof.opers; +#if defined(BDD) + if ((sethmodes & HMODE_HELPOP) && !IsHelpOp(sptr)) + --nrof.helpers; + if (!(sethmodes & HMODE_HELPOP) && IsHelpOp(sptr)) + ++nrof.helpers; + if ((sethmodes & HMODE_SERVICESBOT) && !IsServicesBot(sptr)) + --nrof.bots_oficiales; + if (!(sethmodes & HMODE_SERVICESBOT) && IsServicesBot(sptr)) + ++nrof.bots_oficiales; +#endif + if ((setflags & FLAGS_INVISIBLE) && !IsInvisible(sptr)) --nrof.inv_clients; if (!(setflags & FLAGS_INVISIBLE) && IsInvisible(sptr)) Index: whocmds.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/whocmds.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- whocmds.c 14 Sep 2002 22:44:51 -0000 1.4 +++ whocmds.c 30 Sep 2002 15:02:00 -0000 1.5 @@ -310,7 +310,11 @@ *(p1++) = 'S'; if (IsMsgOnlyReg(acptr)) *(p1++) = 'R'; + if (IsServicesBot(acptr)) + *(p1++) = 'B'; #endif + if (IsChannelService(acptr)) + *(p1++) = 'k'; #if defined(BDD) if (IsAnOper(sptr) || IsHelpOp(sptr)) @@ -957,6 +961,9 @@ if (IsNickRegistered(acptr)) sendto_one(sptr, rpl_str(RPL_WHOISREGNICK), me.name, parv[0], name); + if (IsServicesBot(acptr)) + sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name); + if (IsNickSuspended(acptr)) sendto_one(sptr, rpl_str(RPL_WHOISSUSPNICK), me.name, parv[0], name); @@ -974,6 +981,11 @@ if (IsAnOper(acptr)) sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), me.name, parv[0], name); + +#if defined(BDD) + if (IsMsgOnlyReg(acptr)) + sendto_one(sptr, rpl_str(RPL_MSGONLYREG), me.name, parv[0], name); +#endif if (MyConnect(acptr)) sendto_one(sptr, rpl_str(RPL_WHOISIDLE), me.name, |
From: Zolty <zo...@us...> - 2002-09-30 15:02:03
|
Update of /cvsroot/irc-dev/ipv6/include In directory usw-pr-cvs1:/tmp/cvs-serv3940/include Modified Files: channel.h numeric.h patchlevel.h querycmds.h s_bsd.h Log Message: Sincronizacion u2.10.H.05.93 Index: channel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/channel.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- channel.h 12 Sep 2002 19:18:59 -0000 1.2 +++ channel.h 30 Sep 2002 15:02:00 -0000 1.3 @@ -86,11 +86,13 @@ #define MODE_REGNICKS 0x040000 #define MODE_AUTOOP 0x080000 #define MODE_SECUREOP 0x100000 +#define MODE_MSGNONREG 0x0200000 #define RegisteredChannel(x) ((x) && ((x)->mode.mode & MODE_REGCHAN)) #define RestrictedChannel(x) ((x) && ((x)->mode.mode & MODE_REGNICKS)) #define AutoOpChannel(x) ((x) && ((x)->mode.mode & MODE_AUTOOP)) #define SecureOpChannel(x) ((x) && ((x)->mode.mode & MODE_SECUREOP)) +#define MsgOnlyRegChannel(x) ((x) && ((x)->mode.mode & MODE_MSGNONREG)) extern int m_botmode(aClient *cptr, aClient *sptr, int parc, char *parv[]); Index: numeric.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/numeric.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- numeric.h 12 Sep 2002 19:18:59 -0000 1.2 +++ numeric.h 30 Sep 2002 15:02:00 -0000 1.3 @@ -47,7 +47,7 @@ #define RPL_MAP 15 /* Undernet extension */ #define RPL_MAPMORE 16 /* Undernet extension */ #define RPL_MAPEND 17 /* Undernet extension */ -/* RPL_YOURID 42 IRCnet extension */ +/* RPL_YOURID 42 IRCnet extension */ /* RPL_ATTEMPTINGJUNC 50 IRCnet extension */ /* RPL_ATTEMPTINGREROUTE 51 IRCnet extension */ @@ -92,7 +92,7 @@ #define ERR_NICKREGISTERED ERR_NICKNAMEINUSE #endif /* ERR_SERVICENAMEINUSE 434 ? */ -/* ERR_NORULES 434 Unreal */ +/* ERR_NORULES 434 Unreal */ /* ERR_SERVICECONFUSED 435 ? */ /* ERR_BANONCHAN 435 Dalnet */ #define ERR_NICKCOLLISION 436 @@ -108,15 +108,15 @@ /* ERR_NOLOGIN 444 removed from RFC1459 */ /* ERR_SUMMONDISABLED 445 removed from RFC1459 */ /* ERR_USERSDISABLED 446 removed from RFC1459 */ -/* ERR_NONICKCHANGE 447 Unreal */ +/* ERR_NONICKCHANGE 447 Unreal */ #define ERR_NOTREGISTERED 451 /* ERR_IDCOLLISION 452 IRCnet extension */ /* ERR_NICKLOST 453 IRCnet extension */ -/* ERR_HOSTILENAME 455 Unreal */ +/* ERR_HOSTILENAME 455 Unreal */ -/* ERR_NOHIDING 459 Unreal */ +/* ERR_NOHIDING 459 Unreal */ /* ERR_NOTFORHALFOPS 460 Unreal */ #define ERR_NEEDMOREPARAMS 461 #define ERR_ALREADYREGISTRED 462 @@ -127,8 +127,8 @@ #define ERR_KEYSET 467 /* Undernet extension */ #define ERR_INVALIDUSERNAME 468 /* Undernet extension */ /* ERR_ONLYSERVERSCANCHANGE 468 Dalnet extension */ -/* ERR_LINKSET 469 Dalnet extension */ -/* ERR_LINKCHANNEL 470 Unreal */ +/* ERR_LINKSET 469 Dalnet extension */ +/* ERR_LINKCHANNEL 470 Unreal */ /* ERR_KICKEDFROMCHAN 470 Aircd */ #define ERR_CHANNELISFULL 471 #define ERR_UNKNOWNMODE 472 @@ -139,17 +139,17 @@ #define ERR_NEEDREGGEDNICK 477 /* DalNet & Undernet Extention */ #define ERR_BANLISTFULL 478 /* Undernet extension */ #define ERR_BADCHANNAME 479 /* EFNet extension */ - /* 479 Undernet extension badchan */ -/* ERR_LINKFAIL 479 Unreal */ -/* ERR_CANNOTKNOCK 480 Unreal */ -/* ERR_NOULINE 480 Austnet */ + /* 479 Undernet extension badchan */ +/* ERR_LINKFAIL 479 Unreal */ +/* ERR_CANNOTKNOCK 480 Unreal */ +/* ERR_NOULINE 480 Austnet */ #define ERR_NOPRIVILEGES 481 #define ERR_CHANOPRIVSNEEDED 482 #define ERR_CANTKILLSERVER 483 #define ERR_ISCHANSERVICE 484 /* Undernet extension */ -/* ERR_DESYNC 484 Dalnet extension */ -/* ERR_ATTACKDENY 484 Unreal */ -/* ERR_RESTRICTED 484 IRCnet extension */ +/* ERR_DESYNC 484 Dalnet extension */ +/* ERR_ATTACKDENY 484 Unreal */ +/* ERR_RESTRICTED 484 IRCnet extension */ /* ERR_UNIQOPRIVSNEEDED 485 IRCnet extension */ /* ERR_KILLDENY 485 Unreal */ /* ERR_CANTKICKADMIN 485 PTlink */ @@ -167,17 +167,17 @@ /* ERR_NOFEATURE 493 Undernet extension */ #define ERR_NOOPERCLASS 493 /* Hispano extension */ /* ERR_BADFEATVALUE 494 Undernet extension */ -/* ERR_BADLOGTYPE 495 Undernet extension */ -/* ERR_BADLOGSYS 496 Undernet extension */ -/* ERR_BADLOGVALUE 497 Undernet extension */ +/* ERR_BADLOGTYPE 495 Undernet extension */ +/* ERR_BADLOGSYS 496 Undernet extension */ +/* ERR_BADLOGVALUE 497 Undernet extension */ #define ERR_ISOPERLCHAN 498 /* Undernet extension */ #define ERR_UMODEUNKNOWNFLAG 501 #define ERR_USERSDONTMATCH 502 /* ERR_GHOSTEDCLIENT 503 EFNet extension */ -/* ERR_VWORLDWARN 503 Austnet */ +/* ERR_VWORLDWARN 503 Austnet */ -#define ERR_SILECANTBESHOWN 409 /* Hispano extension */ +#define ERR_SILECANTBESHOWN 509 /* Hispano extension */ #define ERR_ISSILENCING 510 /* Hispano extension */ #define ERR_SILELISTFULL 511 /* Undernet extension */ /* ERR_NOSUCHGLINE 512 Undernet extension */ @@ -186,41 +186,41 @@ #endif /* WATCH */ /* ERR_NOTIFYFULL 512 Aircd */ #define ERR_BADPING 513 /* Undernet extension */ -/* ERR_NEEDPONG 513 Dalnet extension */ +/* ERR_NEEDPONG 513 Dalnet extension */ /* ERR_NOSUCHJUPE 514 Undernet extension */ #define ERR_NOSUCHGLINE 514 /* Hispano extension */ -/* ERR_TOOMANYDCC 514 Dalnet extension */ +/* ERR_TOOMANYDCC 514 Dalnet extension */ /* ERR_BADEXPIRE 515 Undernet extension */ -/* ERR_DONTCHEAT 516 Undernet extension */ -/* ERR_DISABLED 517 Undernet extension */ -/* ERR_LONGMASK 518 Undernet extension */ -/* ERR_NOINVITE 518 Unreal */ +/* ERR_DONTCHEAT 516 Undernet extension */ +/* ERR_DISABLED 517 Undernet extension */ +/* ERR_LONGMASK 518 Undernet extension */ +/* ERR_NOINVITE 518 Unreal */ /* ERR_TOOMANYUSERS 519 Undernet extension */ -/* ERR_ADMONLY 519 Unreal */ -/* ERR_MASKTOOWIDE 520 Undernet extension */ -/* ERR_OPERONLY 520 Unreal */ -/* ERR_WHOTRUNC 520 Austnet */ +/* ERR_ADMONLY 519 Unreal */ +/* ERR_MASKTOOWIDE 520 Undernet extension */ +/* ERR_OPERONLY 520 Unreal */ +/* ERR_WHOTRUNC 520 Austnet */ /* ERR_LISTSYNTAX 521 Dalnet extension */ -/* ERR_WHOSYNTAX 522 Dalnet extension */ -/* ERR_WHOLIMEXCEED 523 Dalnet extension */ +/* ERR_WHOSYNTAX 522 Dalnet extension */ +/* ERR_WHOLIMEXCEED 523 Dalnet extension */ /* ERR_NOTLOWEROPLEVEL 550 Undernet extension */ /* ERR_NOTMANAGER 551 Undernet extension */ /* ERR_CHANSECURED 552 Undernet extension */ /* ERR_UPASSSET 553 Undernet extension */ /* ERR_UPASSNOTSET 554 Undernet extension */ -/* ERR_LASTERROR 555 Undernet extension */ +/* ERR_LASTERROR 555 Undernet extension */ /* * Numberic replies from server commands. * These are currently in the range 200-399. */ -#define RPL_NONE 300 /* Unused */ +#define RPL_NONE 300 /* Unused */ #define RPL_AWAY 301 #define RPL_USERHOST 302 #define RPL_ISON 303 -#define RPL_TEXT 304 /* Unused */ +#define RPL_TEXT 304 /* Unused */ #define RPL_UNAWAY 305 #define RPL_NOWAWAY 306 /* RPL_NOTAWAY 306 Aircd */ @@ -228,17 +228,17 @@ #if defined(BDD) #define RPL_WHOISREGNICK 307 /* Hispano extension */ /* RPL_WHOISREGNICK 307 Dalnet extension */ -/* RPL_SUSERHOST 307 Austnet */ -/* RPL_WHOISADMIN 308 Dalnet extension */ +/* RPL_SUSERHOST 307 Austnet */ +/* RPL_WHOISADMIN 308 Dalnet extension */ /* RPL_NOTIFYACTION 308 Aircd */ -/* RPL_RULESSTART 308 Unreal */ -/* RPL_WHOISSADMIN 309 Dalnet extension */ +/* RPL_RULESSTART 308 Unreal */ +/* RPL_WHOISSADMIN 309 Dalnet extension */ /* RPL_NICKTRACE 309 Aircd */ -/* RPL_ENDOFRULES 309 Unreal */ -/* RPL_WHOISHELPER 309 Austnet */ +/* RPL_ENDOFRULES 309 Unreal */ +/* RPL_WHOISHELPER 309 Austnet */ #define RPL_WHOISHELPOP 310 /* Hispano extension */ /* RPL_WHOISSVCMSG 310 Dalnet extension */ -/* RPL_WHOISHELPOP 310 Unreal */ +/* RPL_WHOISHELPOP 310 Unreal */ /* RPL_WHOISSERVICE 310 Austnet */ #endif #define RPL_WHOISUSER 311 /* See also RPL_ENDOFWHOIS */ @@ -247,6 +247,7 @@ #define RPL_WHOWASUSER 314 /* See also RPL_ENDOFWHOWAS */ #define RPL_ENDOFWHO 315 /* See RPL_WHOREPLY/RPL_WHOSPCRPL */ /* RPL_WHOISCHANOP 316 removed from RFC1459 */ +#define RPL_WHOISBOT 316 /* Hispano extension */ #define RPL_WHOISIDLE 317 #define RPL_ENDOFWHOIS 318 /* See RPL_WHOISUSER/RPL_WHOISSERVER/ RPL_WHOISOPERATOR/RPL_WHOISIDLE */ @@ -274,6 +275,7 @@ #define RPL_USERIP 340 /* Undernet extension */ #define RPL_INVITING 341 /* RPL_SUMMONING 342 removed from RFC1459 */ +#define RPL_MSGONLYREG 342 /* Hispano extension */ /* RPL_INVITELIST 346 IRCnet & Undernet extension */ /* RPL_ENDOFINVITELIST 347 IRCnet & Undernet extension */ @@ -286,7 +288,7 @@ #define RPL_WHOSPCRPL 354 /* Undernet extension, See also RPL_ENDOFWHO */ -#define RPL_KILLDONE 361 /* Unused */ +#define RPL_KILLDONE 361 /* Unused */ #define RPL_CLOSING 362 #define RPL_CLOSEEND 363 #define RPL_LINKS 364 @@ -298,12 +300,12 @@ #define RPL_INFO 371 #define RPL_MOTD 372 -#define RPL_INFOSTART 373 /* Unused */ +#define RPL_INFOSTART 373 /* Unused */ #define RPL_ENDOFINFO 374 #define RPL_MOTDSTART 375 #define RPL_ENDOFMOTD 376 /* RPL_KICKEXPIRED 377 Aircd */ -/* RPL_SPAM 377 Austnet */ +/* RPL_SPAM 377 Austnet */ #if defined(BDD) #define RPL_WHOISHOST 378 /* Hispano extension */ /* RPL_BANEXPIRED 378 Aircd */ @@ -313,13 +315,13 @@ /* RPL_BANLINKED 380 Aircd */ #define RPL_YOUREOPER 381 #define RPL_REHASHING 382 -/* RPL_YOURSERVICE 383 Various */ -#define RPL_MYPORTIS 384 /* Unused */ +/* RPL_YOURSERVICE 383 Various */ +#define RPL_MYPORTIS 384 /* Unused */ #define RPL_NOTOPERANYMORE 385 /* Extension to RFC1459, not used */ -/* RPL_QLIST 386 Unreal */ -/* RPL_ENDOFQLIST 387 Unreal */ -/* RPL_ALIST 388 Unreal */ -/* RPL_ENDOFALIST 389 Unreal */ +/* RPL_QLIST 386 Unreal */ +/* RPL_ENDOFQLIST 387 Unreal */ +/* RPL_ALIST 388 Unreal */ +/* RPL_ENDOFALIST 389 Unreal */ #if defined(BDD) #define RPL_WHOISSUSPNICK 390 /* Hispano extension */ #endif @@ -345,8 +347,8 @@ #define RPL_STATSLINKINFO 211 #define RPL_STATSCOMMANDS 212 #define RPL_STATSCLINE 213 -#define RPL_STATSNLINE 214 /* Unused */ -/* RPL_STATSOLDNLINE 214 Unreal */ +#define RPL_STATSNLINE 214 /* Unused */ +/* RPL_STATSOLDNLINE 214 Unreal */ #define RPL_STATSILINE 215 #define RPL_STATSKLINE 216 #define RPL_STATSPLINE 217 /* Undernet extenstion */ @@ -356,48 +358,48 @@ /* RPL_STATSPLINE 220 EFNet - Because 217 was for old Q: lines */ /* RPL_STATSBLINE 220 Dalnet extension */ #define RPL_UMODEIS 221 -/* RPL_SQLINE_NICK 222 Dalnet extension */ -/* RPL_STATSELINE 223 Dalnet extension */ -/* RPL_STATSGLINE 223 Unreal */ -#define RPL_STATSELINE 223 /* EFNet extension. ELINES */ +/* RPL_SQLINE_NICK 222 Dalnet extension */ +/* RPL_STATSELINE 223 Dalnet extension */ +/* RPL_STATSGLINE 223 Unreal */ +#define RPL_STATSELINE 223 /* EFNet extension. ELINES */ /* RPL_STATSFLINE 224 Dalnet & EFNet extension */ -/* RPL_STATSTLINE 224 Unreal */ +/* RPL_STATSTLINE 224 Unreal */ /* RPL_STATSDLINE 225 EFNet extension */ -/* RPL_STATSZLINE 225 Dalnet extension */ -/* RPL_STATSELINE 225 Unreal */ -/* RPL_STATSCOUNT 226 Dalnet extension */ -/* RPL_STATSNLINE 226 Unreal */ -/* RPL_STATSGLINE 227 Dalnet extension */ -/* RPL_STATSVLINE 227 Unreal */ +/* RPL_STATSZLINE 225 Dalnet extension */ +/* RPL_STATSELINE 225 Unreal */ +/* RPL_STATSCOUNT 226 Dalnet extension */ +/* RPL_STATSNLINE 226 Unreal */ +/* RPL_STATSGLINE 227 Dalnet extension */ +/* RPL_STATSVLINE 227 Unreal */ -#define RPL_SERVICEINFO 231 /* Unused */ +#define RPL_SERVICEINFO 231 /* Unused */ #define RPL_ENDOFSERVICES 232 /* Unused */ -/* RPL_RULES 232 Unreal */ -#define RPL_SERVICE 233 /* Unused */ -#define RPL_SERVLIST 234 /* Unused */ -#define RPL_SERVLISTEND 235 /* Unused */ +/* RPL_RULES 232 Unreal */ +#define RPL_SERVICE 233 /* Unused */ +#define RPL_SERVLIST 234 /* Unused */ +#define RPL_SERVLISTEND 235 /* Unused */ /* RPL_STATSVERBOSE 236 Undernet extension */ /* RPL_STATSENGINE 237 Undernet extension */ /* RPL_STATSFLINE 238 Undernet extension */ /* RPL_STATSIAUTH 239 IRCnet extension */ /* RPL_STATSVLINE 240 IRCnet extension */ -/* RPL_STATSXLINE 240 Austnet */ +/* RPL_STATSXLINE 240 Austnet */ #define RPL_STATSLLINE 241 #define RPL_STATSUPTIME 242 #define RPL_STATSOLINE 243 #define RPL_STATSHLINE 244 /* RPL_STATSSLINE 245 Reserved / Dalnet, EFNet, IRCnet*/ #define RPL_STATSTLINE 246 /* Undernet extension */ -/* RPL_STATSULINE 246 Dalnet extension */ -/* RPL_STATSSPING 246 IRCnet extension */ +/* RPL_STATSULINE 246 Dalnet extension */ +/* RPL_STATSSPING 246 IRCnet extension */ #define RPL_STATSGLINE 247 /* Undernet extension */ -/* RPL_STATSBLINE 247 IRCnet extension */ +/* RPL_STATSBLINE 247 IRCnet extension */ /* RPL_STATSXLINE 247 EFNet extension */ #define RPL_STATSULINE 248 /* Undernet extension */ -/* RPL_STATSDEFINE 248 IRCnet extension */ +/* RPL_STATSDEFINE 248 IRCnet extension */ #define RPL_STATSDEBUG 249 /* Extension to RFC1459 */ #define RPL_STATSCONN 250 /* Undernet extension */ -/* RPL_STATSDLINE 250 IRCnet extension */ +/* RPL_STATSDLINE 250 IRCnet extension */ #define RPL_LUSERCLIENT 251 #define RPL_LUSEROP 252 @@ -409,12 +411,12 @@ #define RPL_ADMINLOC2 258 #define RPL_ADMINEMAIL 259 -#define RPL_TRACELOG 261 /* Unused */ +#define RPL_TRACELOG 261 /* Unused */ #define RPL_TRACEPING 262 /* Extension to RFC1459 */ -/* RPL_TRACEEND 262 EFNet & IRCnet extension */ +/* RPL_TRACEEND 262 EFNet & IRCnet extension */ /* RPL_LOAD_THROTTLED 263 EFNet extension */ -/* RPL_TRYAGAIN 263 IRCnet extension */ -/* RPL_LOAD2HI 263 Dalnet extension */ +/* RPL_TRYAGAIN 263 IRCnet extension */ +/* RPL_LOAD2HI 263 Dalnet extension */ #define RPL_LOCALUSERS 265 /* Dal.Net: localusers - Hispano extension */ /* RPL_CURRENT_LOCAL 265 Dalnet & EFNet extension */ @@ -435,7 +437,7 @@ #define RPL_ENDOFGLIST 281 /* Undernet extension */ /* RPL_JUPELIST 282 Undernet extension */ /* RPL_ENDOFJUPELIST 283 Undernet extension */ -/* RPL_FEATURE 284 Undernet extension */ +/* RPL_FEATURE 284 Undernet extension */ /* RPL_CHANINFO_HANDLE 285 Aircd */ /* RPL_CHANINFO_USERS 286 Aircd */ /* RPL_CHANINFO_CHOPS 287 Aircd */ Index: patchlevel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/patchlevel.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- patchlevel.h 16 Sep 2002 16:22:00 -0000 1.11 +++ patchlevel.h 30 Sep 2002 15:02:00 -0000 1.12 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.10" + "+INET6.11" /* * Deliberate empty lines Index: querycmds.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/querycmds.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- querycmds.h 11 Sep 2002 10:09:08 -0000 1.1.1.1 +++ querycmds.h 30 Sep 2002 15:02:00 -0000 1.2 @@ -18,6 +18,11 @@ unsigned int opers; /* IsUser() && IsOper() */ /* Misc: */ unsigned int channels; +#if defined(BDD) + unsigned int helpers; /* IsHelpOp() */ + unsigned int bots_oficiales; /* IsServicesBot() */ +#endif + }; /*============================================================================= Index: s_bsd.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/s_bsd.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- s_bsd.h 12 Sep 2002 19:18:59 -0000 1.4 +++ s_bsd.h 30 Sep 2002 15:02:00 -0000 1.5 @@ -40,6 +40,8 @@ #define FLAGS_DEBUG 0x20000000 /* send global debug/anti-hack info */ #define FLAGS_IPCHECK 0x40000000 /* Added or updated IPregistry data */ +#define MODE_ISWATCH 0x80000000 /* Se enviara WATCH para este nick */ + #define SEND_UMODES \ (FLAGS_INVISIBLE|FLAGS_OPER|FLAGS_WALLOP|FLAGS_DEAF|FLAGS_CHSERV|FLAGS_DEBUG) @@ -70,6 +72,8 @@ #define IsBurstOrBurstAck(x) ((x)->flags & (FLAGS_BURST|FLAGS_BURST_ACK)) #define IsIPChecked(x) ((x)->flags & FLAGS_IPCHECK) +#define IsWatch(x) ((x)->flags & MODE_ISWATCH) + #define SetOper(x) ((x)->flags |= FLAGS_OPER) #define SetLocOp(x) ((x)->flags |= FLAGS_LOCOP) #define SetInvisible(x) ((x)->flags |= FLAGS_INVISIBLE) @@ -89,6 +93,8 @@ #define SetBurstAck(x) ((x)->flags |= FLAGS_BURST_ACK) #define SetIPChecked(x) ((x)->flags |= FLAGS_IPCHECK) +#define SetWatch(x) ((x)->flags |= MODE_ISWATCH) + #define ClearOper(x) ((x)->flags &= ~FLAGS_OPER) #define ClearLocOp(x) ((x)->flags &= ~FLAGS_LOCOP) #define ClearInvisible(x) ((x)->flags &= ~FLAGS_INVISIBLE) @@ -102,6 +108,8 @@ #define ClearBurst(x) ((x)->flags &= ~FLAGS_BURST) #define ClearBurstAck(x) ((x)->flags &= ~FLAGS_BURST_ACK) +#define ClearWatch(x) ((x)->flags &= ~MODE_ISWATCH) + /* used for async dns values */ #define ASYNC_NONE 0 @@ -204,7 +212,6 @@ #define HMODE_HIDDENVIEWER 0x00000080 /* Ip Oculta */ #define HMODE_NICKSUSPENDED 0x00000100 /* Nick Suspendido */ #define HMODE_MSGONLYREG 0x00000200 /* Solo recibir mensajes de usuarios con +r */ -#define HMODE_ISWATCH 0x00000800 /* Se enviara WATCH para este nick */ /* Modos hispano a propagar */ #define SEND_HMODES \ @@ -225,7 +232,6 @@ #define IsHiddenViewer(x) ((x)->hmodes & HMODE_HIDDENVIEWER) #define IsNickSuspended(x) ((x)->hmodes & HMODE_NICKSUSPENDED) #define IsMsgOnlyReg(x) ((x)->hmodes & HMODE_MSGONLYREG) -#define IsWatch(x) ((x)->hmodes & HMODE_ISWATCH) /* Macros para poner modos hispano */ #define SetNickRegistered(x) ((x)->hmodes |= HMODE_NICKREGISTERED) @@ -237,20 +243,19 @@ #define SetHiddenViewer(x) ((x)->hmodes |= HMODE_HIDDENVIEWER) #define SetNickSuspended(x) ((x)->hmodes |= HMODE_NICKSUSPENDED) #define SetMsgOnlyReg(x) ((x)->hmodes |= HMODE_MSGONLYREG) -#define SetWatch(x) ((x)->hmodes |= HMODE_ISWATCH) /* Macros para borrar modos hispano */ #define ClearNickRegistered(x) ((x)->hmodes &= ~HMODE_NICKREGISTERED) -#define ClearSocks(x) ((x)->hmodes &= ~HMODE_SOCKS) -#define ClearWrSocks(x) ((x)->hmodes &= ~HMODE_WRSOCKS) #define ClearHelpOp(x) ((x)->hmodes &= ~HMODE_HELPOP) -#define ClearServicesBot(x) ((x)->hmodes &= ~HMODE_SERVICESBOT) -#define ClearHidden(x) ((x)->hmodes &= ~HMODE_HIDDEN) -#define ClearHiddenViewer(x) ((x)->hmodes &= ~HMODE_HIDDENVIEWER) #define ClearNickSuspended(x) ((x)->hmodes &= ~HMODE_NICKSUSPENDED) #define ClearMsgOnlyReg(x) ((x)->hmodes &= ~HMODE_MSGONLYREG) -#define ClearWatch(x) ((x)->hmodes &= ~HMODE_ISWATCH) #endif /* BDD */ + +#define ClearSocks(x) ((x)->hmodes &= ~HMODE_SOCKS) +#define ClearWrSocks(x) ((x)->hmodes &= ~HMODE_WRSOCKS) +#define ClearServicesBot(x) ((x)->hmodes &= ~HMODE_SERVICESBOT) +#define ClearHidden(x) ((x)->hmodes &= ~HMODE_HIDDEN) +#define ClearHiddenViewer(x) ((x)->hmodes &= ~HMODE_HIDDENVIEWER) #endif /* S_BSD_H */ |
From: Zolty <zo...@us...> - 2002-09-30 15:02:03
|
Update of /cvsroot/irc-dev/ipv6 In directory usw-pr-cvs1:/tmp/cvs-serv3940 Modified Files: .patches CAMBIOS.Ipv6 CAMBIOS2_10_H_05 Makefile.in todo.jcea Log Message: Sincronizacion u2.10.H.05.93 Index: .patches =================================================================== RCS file: /cvsroot/irc-dev/ipv6/.patches,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- .patches 11 Sep 2002 10:09:07 -0000 1.1.1.1 +++ .patches 30 Sep 2002 15:01:59 -0000 1.2 @@ -1 +1 @@ -u2.10.H.05.69 +u2.10.H.05.93 Index: CAMBIOS.Ipv6 =================================================================== RCS file: /cvsroot/irc-dev/ipv6/CAMBIOS.Ipv6,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- CAMBIOS.Ipv6 16 Sep 2002 16:22:00 -0000 1.10 +++ CAMBIOS.Ipv6 30 Sep 2002 15:01:59 -0000 1.11 @@ -1,3 +1,7 @@ +* 2002/09/30 zo...@ir... INET6.11 +----------------------------------------------------------------------- +Actualizacion IRCD hasta el u2.10.H.05.93. + * 2002/09/16 ni...@ir... INET6.10 ----------------------------------------------------------------------- Se adaptan el pretty_mask y el codigo de chequeo de banspara que admita Index: CAMBIOS2_10_H_05 =================================================================== RCS file: /cvsroot/irc-dev/ipv6/CAMBIOS2_10_H_05,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- CAMBIOS2_10_H_05 11 Sep 2002 10:09:07 -0000 1.1.1.1 +++ CAMBIOS2_10_H_05 30 Sep 2002 15:01:59 -0000 1.2 @@ -1,5 +1,114 @@ $Id$ +* 2002/09/30 ni...@ir... (u2.10.H.05.93) FIX + ----------------------------------------------------------------------- + Bug en el parche anterior que hacia que no se propagasen los ban. + +* 2002/09/27 ni...@ir... (u2.10.H.05.92) FIX + ----------------------------------------------------------------------- + Permitimos quitar banes con cualquier caracter, y para ponerlos solo + sirven los que el parche u2.10.H.05.34 admite. + +* 2002/09/27 jc...@ar... (u2.10.H.05.91) FIX + ----------------------------------------------------------------------- + Revertimos el parche u2.10.H.05.77, por violar el RFC 1459. + +* 2002/09/27 ni...@ir... (u2.10.H.05.90) FIX + ----------------------------------------------------------------------- + En un /trace pepe pepe.* se imprimia dos veces "No such server". + +* 2002/09/27 ni...@ir... (u2.10.H.05.89) FIX + ----------------------------------------------------------------------- + Consistencia en el WATCH: cptr -> sptr. + +* 2002/09/27 ni...@ir... (u2.10.H.05.88) FIX + ----------------------------------------------------------------------- + Cuando enviamos un WALLCHOPS a un canal inexistente, se muestra error. + +* 2002/09/24 ni...@ir... (u2.10.H.05.87) FIX + ----------------------------------------------------------------------- + Correccion en un numeric. + +* 2002/07/23 jc...@ar... (u2.10.H.05.86) CLEANUP + ----------------------------------------------------------------------- + Simplificacion del parche anterior. + +* 2002/07/23 ni...@ir... (u2.10.H.05.85) FIX + ----------------------------------------------------------------------- + El +M aparece en los raws 004 y 005. + +* 2002/09/23 jc...@ar... (u2.10.H.05.84) CLEANUP + ----------------------------------------------------------------------- + Mas limpieza y simplificacion en "can_send". + +* 2002/09/23 jc...@ar... (u2.10.H.05.83) CLEANUP + ----------------------------------------------------------------------- + Simplificacion y optimizacion del parche anterior. + +* 2002/09/23 ni...@ir... (u2.10.H.05.82) FEATURE + ----------------------------------------------------------------------- + Nuevo modo de canal: +M. Impide enviar texto al canal y especificar + texto en los PART y QUIT a nicks que no sean +r. + +* 2002/09/23 jc...@ar... (u2.10.H.05.81) FIX + ----------------------------------------------------------------------- + Compilacion correcta si se configura sin soporte BDD. + +* 2002/09/23 ni...@ir... (u2.10.H.05.80) FEATURE + ----------------------------------------------------------------------- + Nuevo numeric en el WHOIS para el modo +R. Mostramos "Solo admite + privados de nicks registrados", y usamos el 342 para ello. + +* 2002/07/19 ni...@ir... (u2.10.H.05.79) FIX + ----------------------------------------------------------------------- + Solucionamos un pequeño error que impedia recompilar las tablas de + caracteres de common.c con 'make ctables'. + +* 2002/07/19 ni...@ir... (u2.10.H.05.78) FIX + ----------------------------------------------------------------------- + En el WHO mostramos el +k si procede. + +* 2002/07/19 ni...@ir... (u2.10.H.05.77) FIX + ----------------------------------------------------------------------- + En la respuesta RPL_LUSERCLIENT en vez de mostrar el numero de usuarios + sin +i y con +i, mostramos el total y los que son +i. + +* 2002/07/18 ni...@ir... (u2.10.H.05.76) FEATURE + ----------------------------------------------------------------------- + En el raw 004, mostramos el +B como modo de usuario. + +* 2002/07/18 ni...@ir... (u2.10.H.05.75) FEATURE + ----------------------------------------------------------------------- + En el WHO, mostramos el +B si procede. + +* 2002/07/18 ni...@ir... (u2.10.H.05.74) FEATURE + ----------------------------------------------------------------------- + En la respuesta a LUSERS, si hemos compilado el ircd con soporte BDD + se muestran, aparte de los IRCops, los Opers y bots de la red: + + There are 27 users and 14 invisible on 1 servers + 4 IRCop(s), 7 helper(s) and 2 official bots online + I have 4 clients and 3 servers + +* 2002/09/17 ni...@ir... (u2.10.H.05.73) FEATURE + ----------------------------------------------------------------------- + Nuevo numeric en el WHOIS para los bots. Si el bot tiene +B mostramos + "Es un roBOT oficial de la Red". Usamos el 316 para ello. + +* 2002/09/17 ni...@ir... (u2.10.H.05.72) FIX + ----------------------------------------------------------------------- + Correccion en un numeric. + +* 2002/09/12 red...@ya... (u2.10.H.05.71) FIX + ----------------------------------------------------------------------- + Cuando un usuario abandona el IRC teniendo mensajes en "transito" hacia + el circulando por la red, el mensaje de "Target left IRC" indica + correctamente el nick en cuestion. + +* 2002/09/11 jc...@ar... (u2.10.H.05.70) FIX + ----------------------------------------------------------------------- + Permitir compilar el IRCD con soporte de WATCH pero sin soporte +x. + * 2002/09/10 jc...@ar... (u2.10.H.05.69) FIX ----------------------------------------------------------------------- No permite que un usuario cambie de nick varias veces *ANTES* de que el Index: Makefile.in =================================================================== RCS file: /cvsroot/irc-dev/ipv6/Makefile.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile.in 16 Sep 2002 12:22:13 -0000 1.3 +++ Makefile.in 30 Sep 2002 15:01:59 -0000 1.4 @@ -126,6 +126,6 @@ # Indent all headers and source files: indent: - @test "`indent --version`" = "GNU indent 2.2.8a" || \ + @test "`indent --version`" = "GNU indent 2.2.8" || \ (echo "You need GNU indent 2.2.8a; See doc/readme.indent" && exit -1); VERSION_CONTROL=none indent include/*.h ircd/*.c Index: todo.jcea =================================================================== RCS file: /cvsroot/irc-dev/ipv6/todo.jcea,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- todo.jcea 11 Sep 2002 10:09:07 -0000 1.1.1.1 +++ todo.jcea 30 Sep 2002 15:01:59 -0000 1.2 @@ -1,13 +1,19 @@ $Id$ +25/Sep/02 +Ahora que se muestran los IRCops, Opers y Bots online, ver +en que orden nos interesan, porque el primer parametros es +usado por algunos scripts. + +16/Sep/02 +Cuando quitamos a un usuario del WATCH, nos aparece un TimeStamp +de 1970. + 09/Sep/02 Permitir el caracter ~ en los nicks. Aparentemente, segun NiKoLaS, eso requeriria una actualizacion en dos etapas. -05/Sep/02 -Consistencia en el WATCH: cptr -> sptr. - 13/Ago/02 La variable que contiene los modos de usuario esta superpoblada y apenas le queda ya algun bit libre. Habia que mover lo que son @@ -15,17 +21,6 @@ a una variable separada, preferiblemente que exista SOLO cuando el usuario/conexion es local. -13/Ago/02 -Cuando un usuario esta silenciado, recibe un "notice" del servidor, -informandole de este hecho. Eso deberia cambiarse por un NUMERIC. - -06/Ago/02 -Poder poner, al conectar, una clave de servidor y otra de nick, al mismo tiempo. - -06/Ago/02 -Documentar en el registro (irc.org) correspondiente el uso -de QUITLEN y AWAYLEN. - 05/Ago/02 Estudiar la conveniencia de que el taman~o del comentario de los QUIT y de las GLINES no este vinculado a TOPICLEN. El problema se @@ -49,21 +44,6 @@ Estudiar implicaciones en cosas como cambios de nick. -24/Jun/02 -[13:16] <zolty> Cuando el servidor tiene activado el WATCH y un usuario -[13:16] <zolty> que monitorizamos y que no esta en nuestro servidor, -[13:16] <zolty> entra/sale de la red o cambia de nick, y el nick -[13:16] <zolty> esta en la tabla "v" o "w", la IP que aparece en el -[13:16] <zolty> WATCH que nos manda el servidor, es la ip virtual -[13:16] <zolty> normal, no la ip virtual personalizada que le -[13:16] <zolty> corresponde. -[13:16] <zolty> Cuando uno sale, se avisa el watch, antes de hacer -[13:16] <zolty> un "mode -r" y es muy raro, porque a la hora de enviar -[13:16] <zolty> el notify, AUN tiene el +r. -[13:16] <zolty> Cuando uno entra, se avisa el watch antes de recibir -[13:16] <zolty> un +r que vendra del nodo donde esta el usuario -[13:16] <zolty> monitorizado. - 21/Jun/02 Comprobar que KICK, JOIN, PART efectivamente son ya 100% puros. @@ -98,20 +78,6 @@ Por ejemplo, el comando ":nombre_del_Servidor join #canal" mata un server. -15/Nov/01 -Comentado por "SHauN": - -Porqué los servidores puestamente no admiten mayusculas en nombre o -identidades? Será depende del dia... porque hay dias que no hay dios que -entre con una identidad Mayus/Minus Porque el servidor te denega el accesso -con un mensaje: Bad Name/Ident i sin embargo otros dias por el mismo -servidor no hay ningun problema? - -Comprobarlo y solucionarlo. - -12/Nov/01 -"/trace pepe pepe.*" muestra dos veces un mensaje de "no such server". - 12/Nov/01 Zoltan: Para acabar, hay un bug, para meter en el todo.jcea... Ocurre que si un usuario con modos +r o +rh, recibe un rename, @@ -154,10 +120,6 @@ marca al usuario, y se le deje continuar. Una vez validadas las GLINES, comprobamos dicha marca y nos lo cargamos si es menester. -18/Sep/01 -Cambios de nick y de ciertos modos (en especial +h y +x) deben -borrar la caché de IP virtual de ese nick. - 07/Sep/01 Entrando a traves de un nodo que no tolera el +x, si hago un whois a un usuario con IP virtual en la tabla "v", aparece su @@ -196,20 +158,9 @@ y calcular su HASH. De esa forma es más fácil aprovechar los 64 bits de verdad, aun con claves relativamente "recordables". -16/Ago/01 -Persiste el problema de que algunos usuarios ven IPs virtuales -incorrectas si un usuario cambia de nick, y ambos nicks tienen -IPs virtuales diferentes (solo posible si al menos uno de ellos -tiene entrada en la tabla "v", o hay un cambio de clave -de proteccion de IP por medio). - 27/Jul/01 En el MOTD deberia salir una frase al azar, en plan "fortune". -25/Jul/01 -Pensar sobre la conveniencia de ampliar el limite de -30 "bans" que tienen ahora los canales. - 22/Jun/01 Cuando se compacta la base de datos, debe realizarse en un "thread" o proceso aparte, para no dejar de gestionar las conexiones durante @@ -217,17 +168,6 @@ principal de su finalizacion, para que haga un "rehash" y recargue la base de datos, incluyendo la validacion de su "hash". -14/Jun/01 -> >Se supone que si pongo un ban a alguien solo por su nick (nick!*@*), el -> >tipo no puede hablar si esta en el canal, y no puede entrar si sale e -> >intenta volver a entrar, no ? Bueno, esto funciona. -> > -> >Pero y si el tipo se cambia el nick? Puede volver a entrar en el canal y -> >hablar, pero si luego se vuelve a poner el otro nick (el que estaba -> >baneado) ... puede seguir hablando ? Es lo que me ha pasado a mi. Esto es -> >correcto? Si hay un ban para un nick, por que si se lo cambia y despues -> >vuelve al nick baneado, ese ban no le afecta ya ? - 06/Jun/01 Pensar sobre la conveniencia de que los usuarios normales no puedan ver el nodo por el que se @@ -308,15 +248,6 @@ nuevas tablas o registros confidenciales, los viejos nodos los seguiran mostrando mientras no se actualicen. -16/Nov/00 -Cada vez que cambias de nick, el server te informa de -tu nueva IP virtual... que es la misma. Al menos es la -misma si solo tienes el flag "+x". - -16/Nov/00 -Si tenemos los flags "ohX", y nos quitamos el -"oh", el "X" permanece. - 14/Nov/00 El lag calculado para "/map" debe actualizarse en mas ocasiones que "CREATE". Por ejemplo, cuando @@ -423,13 +354,6 @@ Si se hace un /whois IPvirtual, no dice que este conectado, aunque asi sea. -28/Mar/00 -Probando "/who" no deberia ser posible sacar la -IP de un usuario con IP virtual. - -Tampoco deberia ser posible localizar clones cuando -algunos de los usuarios tienen IP virtual y otros no. - 23/Mar/00 An~adir una base de datos con clave el nombre de un nodo y valor un mensaje @@ -495,12 +419,6 @@ Cuando un cliente sale del IRC, se almacena en el WHOWAS su IP cifrada si estaba protegido. Los Operadores de la red deberian tener acceso tambien a la IP real. - -08/Feb/00 -Aunque un Channel Service puede enviar mensajes a todos -los miembros de un canal, dichos mensajes aparecen -dentro del canal, como si el CS estuviese dentro, -no como un mensaje Global. 24/Ene/00 Cuando no se puede completar una verificacion SOCKS, |
From: Zolty <zo...@us...> - 2002-09-28 12:03:11
|
Update of /cvsroot/irc-dev/ipv6 In directory usw-pr-cvs1:/tmp/cvs-serv32375 Modified Files: Ipv6.zoltan Log Message: Actualizacion TODO de IPv6 Index: Ipv6.zoltan =================================================================== RCS file: /cvsroot/irc-dev/ipv6/Ipv6.zoltan,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Ipv6.zoltan 16 Sep 2002 16:22:00 -0000 1.13 +++ Ipv6.zoltan 28 Sep 2002 12:03:03 -0000 1.14 @@ -39,28 +39,40 @@ 6º Adaptar el inetntoa al IPv6 o cambiar por una funcion nueva inetntop (numerico a puntero) para tanto IPv4 como IPv6. (HECHO) -6º Adaptar el res.c al IPv6, la busqueda de la ip a partir del dominio es con AAAA para +7º Adaptar el res.c al IPv6, la busqueda de la ip a partir del dominio es con AAAA para las ips de IPv6. La inversa es a partir de lo siguiente: Si la Ip es 3ffe:b80:124f:1::1, el dominio inverso seria 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.f.4.2.1.0.8.b.0.e.f.f.3.ip6.int (HECHO) -7º Adaptar el CALCULATE_HASH de IPcheck.c a IPv6. +8º Adaptar el CALCULATE_HASH de IPcheck.c a IPv6. -8º Modificar el pretty_mask() para que el ':' lo trate igual que '.'. (HECHO) +9º Modificar el pretty_mask() para que el ':' lo trate igual que '.'. (HECHO) -9º Modificar el parche de Nikolas de bans, para que admita ':'. (HECHO) +10º Modificar el parche de Nikolas de bans, para que admita ':'. (HECHO) -10º La ip en formato base64 ha de tener 22 caracteres en vez de 6, para toda la red +11º La ip en formato base64 ha de tener 22 caracteres en vez de 6, para toda la red si hay al menos 1 ircd con IPv6 activado para que se pueda traducir direcciones con reversibilidad. -11º Idem con las ips virtuales, que en vez de 6 + 6 de entropia, han de ser 22 + ¿6? +12º Idem con las ips virtuales, que en vez de 6 + 6 de entropia, han de ser 22 + ¿6? de entropia. Para toda la red si hay al menos 1 ircd con IPv6 activado. -12º Crear un ejemplo-ipv6.conf. (HECHO) +13º Crear un ejemplo-ipv6.conf. (HECHO) -13º Poner la pregunta en el make config. (HECHO) +14º Poner la pregunta en el make config. (HECHO) + +15: Comprobar el bind de puertos de escucha asi como el virtualhosting. + +16: Comprobar que se pillan las ips de conexiones IPv6 + +17: Comprobar la resolucion DNS. + +18: Comprobar que va bien los chequeos IDENT y PROXY + +19: Comprobar hosts E-lines, O-lines, I-lines, C/N-lines. + +20: Comprobar WHO, SILENCE, GLINE, todo aquello comando que haga comparacion de IP's |
From: Jorge D. <jdu...@na...> - 2002-09-17 11:13:59
|
> > fi > > + bool 'Enable IPv6 support' INET6 > > bool 'Set up a Unix domain socket to connect clients/servers' > > MOUNT: aqui lo tienes :PPP, que no te iba el IPv6, que claro que habia > que poner el #define a mano :P jeje, ok.. gracias :-) estoy viendo e investigando tu trabajo, para dar posibles idéas/mejoras sobre el tema :-p > Un saludo > zoltan Saludos -- Jorge Duarte mount <jdu...@na...> |
From: ZOLTAN <ZO...@te...> - 2002-09-16 16:40:03
|
=3E Log Message=3A =3E INET6=2E10 by NiKoLaS Bueno fin de commit=27s de hoy=2C que mucho he currado =3AP=2E Queda por hacer lo siguiente=2C es un TODO =3A) - Adaptar el IPcheck a IPv6=2E - Comprobar el bind de puertos de escucha as=ED como el virtualhosting=2E= - Comprobar que se pillan las ips de conexiones IPv6 - Comprobar la resolucion DNS=2E - Comprobar que va bien los chequeos IDENT y PROXY - Comprobar hosts E-lines=2C O-lines=2C I-lines=2C C/N-lines=2E - Comprobar WHO=2C SILENCE=2C GLINE=2C todo aquello comando que haga = comparacion de IP=27s - IP=27s formato base64 - Adaptacion IP=27s virtuales Un saludo zoltan |
From: Zolty <zo...@us...> - 2002-09-16 16:22:04
|
Update of /cvsroot/irc-dev/ipv6/ircd In directory usw-pr-cvs1:/tmp/cvs-serv2941/ircd Modified Files: channel.c Log Message: INET6.10 by NiKoLaS Index: channel.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/channel.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- channel.c 16 Sep 2002 14:07:32 -0000 1.4 +++ channel.c 16 Sep 2002 16:22:01 -0000 1.5 @@ -1046,6 +1046,7 @@ * * 1) xxx -> nick!*@* * 2) xxx.xxx -> *!*@host + * 2) xxx:xxx -> *!*@ip IPv6 * 3) xxx!yyy -> nick!user@* * 4) xxx@yyy -> *!user@host * 5) xxx!yyy@zzz -> nick!user@host @@ -1077,9 +1078,9 @@ user = mask; host = ++ptr; } - else if (*ptr == '.') + else if (*ptr == '.' || *ptr == ':') { - /* Case 2: Found last '.' (without finding a '!' or '@' yet) */ + /* Case 2: Found last '.' o ':' (without finding a '!' or '@' yet) */ last_dot = ptr; continue; } @@ -1381,7 +1382,7 @@ for (p = *parv; *p; p++) { if ((*p != 33) && (*p != 42) && (*p != 45) && (*p != 46) && - !((*p > 62) && (*p < 127)) && !((*p > 47) && (*p < 58))) + !((*p > 62) && (*p < 127)) && !((*p > 47) && (*p < 59))) { sendto_one(cptr, err_str(ERR_INVALIDBANMASK), me.name, cptr->name, chptr->chname, *parv); |
From: Zolty <zo...@us...> - 2002-09-16 16:22:04
|
Update of /cvsroot/irc-dev/ipv6/include In directory usw-pr-cvs1:/tmp/cvs-serv2941/include Modified Files: patchlevel.h Log Message: INET6.10 by NiKoLaS Index: patchlevel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/patchlevel.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- patchlevel.h 16 Sep 2002 15:47:29 -0000 1.10 +++ patchlevel.h 16 Sep 2002 16:22:00 -0000 1.11 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.9" + "+INET6.10" /* * Deliberate empty lines |
From: Zolty <zo...@us...> - 2002-09-16 16:22:04
|
Update of /cvsroot/irc-dev/ipv6 In directory usw-pr-cvs1:/tmp/cvs-serv2941 Modified Files: CAMBIOS.Ipv6 Ipv6.zoltan Log Message: INET6.10 by NiKoLaS Index: CAMBIOS.Ipv6 =================================================================== RCS file: /cvsroot/irc-dev/ipv6/CAMBIOS.Ipv6,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- CAMBIOS.Ipv6 16 Sep 2002 15:47:29 -0000 1.9 +++ CAMBIOS.Ipv6 16 Sep 2002 16:22:00 -0000 1.10 @@ -1,3 +1,8 @@ +* 2002/09/16 ni...@ir... INET6.10 +----------------------------------------------------------------------- +Se adaptan el pretty_mask y el codigo de chequeo de banspara que admita +':'. + * 2002/09/16 zo...@ir... INET6.9 ----------------------------------------------------------------------- Resolucion DNS adaptado para IPv6. Index: Ipv6.zoltan =================================================================== RCS file: /cvsroot/irc-dev/ipv6/Ipv6.zoltan,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Ipv6.zoltan 16 Sep 2002 15:47:29 -0000 1.12 +++ Ipv6.zoltan 16 Sep 2002 16:22:00 -0000 1.13 @@ -47,9 +47,9 @@ 7º Adaptar el CALCULATE_HASH de IPcheck.c a IPv6. -8º Modificar el pretty_mask() para que el ':' lo trate igual que '.'. +8º Modificar el pretty_mask() para que el ':' lo trate igual que '.'. (HECHO) -9º Modificar el parche de Nikolas de bans, para que admita ':'. +9º Modificar el parche de Nikolas de bans, para que admita ':'. (HECHO) 10º La ip en formato base64 ha de tener 22 caracteres en vez de 6, para toda la red si hay al menos 1 ircd con IPv6 activado para que se pueda traducir direcciones |
From: Zolty <zo...@us...> - 2002-09-16 15:47:32
|
Update of /cvsroot/irc-dev/ipv6/ircd In directory usw-pr-cvs1:/tmp/cvs-serv22700/ircd Modified Files: res.c support.c Log Message: INET6.9 Index: res.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/res.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- res.c 14 Sep 2002 22:44:51 -0000 1.4 +++ res.c 16 Sep 2002 15:47:29 -0000 1.5 @@ -160,7 +160,7 @@ static void rem_cache(aCache *); static void rem_request(ResRQ *); -static int do_query_name(Link *, char *, ResRQ *); +static int do_query_name(Link *, char *, ResRQ *, int); static int do_query_number(Link *, struct IN_ADDR *, ResRQ *); static void resend_query(ResRQ *); static int proc_answer(ResRQ *, HEADER *, unsigned char *, unsigned char *); @@ -506,18 +506,34 @@ } } -struct hostent *gethost_byname(char *name, Link *lp) +/* + * Get a host address of type type, by it's name. + * lp contains the client info. + * returns the host info if found in cache, or NULL when it doesn't + * know it yet. + */ +struct hostent *gethost_byname_type(char *name, Link *lp, int type) { aCache *cp; reinfo.re_na_look++; if ((cp = find_cache_name(name))) - return &cp->he.h; - if (lp) - do_query_name(lp, name, NULL); + return (struct hostent *)&(cp->he); + if (!lp) + return NULL; + (void)do_query_name(lp, name, NULL, type); return NULL; } +struct hostent *gethost_byname(char *name, Link *lp) +{ +#ifdef INET6 + return gethost_byname_type(name, lp, T_AAAA); +#else + return gethost_byname_type(name, lp, T_A); +#endif +} + struct hostent *gethost_byaddr(struct IN_ADDR *addr, Link *lp) { aCache *cp; @@ -531,7 +547,7 @@ return NULL; } -static int do_query_name(Link *lp, char *name, ResRQ *rptr) +static int do_query_name(Link *lp, char *name, ResRQ *rptr, int type) { char hname[HOSTLEN + 1]; int len; @@ -555,11 +571,11 @@ { if ((rptr = make_request(lp)) == NULL) return -1; - rptr->type = T_A; + rptr->type = type; rptr->name = (char *)RunMalloc(strlen(name) + 1); strcpy(rptr->name, name); } - return (query_name(hname, C_IN, T_A, rptr)); + return (query_name(hname, C_IN, type, rptr)); } /* @@ -567,12 +583,44 @@ */ static int do_query_number(Link *lp, struct IN_ADDR *numb, ResRQ *rptr) { +#ifdef INET6 + char ipbuf[128]; +#else char ipbuf[32]; +#endif Reg2 unsigned char *cp = (unsigned char *)&numb->S_ADDR; +#ifdef INET6 + cp = (u_char *)numb->S_ADDR; + if (cp[0] == 0 && cp[1] == 0 && cp[2] == 0 && cp[3] == 0 && cp[4] == 0 && + cp[5] == 0 && cp[6] == 0 && cp[7] == 0 && cp[8] == 0 && cp[9] == 0 && + ((cp[10] == 0 && cp[11] == 0) || (cp[10] == 0xff && cp[11] == 0xff))) + { + (void)sprintf(ipbuf, "%u.%u.%u.%u.in-addr.arpa.", + (u_int)(cp[15]), (u_int)(cp[14]), (u_int)(cp[13]), (u_int)(cp[12])); + } + else + { + + (void)sprintf(ipbuf, + "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.int.", + (u_int)(cp[15] & 0xf), (u_int)(cp[15] >> 4), (u_int)(cp[14] & 0xf), + (u_int)(cp[14] >> 4), (u_int)(cp[13] & 0xf), (u_int)(cp[13] >> 4), + (u_int)(cp[12] & 0xf), (u_int)(cp[12] >> 4), (u_int)(cp[11] & 0xf), + (u_int)(cp[11] >> 4), (u_int)(cp[10] & 0xf), (u_int)(cp[10] >> 4), + (u_int)(cp[9] & 0xf), (u_int)(cp[9] >> 4), (u_int)(cp[8] & 0xf), + (u_int)(cp[8] >> 4), (u_int)(cp[7] & 0xf), (u_int)(cp[7] >> 4), + (u_int)(cp[6] & 0xf), (u_int)(cp[6] >> 4), (u_int)(cp[5] & 0xf), + (u_int)(cp[5] >> 4), (u_int)(cp[4] & 0xf), (u_int)(cp[4] >> 4), + (u_int)(cp[3] & 0xf), (u_int)(cp[3] >> 4), (u_int)(cp[2] & 0xf), + (u_int)(cp[2] >> 4), (u_int)(cp[1] & 0xf), (u_int)(cp[1] >> 4), + (u_int)(cp[0] & 0xf), (u_int)(cp[0] >> 4)); + } +#else sprintf_irc(ipbuf, "%u.%u.%u.%u.in-addr.arpa.", (unsigned int)(cp[3]), (unsigned int)(cp[2]), (unsigned int)(cp[1]), (unsigned int)(cp[0])); +#endif if (!rptr) { @@ -580,7 +628,7 @@ return -1; rptr->type = T_PTR; #ifdef INET6 - memcpy(rptr->addr.S_ADDR, numb->S_ADDR, IN6ADDRSZ); + memcpy(rptr->addr.S_ADDR, numb->S_ADDR, sizeof(struct IN_ADDR)); #else rptr->addr.S_ADDR = numb->S_ADDR; #endif @@ -642,8 +690,11 @@ case T_PTR: do_query_number(NULL, &rptr->addr, rptr); break; +#ifdef INET6 + case T_AAAA: +#endif case T_A: - do_query_name(NULL, rptr->name, rptr); + do_query_name(NULL, rptr->name, rptr, rptr->type); break; default: break; @@ -793,9 +844,18 @@ switch (type) { +#ifdef INET6 + case T_AAAA: +#endif case T_A: /* check for invalid dlen or too many addresses */ +#ifdef INET6 + if (dlen != ((type == + T_AAAA) ? sizeof(struct in6_addr) : sizeof(struct in_addr))) +// || ++addr_count >= RES_MAXADDRS) +#else if (dlen != sizeof(struct IN_ADDR) || ++addr_count >= RES_MAXADDRS) +#endif break; if (ans == 1) hp->h_addrtype = (addr_class == C_IN) ? AFINET : AF_UNSPEC; @@ -985,6 +1045,7 @@ if (a && rptr->type == T_PTR) { struct hostent *hp2 = NULL; + int type; if (BadPtr(rptr->he.h.h_name)) /* Kludge! 960907/Vesa */ goto getres_err; @@ -997,7 +1058,13 @@ * type we automatically gain the use of the cache with no * extra kludges. */ - if ((hp2 = gethost_byname((char *)rptr->he.h.h_name, &rptr->cinfo))) +#ifdef INET6 + type = T_AAAA; +#else + type = T_A; +#endif + if ((hp2 = + gethost_byname_type((char *)rptr->he.h.h_name, &rptr->cinfo, type))) { if (lp) memcpy(lp, &rptr->cinfo, sizeof(Link)); @@ -1049,9 +1116,35 @@ rptr->sends = 0; rptr->resend = 1; resend_query(rptr); +#ifdef INET6 + /* + * Comment out this ifdef to get names like ::ffff:a.b.c.d + * + * We always want to query for both IN A and IN AAAA + */ + if (rptr->type == T_AAAA) + { + query_name(rptr->name, C_IN, T_A, rptr); + Debug((DEBUG_DNS, + "getres_err: didn't work with T_AAAA, now also trying with T_A for %s", + rptr->name)); + } +#endif } else + { +#ifdef INET6 + /* Comment out this ifdef to get names like ::ffff:a.b.c.d */ + if (rptr->type == T_AAAA) + { + query_name(rptr->name, C_IN, T_A, rptr); + Debug((DEBUG_DNS, + "getres_err: didn't work with T_AAAA, now also trying with T_A for %s", + rptr->name)); + } +#endif resend_query(rptr); + } } else if (lp) memcpy(lp, &rptr->cinfo, sizeof(Link)); @@ -1248,6 +1341,20 @@ hashv += hashv + (int)*ip++; hashv += hashv + (int)*ip++; hashv += hashv + (int)*ip++; +#ifdef INET6 + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; + hashv += hashv + (int)*ip++; +#endif hashv %= ARES_CACSIZE; return (hashv); } Index: support.c =================================================================== RCS file: /cvsroot/irc-dev/ipv6/ircd/support.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- support.c 16 Sep 2002 14:07:32 -0000 1.5 +++ support.c 16 Sep 2002 15:47:29 -0000 1.6 @@ -128,6 +128,7 @@ return NULL; } + Debug((DEBUG_DNS, "Mirar %s", buf)); /* * quick and dirty hack to give ipv4 just ipv4 instead of * ::ffff:ipv4 - Q |
From: Zolty <zo...@us...> - 2002-09-16 15:47:32
|
Update of /cvsroot/irc-dev/ipv6/include In directory usw-pr-cvs1:/tmp/cvs-serv22700/include Modified Files: patchlevel.h Log Message: INET6.9 Index: patchlevel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/patchlevel.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- patchlevel.h 16 Sep 2002 14:07:32 -0000 1.9 +++ patchlevel.h 16 Sep 2002 15:47:29 -0000 1.10 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.8" + "+INET6.9" /* * Deliberate empty lines |
From: Zolty <zo...@us...> - 2002-09-16 15:47:32
|
Update of /cvsroot/irc-dev/ipv6 In directory usw-pr-cvs1:/tmp/cvs-serv22700 Modified Files: CAMBIOS.Ipv6 Ipv6.zoltan Log Message: INET6.9 Index: CAMBIOS.Ipv6 =================================================================== RCS file: /cvsroot/irc-dev/ipv6/CAMBIOS.Ipv6,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- CAMBIOS.Ipv6 16 Sep 2002 14:07:31 -0000 1.8 +++ CAMBIOS.Ipv6 16 Sep 2002 15:47:29 -0000 1.9 @@ -1,3 +1,7 @@ +* 2002/09/16 zo...@ir... INET6.9 +----------------------------------------------------------------------- +Resolucion DNS adaptado para IPv6. + * 2002/09/16 zo...@ir... INET6.8 ----------------------------------------------------------------------- Se adapta el inentoa al IPv6 :) Index: Ipv6.zoltan =================================================================== RCS file: /cvsroot/irc-dev/ipv6/Ipv6.zoltan,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Ipv6.zoltan 16 Sep 2002 14:07:31 -0000 1.11 +++ Ipv6.zoltan 16 Sep 2002 15:47:29 -0000 1.12 @@ -43,6 +43,7 @@ las ips de IPv6. La inversa es a partir de lo siguiente: Si la Ip es 3ffe:b80:124f:1::1, el dominio inverso seria 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.f.4.2.1.0.8.b.0.e.f.f.3.ip6.int + (HECHO) 7º Adaptar el CALCULATE_HASH de IPcheck.c a IPv6. @@ -71,7 +72,7 @@ Antonio Garcia Nuñez zo...@ir... Ferran Sarrio Hernandez sa...@ir... Javier Meizoso Fernandez ma...@ir... -Jesus Cea Avion jc...@ir... +Jesus Cea Avion jc...@ar... Joel Serrano pi...@te... Miguel A. Fosas am...@ir... Roger Torrentsgeneros tr...@ir... |
From: Zolty <zo...@us...> - 2002-09-16 14:07:35
|
Update of /cvsroot/irc-dev/ipv6/include In directory usw-pr-cvs1:/tmp/cvs-serv13455/include Modified Files: inet.h patchlevel.h Log Message: INET6.8 Index: inet.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/inet.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- inet.h 16 Sep 2002 12:22:13 -0000 1.6 +++ inet.h 16 Sep 2002 14:07:32 -0000 1.7 @@ -78,6 +78,12 @@ #define IN6ADDRSZ sizeof(struct IN_ADDR) #endif +/* + * Tamanio maximo de una IP + * ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255\0 <= 46 :) + * ffff:ffff:ffff:ffff:ffff:ffff:ffff.ffff\0 + */ +#define IPLEN 46 #else /* !INET6 */ /* @@ -118,11 +124,20 @@ #define INADDRSZ sizeof(struct IN_ADDR) #endif -#endif /* INET6 */ +/* + * Tamanio maximo de una IP + * 255.255.255.255\0 <= 16 :) + */ +#define IPLEN 16 -#ifndef INADDR_NONE -#define INADDR_NONE 0xffffffff -#endif +#endif /* INET6 */ + +/* + * Tamanio maximo de una IP, en TODA la RED + * ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255\0 <= 46 :) + * ffff:ffff:ffff:ffff:ffff:ffff:ffff.ffff\0 + */ +#define IPLENALL 46 #endif /* INET_H */ Index: patchlevel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/patchlevel.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- patchlevel.h 16 Sep 2002 12:38:13 -0000 1.8 +++ patchlevel.h 16 Sep 2002 14:07:32 -0000 1.9 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.7" + "+INET6.8" /* * Deliberate empty lines |
From: Zolty <zo...@us...> - 2002-09-16 14:07:35
|
Update of /cvsroot/irc-dev/ipv6 In directory usw-pr-cvs1:/tmp/cvs-serv13455 Modified Files: CAMBIOS.Ipv6 Ipv6.zoltan Log Message: INET6.8 Index: CAMBIOS.Ipv6 =================================================================== RCS file: /cvsroot/irc-dev/ipv6/CAMBIOS.Ipv6,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- CAMBIOS.Ipv6 16 Sep 2002 12:38:13 -0000 1.7 +++ CAMBIOS.Ipv6 16 Sep 2002 14:07:31 -0000 1.8 @@ -1,3 +1,7 @@ +* 2002/09/16 zo...@ir... INET6.8 +----------------------------------------------------------------------- +Se adapta el inentoa al IPv6 :) + * 2002/09/16 zo...@ir... INET6.7 ----------------------------------------------------------------------- Tras comprobar que es funcional, esto si, incompleto, se mete la Index: Ipv6.zoltan =================================================================== RCS file: /cvsroot/irc-dev/ipv6/Ipv6.zoltan,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Ipv6.zoltan 16 Sep 2002 12:38:13 -0000 1.10 +++ Ipv6.zoltan 16 Sep 2002 14:07:31 -0000 1.11 @@ -30,14 +30,14 @@ soporta conexiones de tanto IPv4 como IPv6 (HECHO) 4º La ip de IPv6 en formato binario, no puede estar en un int, ya que son 128 bits, - hay que meterlo en un puntero char* o en un int[4]. + hay que meterlo en un puntero char* o en un int[4]. (HECHO) 5º Definir un macro en "inet.h" para la delimitacion de los campos de las lineas del ircd.conf ya que como en INET6 usan ':', entonces para el ircd.conf utilizaremos el '%' si el ircd se compila para INET6. (HECHO) 6º Adaptar el inetntoa al IPv6 o cambiar por una funcion nueva inetntop (numerico a - puntero) para tanto IPv4 como IPv6. + puntero) para tanto IPv4 como IPv6. (HECHO) 6º Adaptar el res.c al IPv6, la busqueda de la ip a partir del dominio es con AAAA para las ips de IPv6. La inversa es a partir de lo siguiente: |
From: ZOLTAN <ZO...@te...> - 2002-09-16 12:43:07
|
> fi > + bool 'Enable IPv6 support' INET6 > bool 'Set up a Unix domain socket to connect clients/servers' MOUNT: aqui lo tienes :PPP, que no te iba el IPv6, que claro que habia que poner el #define a mano :P Suerte y notificame de posibles bugs que pudieran salir... Ah, una cosa, en estos momentos, sale 0.0.0.0 en los whois, es debido a que el inetntoa no tiene soporte ipv6 :) Un saludo zoltan |
From: Zolty <zo...@us...> - 2002-09-16 12:38:17
|
Update of /cvsroot/irc-dev/ipv6/include In directory usw-pr-cvs1:/tmp/cvs-serv16834/include Modified Files: patchlevel.h Log Message: INET6.7 Index: patchlevel.h =================================================================== RCS file: /cvsroot/irc-dev/ipv6/include/patchlevel.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- patchlevel.h 16 Sep 2002 12:22:13 -0000 1.7 +++ patchlevel.h 16 Sep 2002 12:38:13 -0000 1.8 @@ -49,7 +49,7 @@ \ \ \ - "+INET6.6" + "+INET6.7" /* * Deliberate empty lines |
From: Zolty <zo...@us...> - 2002-09-16 12:38:17
|
Update of /cvsroot/irc-dev/ipv6/config In directory usw-pr-cvs1:/tmp/cvs-serv16834/config Modified Files: config-sh.in Log Message: INET6.7 Index: config-sh.in =================================================================== RCS file: /cvsroot/irc-dev/ipv6/config/config-sh.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- config-sh.in 11 Sep 2002 10:09:08 -0000 1.1.1.1 +++ config-sh.in 16 Sep 2002 12:38:13 -0000 1.2 @@ -171,6 +171,7 @@ echo " SECURITY: Then don't install the daemon SUID or SGID !" fi fi + bool 'Enable IPv6 support' INET6 bool 'Set up a Unix domain socket to connect clients/servers' UNIXPORT bool 'Do you need virtual hosting' VIRTUAL_HOST PREV_HUB=$HUB |