diff -crN ../ircu2.10.06-DBH9-whois/CAMBIOS ../ircu2.10.06-DBH10/CAMBIOS *** ../ircu2.10.06-DBH9-whois/CAMBIOS Fri Jul 30 13:38:50 1999 --- ../ircu2.10.06-DBH10/CAMBIOS Sat Jul 31 06:02:16 1999 *************** *** 1,11 **** ! * 1999/07/30 savage@apostols.org (patch.whois_secret) ----------------------------------------------------------------------- Si asi lo pedimos en la configuración (make config), OPERS_SEE_IN_SECRET_CHANNELS, el whois les muestra a los IrcOP o +k la lista de canales secretos (+s) donde esta el usuario Se documenta en /VERSION como W+/W- ! * 1999/07/29 savage@apostols.org (patch.dbh9) ----------------------------------------------------------------------- Incorpora el comando SERVER-SERVER BMODE, con formato: --- 1,24 ---- ! * 1999/07/31 savage@apostols.org (patch.dbh10) FIX ! ----------------------------------------------------------------------- ! Corrección del BMODE, pues se producian algunos desynch. ! Lo he simplificado, y para ello he tenido que meter un parametro ! adicional a set_mode(), que se usa en m_botmode (1) y m_mode (0). ! Si el parametro es 1 (BMODE), se hace badop=0, bounce=0, asi no se queja ! nadie. Como el arreglo es en la recepción, sera necesario que este activo ! en todos los servers antes de que sea operativo. ! Por error, en DBH9 deje abierto a IRCops el comando BMODE, ahora es solo ! server-server. ! El BURST de p10 no parsea los modos +R+A+S de canal, tb lo he arreglado. ! Queda reflejado como DBH10+ ! ! * 1999/07/30 savage@apostols.org (patch.whois_secret) FEATURE ----------------------------------------------------------------------- Si asi lo pedimos en la configuración (make config), OPERS_SEE_IN_SECRET_CHANNELS, el whois les muestra a los IrcOP o +k la lista de canales secretos (+s) donde esta el usuario Se documenta en /VERSION como W+/W- ! * 1999/07/29 savage@apostols.org (patch.dbh9) FEATURE ----------------------------------------------------------------------- Incorpora el comando SERVER-SERVER BMODE, con formato: *************** *** 36,54 **** #define MODE_AUTOOP 0x080000 #define MODE_SECUREOP 0x100000 ! * 1999/07/29 savage@apostols.org (patch.noproxy4) ----------------------------------------------------------------------- Se corrige el tema caida por timeout si tienes el 1080 cerrado sin aviso mediante firewall. Ahora deja al usuario enganchado 90 segundos antes de dejarle entrar. Queda reflejado como PX4+ o PX4- en el /VERSION ! * 1999/07/29 savage@apostols.org (patch.noproxy3) ----------------------------------------------------------------------- Se elimina el chekeo de Socks y el de Ident sobre puerto de servers Queda reflejado como PX3+ o PX3- en el /VERSION ! * 1999/07/29 savage@apostols.org (patch.dbh8) ----------------------------------------------------------------------- Implementa el nuevo modo de usuario -/+h, conocido en otras redes como HelpOperator, que vendrian a ser los Oper del irc-hispano. --- 49,67 ---- #define MODE_AUTOOP 0x080000 #define MODE_SECUREOP 0x100000 ! * 1999/07/29 savage@apostols.org (patch.noproxy4) FIX ----------------------------------------------------------------------- Se corrige el tema caida por timeout si tienes el 1080 cerrado sin aviso mediante firewall. Ahora deja al usuario enganchado 90 segundos antes de dejarle entrar. Queda reflejado como PX4+ o PX4- en el /VERSION ! * 1999/07/29 savage@apostols.org (patch.noproxy3) FIX ----------------------------------------------------------------------- Se elimina el chekeo de Socks y el de Ident sobre puerto de servers Queda reflejado como PX3+ o PX3- en el /VERSION ! * 1999/07/29 savage@apostols.org (patch.dbh8) FEATURE ----------------------------------------------------------------------- Implementa el nuevo modo de usuario -/+h, conocido en otras redes como HelpOperator, que vendrian a ser los Oper del irc-hispano. *************** *** 59,71 **** Ademas mejora la implementacion de los modos automaticos al cambiar de nick. ! * 1999/07/28 savage@apostols.org (patch.noproxy2) ----------------------------------------------------------------------- Algunos cambios cosmeticos en los textos enviados al usuario. El patch.noproxy no compila modo DEBUG, este lo arregla. Queda reflejado como PX2+ o PX2- en el /VERSION ! * 1999/07/28 savage@apostols.org (patch.noproxy) ----------------------------------------------------------------------- Implemento un checker de Socks4-Proxies (wingates incluido). La implementación esta en s_socks.c y s_socks.h, pero ha sido necesario --- 72,84 ---- Ademas mejora la implementacion de los modos automaticos al cambiar de nick. ! * 1999/07/28 savage@apostols.org (patch.noproxy2) FIX ----------------------------------------------------------------------- Algunos cambios cosmeticos en los textos enviados al usuario. El patch.noproxy no compila modo DEBUG, este lo arregla. Queda reflejado como PX2+ o PX2- en el /VERSION ! * 1999/07/28 savage@apostols.org (patch.noproxy) FEATURE ----------------------------------------------------------------------- Implemento un checker de Socks4-Proxies (wingates incluido). La implementación esta en s_socks.c y s_socks.h, pero ha sido necesario *************** *** 96,102 **** config, siempre que hayamos seleccionado DB_HISPANO. Queda reflejado en el /VERSION como PX+ o PX- ! * 1999/07/21 savage@apostols.org (patch.DBH6) ----------------------------------------------------------------------- Cambia la forma de trabajo del flag +r, impidiendo que el user se lo quite, y (des)activandose solo ante autentificacion, y no ademas --- 109,115 ---- config, siempre que hayamos seleccionado DB_HISPANO. Queda reflejado en el /VERSION como PX+ o PX- ! * 1999/07/21 savage@apostols.org (patch.DBH6) FIX ----------------------------------------------------------------------- Cambia la forma de trabajo del flag +r, impidiendo que el user se lo quite, y (des)activandose solo ante autentificacion, y no ademas *************** *** 122,128 **** Puestos a arreglar, añado el DBPATH de la DB10 como prefijo a los ficheros usados por la DBH. ! * 1999/07/06 savage@apostols.org (patch.whois_renumber) ----------------------------------------------------------------------- Este patch renumera algunos codigos de respuesta del WHOIS para hacerlos mas universales. Se activa si usamos DB_HISPANO/DB_ESNET. Los codigos --- 135,141 ---- Puestos a arreglar, añado el DBPATH de la DB10 como prefijo a los ficheros usados por la DBH. ! * 1999/07/06 savage@apostols.org (patch.whois_renumber) FIX ----------------------------------------------------------------------- Este patch renumera algunos codigos de respuesta del WHOIS para hacerlos mas universales. Se activa si usamos DB_HISPANO/DB_ESNET. Los codigos *************** *** 133,139 **** Esto hace ke BitchX se sienta inmensamente feliz :) ! * 1999/07/06 savage@apostols.org (patch.DBH3_nick_mode_r_whois) ----------------------------------------------------------------------- En el fichero struct.h he ampliado con un nuevo campo la estructura Client, es un unsigned int llamado hmodes. Esto nos permitira dispo- --- 146,152 ---- Esto hace ke BitchX se sienta inmensamente feliz :) ! * 1999/07/06 savage@apostols.org (patch.DBH3) FEATURE ----------------------------------------------------------------------- En el fichero struct.h he ampliado con un nuevo campo la estructura Client, es un unsigned int llamado hmodes. Esto nos permitira dispo- diff -crN ../ircu2.10.06-DBH9-whois/ircd/channel.c ../ircu2.10.06-DBH10/ircd/channel.c *** ../ircu2.10.06-DBH9-whois/ircd/channel.c Fri Jul 30 12:51:13 1999 --- ../ircu2.10.06-DBH10/ircd/channel.c Sat Jul 31 05:54:16 1999 *************** *** 62,69 **** --- 62,74 ---- static int is_banned(aClient *, aChannel *, Link *); static int number_of_zombies(aChannel *); static int is_deopped(aClient *, aChannel *); + #if defined(DB_HISPANO) || defined(DB_ESNET) + static int set_mode(aClient *, aClient *, aChannel *, int, int, + char **, char *, char *, char *, int *); + #else static int set_mode(aClient *, aClient *, aChannel *, int, char **, char *, char *, char *, int *); + #endif static void sub1_from_channel(aChannel *); static void send_hack_notice(aClient *, aClient *, int, char *[], int, int); static void clean_channelname(char *); *************** *** 806,812 **** char *botname; struct dbh_reg *r; ! if(!IsServer(cptr) && !IsOper(sptr)) return 0; /* Now, try to find the channel in question */ --- 811,817 ---- char *botname; struct dbh_reg *r; ! if(!IsServer(cptr)) return 0; /* Now, try to find the channel in question */ *************** *** 817,826 **** return 0; /* m_botumode(cptr, sptr, parc, parv); */ } else - { - sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "BMODE"); return 0; - } sptr->flags &= ~FLAGS_TS8; --- 822,828 ---- *************** *** 831,843 **** /* sending an error wasnt good, lets just send an empty mode reply.. poptix */ if (IsModelessChannel(chptr->chname)) - { - if (IsUser(sptr)) - sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], chptr->chname, "+nt", ""); return 0; - } ! if (!(sendts = set_mode(cptr, sptr, chptr, parc - 3, parv + 3, modebuf, parabuf, nparabuf, &badop))) { sendto_one(sptr, err_str(IsMember(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : --- 833,841 ---- /* sending an error wasnt good, lets just send an empty mode reply.. poptix */ if (IsModelessChannel(chptr->chname)) return 0; ! if (!(sendts = set_mode(cptr, sptr, chptr, 1, parc - 3, parv + 3, modebuf, parabuf, nparabuf, &badop))) { sendto_one(sptr, err_str(IsMember(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : *************** *** 855,887 **** if (strlen(modebuf) > (size_t) 1 || sendts > 0) { ! if (badop != 2 && strlen(modebuf) > (size_t) 1) ! sendto_channel_butserv(chptr, NULL, ":%s MODE %s %s %s", ! botname, chptr->chname, modebuf, parabuf); ! if (IsLocalChannel(chptr->chname)) ! return 0; ! /* We send a creationtime of 0, to mark it as a hack --Run */ ! if (IsServer(sptr) && (badop == 2 || sendts > 0)) ! { ! if (*modebuf == '\0') ! strcpy(modebuf, "+"); ! if (badop != 2) ! { ! sendto_lowprot_butone(cptr, 9, ":%s BMODE %s %s %s %s " TIME_T_FMT, ! parv[0], parv[1], chptr->chname, modebuf, parabuf, ! (badop == 4) ? (time_t) 0 : chptr->creationtime); ! sendto_highprot_butone(cptr, 10, ":%s BMODE %s %s %s %s " TIME_T_FMT, ! parv[0], parv[1], chptr->chname, modebuf, nparabuf, ! (badop == 4) ? (time_t) 0 : chptr->creationtime); ! } ! } ! else ! { sendto_lowprot_butone(cptr, 9, ":%s BMODE %s %s %s %s", ! parv[0], parv[1], chptr->chname, modebuf, parabuf); sendto_highprot_butone(cptr, 10, ":%s BMODE %s %s %s %s", ! parv[0], parv[1], chptr->chname, modebuf, nparabuf); ! } } return 0; } --- 853,868 ---- if (strlen(modebuf) > (size_t) 1 || sendts > 0) { ! if (strlen(modebuf) > (size_t) 1) ! sendto_channel_butserv(chptr, NULL, ":%s MODE %s %s %s", ! botname, chptr->chname, modebuf, parabuf); ! if (IsLocalChannel(chptr->chname)) ! return 0; ! sendto_lowprot_butone(cptr, 9, ":%s BMODE %s %s %s %s", ! parv[0], parv[1], chptr->chname, modebuf, parabuf); sendto_highprot_butone(cptr, 10, ":%s BMODE %s %s %s %s", ! parv[0], parv[1], chptr->chname, modebuf, nparabuf); } return 0; } *************** *** 939,946 **** --- 920,932 ---- return 0; } + #if defined(DB_HISPANO) || defined(DB_ESNET) + if (!(sendts = set_mode(cptr, sptr, chptr, 0, parc - 2, parv + 2, + modebuf, parabuf, nparabuf, &badop))) + #else if (!(sendts = set_mode(cptr, sptr, chptr, parc - 2, parv + 2, modebuf, parabuf, nparabuf, &badop))) + #endif { sendto_one(sptr, err_str(IsMember(sptr, chptr) ? ERR_CHANOPRIVSNEEDED : ERR_NOTONCHANNEL), me.name, parv[0], chptr->chname); *************** *** 1109,1116 **** * the client ccptr to channel chptr. The resultant changes are printed * into mbuf and pbuf (if any) and applied to the channel. */ ! static int set_mode(aClient *cptr, aClient *sptr, aChannel *chptr, int parc, ! char *parv[], char *mbuf, char *pbuf, char *npbuf, int *badop) { static Link chops[MAXPARA - 2]; /* This size is only needed when a broken server sends more then MAXMODEPARAMS --- 1095,1110 ---- * the client ccptr to channel chptr. The resultant changes are printed * into mbuf and pbuf (if any) and applied to the channel. */ ! #if defined(DB_HISPANO) || defined(DB_ESNET) ! static int set_mode(aClient *cptr, aClient *sptr, aChannel *chptr, ! int botmode, ! int parc, char *parv[], char *mbuf, char *pbuf, ! char *npbuf, int *badop) ! #else ! static int set_mode(aClient *cptr, aClient *sptr, aChannel *chptr, ! int parc, char *parv[], char *mbuf, char *pbuf, ! char *npbuf, int *badop) ! #endif { static Link chops[MAXPARA - 2]; /* This size is only needed when a broken server sends more then MAXMODEPARAMS *************** *** 1554,1560 **** bounce = (*badop == 1 || *badop == 2 || is_deopped(sptr, chptr)) ? 1 : 0; #if defined(DB_HISPANO) || defined(DB_ESNET) ! if(IsServicesBot(sptr)) { bounce=0; *badop=0; --- 1548,1554 ---- bounce = (*badop == 1 || *badop == 2 || is_deopped(sptr, chptr)) ? 1 : 0; #if defined(DB_HISPANO) || defined(DB_ESNET) ! if(IsServicesBot(sptr) || botmode) { bounce=0; *badop=0; *************** *** 2642,2647 **** --- 2636,2642 ---- continue; } #if defined(DB_HISPANO) || defined(DB_ESNET) + /* asi ya lo meto en el canal con el OP puesto a nivel local */ if( AutoOpChannel(chptr) && IsNickRegistered(sptr) && dbh_es_miembro(DBH_CHANDB, chptr->chname, sptr->name) ) *************** *** 2729,2738 **** { /* send a TS? */ sendto_serv_butone(cptr, ":%s MODE %s + " TIME_T_FMT, me.name, chptr->chname, chptr->creationtime); /* ok, send TS */ ! chptr->mode.mode &= ~MODE_SENDTS; /* reset flag */ } #if defined(DB_HISPANO) || defined(DB_ESNET) ! if( AutoOpChannel(chptr) && IsNickRegistered(sptr) && dbh_es_miembro(DBH_CHANDB, chptr->chname, sptr->name) ) { --- 2724,2737 ---- { /* send a TS? */ sendto_serv_butone(cptr, ":%s MODE %s + " TIME_T_FMT, me.name, chptr->chname, chptr->creationtime); /* ok, send TS */ ! chptr->mode.mode &= ~MODE_SENDTS; /* reset flag */ } #if defined(DB_HISPANO) || defined(DB_ESNET) ! /* ! * solo seria necesario si no se ha creado ! * el canal, pero no tengo datos ... ! */ ! if( chptr && AutoOpChannel(chptr) && IsNickRegistered(sptr) && dbh_es_miembro(DBH_CHANDB, chptr->chname, sptr->name) ) { *************** *** 2744,2751 **** else botname=me.name; ! sendto_serv_butone(cptr, "%c BMODE %s %s +o %c%c%c " TIME_T_FMT, ! me.yxx[0], DBH_CHANSERV, chptr->chname, NumNick(sptr), chptr->creationtime ); sendto_channel_butserv(chptr, NULL, ":%s MODE %s +o %s", botname, chptr->chname, sptr->name ); } --- 2743,2755 ---- else botname=me.name; ! /* queridos remotos, ahora os comereis un modo OP */ ! sendto_lowprot_butone(cptr, 9, ":%s BMODE %s %s +o %s", ! me.name, DBH_CHANSERV, chptr->chname, sptr->name ); ! sendto_highprot_butone(cptr, 10, "%c BMODE %s %s +o %c%c%c", ! me.yxx[0], DBH_CHANSERV, chptr->chname, NumNick(sptr) ); ! ! /* queridos usuarios, ahora os tomo el pelo como a chinos */ sendto_channel_butserv(chptr, NULL, ":%s MODE %s +o %s", botname, chptr->chname, sptr->name ); } *************** *** 3266,3272 **** modebuf[mblen2++] = 'm'; break; } ! case 'n': { register int tmp; prev_mode &= ~MODE_NOPRIVMSGS; --- 3270,3320 ---- modebuf[mblen2++] = 'm'; break; } ! #if defined(DB_HISPANO) || defined(DB_ESNET) ! case 'R': ! { ! register int tmp; ! prev_mode &= ~MODE_REGNICKS; ! if (!(tmp = netride || ! (current_mode->mode & MODE_REGNICKS)) || wipeout) ! { ! bmodebuf[mblen++] = 'R'; ! current_mode->mode |= MODE_REGNICKS; ! } ! if (!tmp) ! modebuf[mblen2++] = 'R'; ! break; ! } ! case 'A': ! { ! register int tmp; ! prev_mode &= ~MODE_AUTOOP; ! if (!(tmp = netride || ! (current_mode->mode & MODE_AUTOOP)) || wipeout) ! { ! bmodebuf[mblen++] = 'A'; ! current_mode->mode |= MODE_AUTOOP; ! } ! if (!tmp) ! modebuf[mblen2++] = 'A'; ! break; ! } ! case 'S': ! { ! register int tmp; ! prev_mode &= ~MODE_SECUREOP; ! if (!(tmp = netride || ! (current_mode->mode & MODE_SECUREOP)) || wipeout) ! { ! bmodebuf[mblen++] = 'S'; ! current_mode->mode |= MODE_SECUREOP; ! } ! if (!tmp) ! modebuf[mblen2++] = 'S'; ! break; ! } ! #endif /* DB_HISPANO || DB_ESNET */ ! case 'n': { register int tmp; prev_mode &= ~MODE_NOPRIVMSGS; diff -crN ../ircu2.10.06-DBH9-whois/ircd/s_debug.c ../ircu2.10.06-DBH10/ircd/s_debug.c *** ../ircu2.10.06-DBH9-whois/ircd/s_debug.c Fri Jul 30 13:30:17 1999 --- ../ircu2.10.06-DBH10/ircd/s_debug.c Sat Jul 31 04:12:29 1999 *************** *** 202,208 **** #endif #ifdef DB_HISPANO '.','I','R','C','-', 'H','I','S','P','A','N','O','.','O','R','G',':', ! 'D','B','H' ,'9','+', 'N','+', --- 202,208 ---- #endif #ifdef DB_HISPANO '.','I','R','C','-', 'H','I','S','P','A','N','O','.','O','R','G',':', ! 'D','B','H' ,'1','0','+', 'N','+',