Index: ../ircu2.10.06/tener_en_cuenta.jcea =================================================================== RCS file: /cvsroot/ircd/tener_en_cuenta.jcea,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** ../ircu2.10.06/tener_en_cuenta.jcea 1999/10/27 11:46:00 1.2 --- ../ircu2.10.06/tener_en_cuenta.jcea 1999/10/27 22:15:56 1.3 *************** *** 5,7 **** --- 5,13 ---- 27/Oct/99 Solo se conservan en memoria los registros que afectan al servidor en concreto. + + 27/Oct/99 + "make install" elimina las BDD que no se + estan empleando. Por tanto hay que modificar + el "Makefile" si se an~aden BDD nuevas. + Index: ../ircu2.10.06/todo.jcea =================================================================== RCS file: /cvsroot/ircd/todo.jcea,v retrieving revision 1.24 retrieving revision 1.28 diff -c -r1.24 -r1.28 *** ../ircu2.10.06/todo.jcea 1999/10/27 14:42:12 1.24 --- ../ircu2.10.06/todo.jcea 1999/11/02 20:42:06 1.28 *************** *** 1,3 **** --- 1,28 ---- + 02/Nov/99 + Cuando se ordena el borrado de una BDD, no podemos + estar seguros de que el HUB haya propagado la orden + a traves de la red ANTES de cortar sus enlaces + con el resto de nodos. + + 02/Nov/99 + Algunas rutinas usan malloc para normalizar un + valor que les llega, y al final de la misma + liberan con free. Esas operaciones son lentas y + pueden provocar fragmentación de memoria. Es + preferible que esas rutinas hagan el malloc una + sola vez, el principio de su ejecución, y + conserven el buffer en una variable estática. + + 02/Nov/99 + Deberia definirse un "pool" de structuras hash + para no tener que hacer un malloc para cada una + de ellas. Es decir, algo como hacer malloc de + grupos de 100 estructuras, por ejemplo. De esta + forma la peticiones de memoria son mas rapidas, + y la carga en memoria del malloc es menor + (porque se pide un objeto grande en vez de muchos + pequen~os). + 27/Oct/99 Cuando un mismo registro tiene varios destinatarios, en cada servidor se almacena en memoria solo el mas *************** *** 35,40 **** --- 60,73 ---- Ojo con la entrada de nuevos registros (hay que ampliar el mmap), con su borrado y, sobre todo, con la compactacion de la BDD. + + Aunque este sistema es rapido y ocupa muy poca + memoria, tiene el problema del arranque, cuando + hay que leer la BDD a memoria. Tal vez sea + conveniente adoptar alguna herramienta tipo GDBM. + El problema de ese enfoque es comprobar la + integridad de la BDD, ademas de que las + compactaciones seguirian siendo lentas. 27/Oct/99 Si un usuario tiene varios nicks registrados, Index: ../ircu2.10.06/ircd/s_bdd.c =================================================================== RCS file: /cvsroot/ircd/ircd/s_bdd.c,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** ../ircu2.10.06/ircd/s_bdd.c 1999/10/27 14:53:39 1.13 --- ../ircu2.10.06/ircd/s_bdd.c 1999/11/02 20:52:04 1.14 *************** *** 1093,1098 **** --- 1093,1118 ---- case 'D': if (!es_hub) return 0; + + /* + ** Debemos enviar el broadcast ANTES de + ** cortar los enlaces. + */ + sprintf(db_buf, "%s DB %s 0 D %s %c", + NumServ(sptr), parv[1], parv[4], que_bdd); + for (lp = me.serv->down; lp; lp = lp->next) + { + if (lp->value.cptr == cptr) + continue; + /* + ** No sabemos si la otra punta + ** va a cumplir la mascara, asi que + ** nos curamos en salud. + */ + lp->value.cptr->serv->esnet_db &= ~mascara_bdd; + sendto_one(lp->value.cptr, db_buf); + } + /* ** Por bug en lastNNServer no se puede usar 'find_match_server()' */ *************** *** 1125,1144 **** */ sendto_one(cptr, "%s DB %s 0 J %lu %c", NumServ(&me), cptr->name, tabla_serie[que_bdd], que_bdd); - sprintf(db_buf, "%s DB %s 0 D %s %c", - NumServ(sptr), parv[1], parv[4], que_bdd); - for (lp = me.serv->down; lp; lp = lp->next) - { - if (lp->value.cptr == cptr) - continue; - /* - ** No sabemos si la otra punta - ** va a cumplir la mascara, asi que - ** nos curamos en salud. - */ - lp->value.cptr->serv->esnet_db &= ~mascara_bdd; - sendto_one(lp->value.cptr, db_buf); - } return 0; break; --- 1145,1150 ---- Index: ../ircu2.10.06/ircd/s_debug.c =================================================================== RCS file: /cvsroot/ircd/ircd/s_debug.c,v retrieving revision 1.73 retrieving revision 1.74 diff -c -r1.73 -r1.74 *** ../ircu2.10.06/ircd/s_debug.c 1999/10/27 14:42:13 1.73 --- ../ircu2.10.06/ircd/s_debug.c 1999/11/02 20:52:04 1.74 *************** *** 191,197 **** '-', #endif #endif ! 'D','B','4','9', #ifdef DB_ESNET '+', #else --- 191,197 ---- '-', #endif #endif ! 'D','B','5','0', #ifdef DB_ESNET '+', #else