X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/4d7a1ee5d1f53fab128cceef8a57f2aa5746977a..6fcb8629ae638cceeead036a7240821c9886fe0f:/src/s_serv.c diff --git a/src/s_serv.c b/src/s_serv.c index 9df924d..86b4bfe 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 3183 2007-02-01 01:07:42Z jilles $ + * $Id: s_serv.c 3354 2007-04-03 09:21:31Z nenolod $ */ #include "stdinc.h" @@ -1368,8 +1368,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++) { @@ -1631,6 +1633,7 @@ serv_connect_callback(int fd, int status, void *data) struct Client *client_p = data; struct server_conf *server_p; char *errstr; + fde_t *F = comm_locate_fd(fd); /* First, make sure its a real client! */ s_assert(client_p != NULL); @@ -1649,9 +1652,9 @@ serv_connect_callback(int fd, int status, void *data) } /* Next, for backward purposes, record the ip of the server */ - memcpy(&client_p->localClient->ip, &fd_table[fd].connect.hostaddr, sizeof client_p->localClient->ip); + memcpy(&client_p->localClient->ip, &F->connect.hostaddr, sizeof client_p->localClient->ip); /* Set sockhost properly now -- jilles */ - inetntop_sock((struct sockaddr *)&fd_table[fd].connect.hostaddr, + inetntop_sock((struct sockaddr *)&F->connect.hostaddr, client_p->sockhost, sizeof client_p->sockhost); /* Check the status */