diff -crN ../ircu2.10.06-DBH12/CAMBIOS ../ircu2.10.06-VIP2/CAMBIOS *** ../ircu2.10.06-DBH12/CAMBIOS Wed Oct 6 11:33:13 1999 --- ../ircu2.10.06-VIP2/CAMBIOS Wed Oct 6 11:33:53 1999 *************** *** 1,3 **** --- 1,10 ---- + * 1999/10/05 savage@apostols.org (patch.vip2) FEATURE + ----------------------------------------------------------------------- + Se cambia el modo de trabajo de /WHOIS y /WHO para que lo hagan segun + sugerencias de jcea. El propio usuario se ve a si mismo como lo haria + un +X. Y la primera linea (311) de WHOIS da el host real y en la linea + codigo 378 informamos de la dirección virtual. + * 1999/10/05 savage@apostols.org (patch.dbh12) FIX ----------------------------------------------------------------------- Las nuevas funciones base64toint() que han introducido en el parche de diff -crN ../ircu2.10.06-DBH12/include/s_user.h ../ircu2.10.06-VIP2/include/s_user.h *** ../ircu2.10.06-DBH12/include/s_user.h Tue Oct 5 15:37:06 1999 --- ../ircu2.10.06-VIP2/include/s_user.h Wed Oct 6 11:33:53 1999 *************** *** 73,78 **** --- 73,79 ---- #if defined(DB_HISPANO) || defined(DB_ESNET) #ifdef DBH_VIP extern char *get_virtualhost(aClient *sptr); + extern char *get_visiblehost(aClient *acptr, aClient *sptr); #endif #endif diff -crN ../ircu2.10.06-DBH12/ircd/s_debug.c ../ircu2.10.06-VIP2/ircd/s_debug.c *** ../ircu2.10.06-DBH12/ircd/s_debug.c Wed Oct 6 11:33:13 1999 --- ../ircu2.10.06-VIP2/ircd/s_debug.c Wed Oct 6 11:33:53 1999 *************** *** 221,227 **** #else '-', #endif ! 'V','I','P', #ifdef DBH_VIP '+', #else --- 221,227 ---- #else '-', #endif ! 'V','I','P','2', #ifdef DBH_VIP '+', #else diff -crN ../ircu2.10.06-DBH12/ircd/s_err.c ../ircu2.10.06-VIP2/ircd/s_err.c *** ../ircu2.10.06-DBH12/ircd/s_err.c Tue Oct 5 15:37:06 1999 --- ../ircu2.10.06-VIP2/ircd/s_err.c Wed Oct 6 11:33:53 1999 *************** *** 474,480 **** {0, (char *)NULL}, #if defined(DB_HISPANO) || defined(DB_ESNET) /* 378 */ ! {RPL_WHOISHOST, "%s :Dirección real %s [%s]"}, /* 379 */ {RPL_WHOISMODES, "%s :Utiliza los modos [%s]"}, /* 380 */ --- 474,480 ---- {0, (char *)NULL}, #if defined(DB_HISPANO) || defined(DB_ESNET) /* 378 */ ! {RPL_WHOISHOST, "%s :Dirección VIRTUAL %s"}, /* 379 */ {RPL_WHOISMODES, "%s :Utiliza los modos [%s]"}, /* 380 */ diff -crN ../ircu2.10.06-DBH12/ircd/s_user.c ../ircu2.10.06-VIP2/ircd/s_user.c *** ../ircu2.10.06-DBH12/ircd/s_user.c Wed Oct 6 11:33:13 1999 --- ../ircu2.10.06-VIP2/ircd/s_user.c Wed Oct 6 11:33:53 1999 *************** *** 2563,2569 **** sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', acptr->user->username, ! IsHiddenViewer(sptr)?acptr->user->host:get_virtualhost(acptr)); #else sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', --- 2563,2569 ---- sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', acptr->user->username, ! get_visiblehost(acptr,sptr)); #else sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', *************** *** 2612,2618 **** sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', acptr->user->username, ! (IsHiddenViewer(sptr) || !IsHidden(acptr))?inetntoa(acptr->ip):"127.0.0.1"); #else sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', --- 2612,2618 ---- sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', acptr->user->username, ! ( sptr==acptr || IsHiddenViewer(sptr) || !IsHidden(acptr))?inetntoa(acptr->ip):"127.0.0.1"); #else sbuf = sprintf_irc(sbuf, "%s%s=%c%s@%s", acptr->name, IsAnOper(acptr) ? "*" : "", (acptr->user->away) ? '-' : '+', *************** *** 3347,3352 **** --- 3347,3370 ---- return ""; /* esto no deberia salir nunca */ if(!IsHidden(acptr)) + return acptr->user->host; + else + return acptr->user->virtualhost; + } + + /* + * char *get_visiblehost(acptr,sptr) ** MIGRAR A hispano.c ** + * + * nos da la ip real o la virtual de una conexion dependiendo + * del userflag +x/-x, del +X/-X y de si somos nosotros mismos + * + */ + char *get_visiblehost(aClient *acptr, aClient *sptr) + { + if(!IsUser(acptr) || !IsUser(sptr)) + return ""; /* esto no deberia salir nunca */ + + if(!IsHidden(acptr) || IsHiddenViewer(sptr) || acptr == sptr) return acptr->user->host; else return acptr->user->virtualhost; diff -crN ../ircu2.10.06-DBH12/ircd/whocmds.c ../ircu2.10.06-VIP2/ircd/whocmds.c *** ../ircu2.10.06-DBH12/ircd/whocmds.c Tue Oct 5 15:37:06 1999 --- ../ircu2.10.06-VIP2/ircd/whocmds.c Wed Oct 6 11:33:53 1999 *************** *** 220,227 **** if (!fields || (fields & WHO_FIELD_HOS)) { #ifdef DBH_VIP ! Reg3 char *p2 = (IsHiddenViewer(sptr)) ? ! acptr->user->host : get_virtualhost(acptr); #else Reg3 char *p2 = acptr->user->host; #endif --- 220,226 ---- if (!fields || (fields & WHO_FIELD_HOS)) { #ifdef DBH_VIP ! Reg3 char *p2 = get_visiblehost(acptr,sptr); #else Reg3 char *p2 = acptr->user->host; #endif *************** *** 556,562 **** we'll never have to show this acptr in this query */ if ((bitsel & WHOSELECT_OPER) && !IsAnOper(acptr)) continue; ! if ((mask) && ((!(matchsel & WHO_FIELD_NIC)) || matchexec(acptr->name, mymask, minlen)) && ((!(matchsel & WHO_FIELD_UID)) --- 555,562 ---- we'll never have to show this acptr in this query */ if ((bitsel & WHOSELECT_OPER) && !IsAnOper(acptr)) continue; ! #ifdef DBH_VIP ! if ((mask) && ((!(matchsel & WHO_FIELD_NIC)) || matchexec(acptr->name, mymask, minlen)) && ((!(matchsel & WHO_FIELD_UID)) *************** *** 571,577 **** || ((((acptr->ip.s_addr & imask.mask.s_addr) != imask.bits.s_addr)) || (imask.fall && matchexec(inet_ntoa(acptr->ip), mymask, minlen))))) ! continue; if (!SHOW_MORE(sptr, counter)) break; do_who(sptr, acptr, chptr, fields, qrt); --- 571,595 ---- || ((((acptr->ip.s_addr & imask.mask.s_addr) != imask.bits.s_addr)) || (imask.fall && matchexec(inet_ntoa(acptr->ip), mymask, minlen))))) ! continue; ! #else ! if ((mask) && ! ((!(matchsel & WHO_FIELD_NIC)) ! || matchexec(acptr->name, mymask, minlen)) ! && ((!(matchsel & WHO_FIELD_UID)) ! || matchexec(acptr->user->username, mymask, minlen)) ! && ((!(matchsel & WHO_FIELD_SER)) ! || (!(acptr->user->server->flags & FLAGS_MAP))) ! && ((!(matchsel & WHO_FIELD_HOS)) ! || matchexec(acptr->user->host, mymask, minlen)) ! && ((!(matchsel & WHO_FIELD_REN)) ! || matchexec(acptr->info, mymask, minlen)) ! && ((!(matchsel & WHO_FIELD_NIP)) ! || ((((acptr->ip.s_addr & imask.mask.s_addr) != ! imask.bits.s_addr)) || (imask.fall ! && matchexec(inet_ntoa(acptr->ip), mymask, minlen))))) ! continue; ! #endif if (!SHOW_MORE(sptr, counter)) break; do_who(sptr, acptr, chptr, fields, qrt); *************** *** 588,594 **** continue; if (!(SEE_USER(sptr, acptr, bitsel))) continue; ! #ifdef DB_HISPANO /* tengo ke pensar un rato en ello. 1999/09/14 savage@apostols.org */ if ((mask) && ((!(matchsel & WHO_FIELD_NIC)) --- 606,612 ---- continue; if (!(SEE_USER(sptr, acptr, bitsel))) continue; ! #ifdef DBH_VIP /* tengo ke pensar un rato en ello. 1999/09/14 savage@apostols.org */ if ((mask) && ((!(matchsel & WHO_FIELD_NIC)) *************** *** 755,761 **** #ifdef DBH_VIP sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, ! IsHiddenViewer(sptr)?acptr->user->host:get_virtualhost(acptr), acptr->info); #else sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, user->host, acptr->info); --- 773,779 ---- #ifdef DBH_VIP sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, ! get_visiblehost(acptr,sptr), acptr->info); #else sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, user->host, acptr->info); *************** *** 830,838 **** sendto_one(sptr, rpl_str(RPL_WHOISHELPOP), me.name, parv[0], name); #ifdef DBH_VIP ! if (IsHidden(acptr) && IsHiddenViewer(sptr)) sendto_one(sptr, rpl_str(RPL_WHOISHOST), ! me.name, parv[0], name, user->host, inetntoa(acptr->ip)); #endif /* DBH_VIP */ #endif --- 848,856 ---- sendto_one(sptr, rpl_str(RPL_WHOISHELPOP), me.name, parv[0], name); #ifdef DBH_VIP ! if (IsHidden(acptr) && ( IsHiddenViewer(sptr) || acptr == sptr ) ) sendto_one(sptr, rpl_str(RPL_WHOISHOST), ! me.name, parv[0], name, get_virtualhost(acptr)); #endif /* DBH_VIP */ #endif *************** *** 861,867 **** #ifdef DBH_VIP sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, ! get_virtualhost(acptr), acptr->info); #else sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, --- 879,885 ---- #ifdef DBH_VIP sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name, parv[0], name, user->username, ! get_visiblehost(acptr,sptr), acptr->info); #else sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name,