Subject: Parche Channel Service No Flood Date: Mon, 25 May 1998 20:20:19 +0000 From: "Jesús Cea Avión" Organization: Argo Redes y Servicios Telematicos, S.A. To: Lista IRCops ESNET Este parche define la etiqueta "CSF2", sustituyendo a "CSF" al hacer un "/version". Este parche: a) Permite que un Channel Service entre en un número de canales arbitrario, eliminando el límite de 10 canales por usuario. De esta forma el Argobot, por ejemplo, puede gestionar un número ilimitado de canales sin más que cambiar un "#define" en su código :). b) Para los usuarios normales hay una cierta pausa entre la ejecución de los comandos en situaciones de flood. Para un Channel Service es "legítimo" floodear a su servidor bajo ciertas circunstancias. Ello permite, por ejemplo, entrar en todos los canales programados en un plazo corto, así como responder eficientemente en cosas como mass joins o clearbans. Con este parche los comandos enviados por un Channel Service son procesados sin ninguna penalización. Estos parches deben ser aplicados a la versión de desarrollo del servidor ESNET. >>>>> *** ../ircu2.10.04/ircd/s_bsd.c Mon May 25 16:24:48 1998 --- ../ircu2.10.04+/ircd/s_bsd.c Mon May 25 19:43:13 1998 *************** *** 1531,1537 **** return exit_client(cptr, cptr, &me, "Excess Flood"); while (DBufLength(&cptr->recvQ) && !NoNewLine(cptr) && ! ((cptr->status < STAT_UNKNOWN) || (cptr->since - now < 10))) { /* * If it has become registered as a Server --- 1531,1541 ---- return exit_client(cptr, cptr, &me, "Excess Flood"); while (DBufLength(&cptr->recvQ) && !NoNewLine(cptr) && ! ((cptr->status < STAT_UNKNOWN) || (cptr->since - now < 10) ! #ifdef CS_NO_FLOOD_ESNET ! || (IsChannelService(cptr)) ! #endif ! )) { /* * If it has become registered as a Server *** ../ircu2.10.04/ircd/channel.c Mon May 25 17:59:03 1998 --- ../ircu2.10.04+/ircd/channel.c Mon May 25 17:59:24 1998 *************** *** 2333,2339 **** sendcreate = 1; } ! if (sptr->user->joined >= MAXCHANNELSPERUSER) { sendto_one(sptr, err_str(ERR_TOOMANYCHANNELS), me.name, parv[0], name); --- 2333,2339 ---- sendcreate = 1; } ! if (!IsChannelService(sptr) && (sptr->user->joined >= MAXCHANNELSPERUSER)) { sendto_one(sptr, err_str(ERR_TOOMANYCHANNELS), me.name, parv[0], name); *** ../ircu2.10.04/ircd/s_debug.c Mon May 25 20:01:43 1998 --- ../ircu2.10.04+/ircd/s_debug.c Mon May 25 20:02:25 1998 *************** *** 182,188 **** #else '-', #endif ! 'C','S','F', #ifdef CS_NO_FLOOD_ESNET '+', #else --- 182,188 ---- #else '-', #endif ! 'C','S','F','2', #ifdef CS_NO_FLOOD_ESNET '+', #else <<<<< -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea@argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibnitz