? patch.db27 ? patch.db28 Index: todo.jcea =================================================================== RCS file: /cvsroot/ircd/todo.jcea,v retrieving revision 1.5 retrieving revision 1.7 diff -c -r1.5 -r1.7 *** ../ircu2.10.06/todo.jcea 1999/10/11 18:31:17 1.5 --- ../ircu2.10.06+/todo.jcea 1999/10/13 14:33:23 1.7 *************** *** 1,3 **** --- 1,13 ---- + 13/Oct/99 + BDD de clones. + + 13/Oct/99 + La compactacion no elimina registros duplicados. + Ese es un problema cuando, por ejemplo, un usuario + cambia muchas veces la clave de nick entre dos + claves distintas. Los registros con la clave + actual seran mantenidos siempre. + 11/Oct/99 Poner comprobaciones en las lecturas de disco, y actuar convenientemente ante errores. Index: ircd/s_debug.c =================================================================== RCS file: /cvsroot/ircd/ircd/s_debug.c,v retrieving revision 1.45 retrieving revision 1.46 diff -c -r1.45 -r1.46 *** ../ircu2.10.06/ircd/s_debug.c 1999/10/13 13:06:48 1.45 --- ../ircu2.10.06+/ircd/s_debug.c 1999/10/13 14:32:38 1.46 *************** *** 191,197 **** '-', #endif #endif ! 'D','B','2','7', #ifdef DB_ESNET '+', #else --- 191,197 ---- '-', #endif #endif ! 'D','B','2','8', #ifdef DB_ESNET '+', #else Index: ircd/s_serv.c =================================================================== RCS file: /cvsroot/ircd/ircd/s_serv.c,v retrieving revision 1.29 retrieving revision 1.30 diff -c -r1.29 -r1.30 *** ../ircu2.10.06/ircd/s_serv.c 1999/10/13 13:06:48 1.29 --- ../ircu2.10.06+/ircd/s_serv.c 1999/10/13 14:32:38 1.30 *************** *** 2091,2102 **** if(db<=tabla_serie[que_bdd]) return 0; if(!es_hub) return 0; if(parc==5) sprintf_irc(db_buf,"%s DB %s %lu %s %s", ! NumServ(sptr),parv[1],parv[2],parv[3],parv[4]); else sprintf_irc(db_buf,"%s DB %s %lu %s %s :%s", ! NumServ(sptr),parv[1],parv[2],parv[3],parv[4],parv[5]); for (lp = me.serv->down; lp; lp = lp->next) { --- 2091,2112 ---- if(db<=tabla_serie[que_bdd]) return 0; if(!es_hub) return 0; + /* + ** Ojo, hay que usar 'db' y no 'parv[2]' + ** porque en la cadena de formateo se + ** dice que se le pasa un numero, no + ** una cadena. + ** Se le pasa un numero para que se formatee + ** correctamente, ya que luego sera + ** utilizado en un HASH y todos los + ** nodos deberian dar el mismo valor. + */ if(parc==5) sprintf_irc(db_buf,"%s DB %s %lu %s %s", ! NumServ(sptr),parv[1],db,parv[3],parv[4]); else sprintf_irc(db_buf,"%s DB %s %lu %s %s :%s", ! NumServ(sptr),parv[1],db,parv[3],parv[4],parv[5]); for (lp = me.serv->down; lp; lp = lp->next) {