diff -rcN ../ircu2.10.06.DBH5/CAMBIOS ../ircu2.10.06.DBH6/CAMBIOS *** ../ircu2.10.06.DBH5/CAMBIOS Mon Jul 19 16:43:33 1999 --- ../ircu2.10.06.DBH6/CAMBIOS Wed Jul 21 01:35:19 1999 *************** *** 1,3 **** --- 1,29 ---- + * 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 + por la llegada de un registro DBH, como hasta ahora. + + Introduce algunos cambios cosmeticos en la consulta de la BD + (comando DBH en modo user). + + Como estaba mirando la causa de que los DBH2 regalen modos +k a + los users, he cambiado a logica positiva la parte del condicional que + hace que NO sea aceptado el modo +k cuando: + + - no lo tenias y no eres server y no eres ircop + y no (estas registrado y estas en la DB de OPERS) + + en lugar de la equivalente pero menos inteligible: + + - no lo tenias y no eres server y no eres ircop + y (no estas registrado o no estas en la DB de OPERS) + + Aunque el bug quedo solucionado en DBH3. + + 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 diff -rcN ../ircu2.10.06.DBH5/ircd/s_debug.c ../ircu2.10.06.DBH6/ircd/s_debug.c *** ../ircu2.10.06.DBH5/ircd/s_debug.c Wed Jul 21 07:49:11 1999 --- ../ircu2.10.06.DBH6/ircd/s_debug.c Wed Jul 21 06:33:07 1999 *************** *** 202,210 **** #endif #ifdef DB_HISPANO '.','I','R','C','-', 'H','I','S','P','A','N','O','.','O','R','G',':', ! 'D','B','H' ,'5','+', ! 'N', 'r','+', 'O', #ifdef DBH_OPER_HACK --- 202,210 ---- #endif #ifdef DB_HISPANO '.','I','R','C','-', 'H','I','S','P','A','N','O','.','O','R','G',':', ! 'D','B','H' ,'6','+', ! 'N','+', 'O', #ifdef DBH_OPER_HACK diff -rcN ../ircu2.10.06.DBH5/ircd/s_serv.c ../ircu2.10.06.DBH6/ircd/s_serv.c *** ../ircu2.10.06.DBH5/ircd/s_serv.c Mon Jul 19 16:43:34 1999 --- ../ircu2.10.06.DBH6/ircd/s_serv.c Wed Jul 21 01:19:47 1999 *************** *** 1280,1291 **** RunFree(c); - if(tabla==DBH_NICKDB || tabla==ESNET_NICKDB) - { - /* si borramos un nick, le hacemos un -r y lo propagamos */ - dbh_cambiar_registro_nick(clave, '-'); - } - return; } --- 1280,1285 ---- *************** *** 1367,1378 **** tabla_cuantos[tabla]++; - if(tabla==DBH_NICKDB || tabla==ESNET_NICKDB) - { - /* si metemos un nick, le ponemos el +r y lo propagamos */ - dbh_cambiar_registro_nick(clave, '+'); - } - return; } --- 1361,1366 ---- *************** *** 1777,1789 **** void dbh_guardar_version (char tabla, unsigned long version) { FILE *f; ! char fichero[100]; /* guardo en memoria */ tabla_version[tabla]=version; /* guardo en disco */ ! sprintf_irc(fichero, "version.%c", tabla); alarm(3); f=fopen(fichero,"w"); if(f) { --- 1765,1777 ---- void dbh_guardar_version (char tabla, unsigned long version) { FILE *f; ! char fichero[1024]; /* guardo en memoria */ tabla_version[tabla]=version; /* guardo en disco */ ! sprintf_irc(fichero, "%s/version.%c", DBPATH, tabla); alarm(3); f=fopen(fichero,"w"); if(f) { *************** *** 1804,1816 **** unsigned long dbh_leer_version (char tabla) { FILE *f; ! char fichero[100]; char buff[512]; buff[0]=0; /* guardo en disco */ ! sprintf_irc(fichero, "version.%c", tabla); alarm(3); f=fopen(fichero,"r"); if(f) { --- 1792,1804 ---- unsigned long dbh_leer_version (char tabla) { FILE *f; ! char fichero[1024]; char buff[512]; buff[0]=0; /* guardo en disco */ ! sprintf_irc(fichero, "%s/version.%c", DBPATH, tabla); alarm(3); f=fopen(fichero,"r"); if(f) { *************** *** 1834,1843 **** FILE *dbh_abrir_tabla(char tabla, char *modo) { FILE *f; ! char fichero[100]; alarm(3); ! sprintf_irc(fichero, "tabla.%c", tabla); f=fopen(fichero, modo); alarm(0); --- 1822,1831 ---- FILE *dbh_abrir_tabla(char tabla, char *modo) { FILE *f; ! char fichero[1024]; alarm(3); ! sprintf_irc(fichero, "%s/tabla.%c", DBPATH, tabla); f=fopen(fichero, modo); alarm(0); *************** *** 2014,2021 **** dbh_guardar_version(tabla, version); /* calculo si ha sido correcto */ ! sprintf(tmp1, "tabla.%c", tabla); ! sprintf(tmp2, "tabla.%c", '-'); /* tabla temporal */ if( hash==dbh_hash_tabla('-') && j==serie ) { unlink(tmp1); rename(tmp2,tmp1); --- 2002,2009 ---- dbh_guardar_version(tabla, version); /* calculo si ha sido correcto */ ! sprintf(tmp1, "%s/tabla.%c", DBPATH, tabla); ! sprintf(tmp2, "%s/tabla.%c", DBPATH, '-'); /* tabla temporal */ if( hash==dbh_hash_tabla('-') && j==serie ) { unlink(tmp1); rename(tmp2,tmp1); *************** *** 2086,2094 **** return 0; } ! sendto_one(cptr,":%s NOTICE %s :Destino='%s' Valor='%s'", me.name, parv[0], ! reg->destino, reg->valor); return 0; } --- 2074,2082 ---- return 0; } ! sendto_one(cptr,":%s NOTICE %s :T='%c' D='%s' C='%s' V='%s'", me.name, parv[0], ! *parv[1], reg->destino, reg->clave, reg->valor); return 0; } diff -rcN ../ircu2.10.06.DBH5/ircd/s_user.c ../ircu2.10.06.DBH6/ircd/s_user.c *** ../ircu2.10.06.DBH5/ircd/s_user.c Mon Jul 19 16:43:33 1999 --- ../ircu2.10.06.DBH6/ircd/s_user.c Wed Jul 21 00:38:14 1999 *************** *** 2840,2848 **** /* new umode; servers can set it, local users cannot; * prevents users from /kick'ing or /mode -o'ing */ #if defined(DB_HISPANO) || defined(DB_ESNET) ! /* el modo +r del usuario no se lo puede poner uno mismo */ ! if(!(sethmodes & HMODE_NICKREGISTERED) && !IsServer(cptr)) ! ClearNickRegistered(sptr); #endif /* --- 2840,2852 ---- /* new umode; servers can set it, local users cannot; * prevents users from /kick'ing or /mode -o'ing */ #if defined(DB_HISPANO) || defined(DB_ESNET) ! /* el modo +/-r solo se acepta de los Servidores */ ! if(!IsServer(cptr)) { ! if(sethmodes & HMODE_NICKREGISTERED) ! SetNickRegistered(sptr); ! else ! ClearNickRegistered(sptr); ! } #endif /* *************** *** 2854,2860 **** && !IsOper(sptr) #endif #if defined(DB_HISPANO) && defined(DBH_OPER_HACK_KMODE) ! && ( !IsNickRegistered(sptr) || !dbh_buscar_registro_local(DBH_OPERDB,sptr->name) ) #endif ) sptr->flags &= ~FLAGS_CHSERV; --- 2858,2864 ---- && !IsOper(sptr) #endif #if defined(DB_HISPANO) && defined(DBH_OPER_HACK_KMODE) ! && !( IsNickRegistered(sptr) && dbh_buscar_registro_local(DBH_OPERDB,sptr->name) ) #endif ) sptr->flags &= ~FLAGS_CHSERV;