* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
- * $Id: s_serv.c 2723 2006-11-09 23:35:48Z jilles $
+ * $Id: s_serv.c 3354 2007-04-03 09:21:31Z nenolod $
*/
#include "stdinc.h"
* Assume it's me, if no server
*/
if(parc <= server || EmptyString(parv[server]) ||
- match(me.name, parv[server]) || match(parv[server], me.name) ||
- (strcmp(parv[server], me.id) == 0))
+ match(parv[server], me.name) || (strcmp(parv[server], me.id) == 0))
return (HUNTED_ISME);
new = LOCAL_COPY(parv[server]);
if(target_p->from == source_p->from && !MyConnect(target_p))
target_p = NULL;
- if(target_p == NULL && (target_p = find_server(source_p, new)))
- if(target_p->from == source_p->from && !MyConnect(target_p))
- target_p = NULL;
-
collapse(new);
wilds = (strchr(new, '?') || strchr(new, '*'));
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++)
{
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);
}
/* 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 */