X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/c961476e55ec9833ffcb271b54b07e1f9f5d6caa..2f15f871ffab59031f6fe581e44ce85e08dedf67:/src/s_serv.c diff --git a/src/s_serv.c b/src/s_serv.c index 8cadc51..43276b7 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -21,7 +21,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: s_serv.c 3233 2007-03-05 17:28:27Z nenolod $ + * $Id: s_serv.c 3542 2007-08-01 20:18:12Z jilles $ */ #include "stdinc.h" @@ -57,6 +57,7 @@ #include "channel.h" /* chcap_usage_counts stuff... */ #include "hook.h" #include "msg.h" +#include "reject.h" extern char *crypt(); @@ -1103,6 +1104,7 @@ server_estab(struct Client *client_p) set_chcap_usage_counts(client_p); dlinkAdd(client_p, &client_p->lnode, &me.serv->servers); + del_unknown_ip(client_p); dlinkMoveNode(&client_p->localClient->tnode, &unknown_list, &serv_list); dlinkAddTailAlloc(client_p, &global_serv_list); @@ -1129,6 +1131,11 @@ server_estab(struct Client *client_p) client_p->localClient->firsttime = CurrentTime; /* fixing eob timings.. -gnp */ + if((dlink_list_length(&lclient_list) + dlink_list_length(&serv_list)) > + (unsigned long)MaxConnectionCount) + MaxConnectionCount = dlink_list_length(&lclient_list) + + dlink_list_length(&serv_list); + /* Show the real host/IP to admins */ sendto_realops_snomask(SNO_GENERAL, L_ALL, "Link with %s established: (%s) link", @@ -1368,8 +1375,10 @@ fork_server(struct Client *server) goto fork_error; else if(ret == 0) { + int maxconn = comm_get_maxconnections(); + /* set our fds as non blocking and close everything else */ - for (i = 0; i < HARD_FDLIMIT; i++) + for (i = 0; i < maxconn; i++) {