[svn] - remove ALL braindead 2.8 I/O artifacts: MASTER_MAX, HARD_FDLIMIT, HARD_FDLIMIT_, MAXCONNECTIONS, MAX_CLIENTS, etc.
they are ALL gone. all of this stuff is now determined at runtime via getrlimit(2). - due to this, devpoll is broken. i'm not motivated to fix it at the moment.
This commit is contained in:
parent
f71e18eee5
commit
6fcb8629ae
17 changed files with 87 additions and 89 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
jilles 2007/04/02 22:03:08 UTC (20070402-3350)
|
||||||
|
Log:
|
||||||
|
Repair operspy who !#channel, broken by me in r3283.
|
||||||
|
|
||||||
|
|
||||||
|
Changes: Modified:
|
||||||
|
+2 -2 trunk/modules/m_who.c (File Modified)
|
||||||
|
|
||||||
|
|
||||||
jilles 2007/04/01 22:20:00 UTC (20070401-3344)
|
jilles 2007/04/01 22:20:00 UTC (20070401-3344)
|
||||||
Log:
|
Log:
|
||||||
Update bug report and IRC channel information.
|
Update bug report and IRC channel information.
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: config.h 1701 2006-06-27 16:25:52Z jilles $
|
* $Id: config.h 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_config_h
|
#ifndef INCLUDED_config_h
|
||||||
|
@ -146,11 +146,6 @@
|
||||||
*/
|
*/
|
||||||
#define MAX_BUFFER 60
|
#define MAX_BUFFER 60
|
||||||
|
|
||||||
/* HARD_FDLIMIT_
|
|
||||||
* The maximum amount of FDs to use. MAX_CLIENTS is set in ./configure.
|
|
||||||
*/
|
|
||||||
#define HARD_FDLIMIT_ MAX_CLIENTS + MAX_BUFFER + 20
|
|
||||||
|
|
||||||
#define CONFIG_RATBOX_LEVEL_2
|
#define CONFIG_RATBOX_LEVEL_2
|
||||||
|
|
||||||
#include "defaults.h"
|
#include "defaults.h"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: config.h.dist 3275 2007-03-18 16:29:31Z jilles $
|
* $Id: config.h.dist 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_config_h
|
#ifndef INCLUDED_config_h
|
||||||
|
@ -159,11 +159,6 @@
|
||||||
*/
|
*/
|
||||||
#define MAX_BUFFER 60
|
#define MAX_BUFFER 60
|
||||||
|
|
||||||
/* HARD_FDLIMIT_
|
|
||||||
* The maximum amount of FDs to use. MAX_CLIENTS is set in ./configure.
|
|
||||||
*/
|
|
||||||
#define HARD_FDLIMIT_ MAX_CLIENTS + MAX_BUFFER + 20
|
|
||||||
|
|
||||||
#define CONFIG_RATBOX_LEVEL_2
|
#define CONFIG_RATBOX_LEVEL_2
|
||||||
|
|
||||||
#include "defaults.h"
|
#include "defaults.h"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: defaults.h 6 2005-09-10 01:02:21Z nenolod $
|
* $Id: defaults.h 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_defaults_h
|
#ifndef INCLUDED_defaults_h
|
||||||
|
@ -34,12 +34,6 @@
|
||||||
/*
|
/*
|
||||||
* First, set other fd limits based on values from user
|
* First, set other fd limits based on values from user
|
||||||
*/
|
*/
|
||||||
#ifndef HARD_FDLIMIT_
|
|
||||||
error HARD_FDLIMIT_ undefined
|
|
||||||
#endif
|
|
||||||
#define HARD_FDLIMIT (HARD_FDLIMIT_ - 10)
|
|
||||||
#define MAXCONNECTIONS HARD_FDLIMIT
|
|
||||||
#define MASTER_MAX (HARD_FDLIMIT - MAX_BUFFER)
|
|
||||||
/* class {} default values */
|
/* class {} default values */
|
||||||
#define DEFAULT_SENDQ 20000000 /* default max SendQ */
|
#define DEFAULT_SENDQ 20000000 /* default max SendQ */
|
||||||
#define PORTNUM 6667 /* default outgoing portnum */
|
#define PORTNUM 6667 /* default outgoing portnum */
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: m_info.h 70 2005-09-10 07:03:09Z nenolod $
|
* $Id: m_info.h 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_m_info_h
|
#ifndef INCLUDED_m_info_h
|
||||||
|
@ -64,9 +64,6 @@ Info MyInformation[] = {
|
||||||
{"RESVPATH", "NONE", 0, "Path to resv file"},
|
{"RESVPATH", "NONE", 0, "Path to resv file"},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{"HARD_FDLIMIT_", "", HARD_FDLIMIT_,
|
|
||||||
"Maximum Number of File Descriptors Available"},
|
|
||||||
|
|
||||||
#ifdef HPATH
|
#ifdef HPATH
|
||||||
{"HPATH", HPATH, 0, "Path to Operator Help Files"},
|
{"HPATH", HPATH, 0, "Path to Operator Help Files"},
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define SERNO "20070401-3344"
|
#define SERNO "20070402-3350"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: commio.c 3247 2007-03-05 18:42:24Z nenolod $
|
* $Id: commio.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libcharybdis.h"
|
#include "libcharybdis.h"
|
||||||
|
@ -56,6 +56,7 @@ static void comm_connect_callback(int fd, int status);
|
||||||
static PF comm_connect_timeout;
|
static PF comm_connect_timeout;
|
||||||
static void comm_connect_dns_callback(void *vptr, struct DNSReply *reply);
|
static void comm_connect_dns_callback(void *vptr, struct DNSReply *reply);
|
||||||
static PF comm_connect_tryconnect;
|
static PF comm_connect_tryconnect;
|
||||||
|
static int comm_max_connections = 0;
|
||||||
|
|
||||||
inline fde_t *
|
inline fde_t *
|
||||||
comm_locate_fd(int fd)
|
comm_locate_fd(int fd)
|
||||||
|
@ -140,10 +141,11 @@ comm_close_all(void)
|
||||||
int fd;
|
int fd;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XXX someone tell me why we care about 4 fd's ? */
|
/*
|
||||||
/* XXX btw, fd 3 is used for profiler ! */
|
* we start at 4 to avoid giving fds where malloc messages
|
||||||
|
* could be written --nenolod
|
||||||
for (i = 4; i < MAXCONNECTIONS; ++i)
|
*/
|
||||||
|
for (i = 4; i < comm_max_connections; ++i)
|
||||||
{
|
{
|
||||||
fde_t *F = comm_locate_fd(i);
|
fde_t *F = comm_locate_fd(i);
|
||||||
|
|
||||||
|
@ -600,7 +602,7 @@ comm_socket(int family, int sock_type, int proto, const char *note)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
/* First, make sure we aren't going to run out of file descriptors */
|
/* First, make sure we aren't going to run out of file descriptors */
|
||||||
if(number_fd >= MASTER_MAX)
|
if(number_fd >= comm_max_connections)
|
||||||
{
|
{
|
||||||
errno = ENFILE;
|
errno = ENFILE;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -658,7 +660,7 @@ int
|
||||||
comm_accept(int fd, struct sockaddr *pn, socklen_t *addrlen)
|
comm_accept(int fd, struct sockaddr *pn, socklen_t *addrlen)
|
||||||
{
|
{
|
||||||
int newfd;
|
int newfd;
|
||||||
if(number_fd >= MASTER_MAX)
|
if(number_fd >= comm_max_connections)
|
||||||
{
|
{
|
||||||
errno = ENFILE;
|
errno = ENFILE;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -722,7 +724,7 @@ fdlist_update_biggest(int fd, int opening)
|
||||||
{
|
{
|
||||||
if(fd < highest_fd)
|
if(fd < highest_fd)
|
||||||
return;
|
return;
|
||||||
s_assert(fd < MAXCONNECTIONS);
|
s_assert(fd < comm_max_connections);
|
||||||
|
|
||||||
if(fd > highest_fd)
|
if(fd > highest_fd)
|
||||||
{
|
{
|
||||||
|
@ -749,10 +751,16 @@ void
|
||||||
fdlist_init(void)
|
fdlist_init(void)
|
||||||
{
|
{
|
||||||
static int initialized = 0;
|
static int initialized = 0;
|
||||||
|
struct rlimit limit;
|
||||||
|
|
||||||
if(!initialized)
|
if(!initialized)
|
||||||
{
|
{
|
||||||
memset(&fd_table, '\0', sizeof(dlink_list) * FD_HASH_SIZE);
|
memset(&fd_table, '\0', sizeof(dlink_list) * FD_HASH_SIZE);
|
||||||
|
|
||||||
|
/* set up comm_max_connections. */
|
||||||
|
if(!getrlimit(RLIMIT_NOFILE, &limit))
|
||||||
|
comm_max_connections = limit.rlim_cur;
|
||||||
|
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -870,4 +878,10 @@ comm_note(int fd, const char *format, ...)
|
||||||
F->desc[0] = '\0';
|
F->desc[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int
|
||||||
|
comm_get_maxconnections(void)
|
||||||
|
{
|
||||||
|
fdlist_init();
|
||||||
|
|
||||||
|
return comm_max_connections;
|
||||||
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: commio.h 3229 2007-03-05 17:23:07Z nenolod $
|
* $Id: commio.h 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_commio_h
|
#ifndef INCLUDED_commio_h
|
||||||
|
@ -188,6 +188,8 @@ extern void mangle_mapped_sockaddr(struct sockaddr *in);
|
||||||
#define mangle_mapped_sockaddr(x)
|
#define mangle_mapped_sockaddr(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int comm_get_maxconnections(void);
|
||||||
|
|
||||||
extern fde_t *comm_locate_fd(int fd);
|
extern fde_t *comm_locate_fd(int fd);
|
||||||
|
|
||||||
#endif /* INCLUDED_commio_h */
|
#endif /* INCLUDED_commio_h */
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: devpoll.c 3229 2007-03-05 17:23:07Z nenolod $
|
* $Id: devpoll.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
@ -32,8 +32,7 @@
|
||||||
|
|
||||||
#include "libcharybdis.h"
|
#include "libcharybdis.h"
|
||||||
|
|
||||||
#define POLL_LENGTH HARD_FDLIMIT
|
#define POLL_LENGTH 1024
|
||||||
|
|
||||||
|
|
||||||
static void devpoll_update_events(int, short, PF *);
|
static void devpoll_update_events(int, short, PF *);
|
||||||
static int dpfd;
|
static int dpfd;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: poll.c 3245 2007-03-05 18:41:14Z nenolod $
|
* $Id: poll.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
@ -63,14 +63,15 @@ void
|
||||||
init_netio(void)
|
init_netio(void)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
int maxconn = comm_get_maxconnections();
|
||||||
|
|
||||||
pollfd_list.pollfds = calloc(sizeof(struct pollfd), MAXCONNECTIONS);
|
pollfd_list.pollfds = calloc(sizeof(struct pollfd), maxconn);
|
||||||
|
|
||||||
for (fd = 0; fd < MAXCONNECTIONS; fd++)
|
for (fd = 0; fd < maxconn; fd++)
|
||||||
pollfd_list.pollfds[fd].fd = -1;
|
pollfd_list.pollfds[fd].fd = -1;
|
||||||
|
|
||||||
pollfd_list.maxindex = 0;
|
pollfd_list.maxindex = 0;
|
||||||
pollfd_list.allocated = MAXCONNECTIONS;
|
pollfd_list.allocated = maxconn;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
|
@ -22,16 +22,13 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: select.c 3229 2007-03-05 17:23:07Z nenolod $
|
* $Id: select.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "libcharybdis.h"
|
#include "libcharybdis.h"
|
||||||
|
|
||||||
#if HARD_FDLIMIT_ >= FD_SETSIZE
|
|
||||||
#error HARD_FDLIMIT_ must be less than FD_SETSIZE(try using poll instead of select)
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* Note that this is only a single list - multiple lists is kinda pointless
|
* Note that this is only a single list - multiple lists is kinda pointless
|
||||||
* under select because the list size is a function of the highest FD :-)
|
* under select because the list size is a function of the highest FD :-)
|
||||||
|
|
11
src/ircd.c
11
src/ircd.c
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: ircd.c 3251 2007-03-05 18:58:38Z nenolod $
|
* $Id: ircd.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdinc.h"
|
#include "stdinc.h"
|
||||||
|
@ -144,15 +144,6 @@ init_sys(void)
|
||||||
|
|
||||||
if(!getrlimit(RLIMIT_FD_MAX, &limit))
|
if(!getrlimit(RLIMIT_FD_MAX, &limit))
|
||||||
{
|
{
|
||||||
if(limit.rlim_max < MAXCONNECTIONS)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ircd's bootstrap fd table is too big\n");
|
|
||||||
fprintf(stderr, "Hard Limit: %ld bootstrap size: %d\n",
|
|
||||||
(long) limit.rlim_max, MAXCONNECTIONS);
|
|
||||||
fprintf(stderr, "Fix MAXCONNECTIONS\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
|
limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
|
||||||
if(setrlimit(RLIMIT_FD_MAX, &limit) == -1)
|
if(setrlimit(RLIMIT_FD_MAX, &limit) == -1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: listener.c 1675 2006-06-15 22:32:23Z jilles $
|
* $Id: listener.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdinc.h"
|
#include "stdinc.h"
|
||||||
|
@ -194,7 +194,11 @@ inetport(listener_t *listener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* At one point, we enforced a strange arbitrary limit here.
|
||||||
|
* We no longer do this, and just check if the fd is valid or not.
|
||||||
|
* -nenolod
|
||||||
|
*/
|
||||||
if(fd == -1)
|
if(fd == -1)
|
||||||
{
|
{
|
||||||
report_error("opening listener socket %s:%s",
|
report_error("opening listener socket %s:%s",
|
||||||
|
@ -202,14 +206,7 @@ inetport(listener_t *listener)
|
||||||
get_listener_name(listener), errno);
|
get_listener_name(listener), errno);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if((HARD_FDLIMIT - 10) < fd)
|
|
||||||
{
|
|
||||||
report_error("no more connections left for listener %s:%s",
|
|
||||||
get_listener_name(listener),
|
|
||||||
get_listener_name(listener), errno);
|
|
||||||
comm_close(fd);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* XXX - we don't want to do all this crap for a listener
|
* XXX - we don't want to do all this crap for a listener
|
||||||
* set_sock_opts(listener);
|
* set_sock_opts(listener);
|
||||||
|
@ -488,14 +485,13 @@ static void
|
||||||
accept_connection(int pfd, void *data)
|
accept_connection(int pfd, void *data)
|
||||||
{
|
{
|
||||||
static time_t last_oper_notice = 0;
|
static time_t last_oper_notice = 0;
|
||||||
|
|
||||||
struct irc_sockaddr_storage sai;
|
struct irc_sockaddr_storage sai;
|
||||||
socklen_t addrlen = sizeof(sai);
|
socklen_t addrlen = sizeof(sai);
|
||||||
int fd;
|
int fd;
|
||||||
listener_t *listener = data;
|
listener_t *listener = data;
|
||||||
struct ConfItem *aconf;
|
struct ConfItem *aconf;
|
||||||
char buf[BUFSIZE];
|
char buf[BUFSIZE];
|
||||||
|
|
||||||
s_assert(listener != NULL);
|
s_assert(listener != NULL);
|
||||||
if(listener == NULL)
|
if(listener == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -525,8 +521,9 @@ accept_connection(int pfd, void *data)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* check for connection limit
|
* check for connection limit
|
||||||
|
* TBD: this is stupid... either we have a socket or we don't. -nenolod
|
||||||
*/
|
*/
|
||||||
if((MAXCONNECTIONS - 10) < fd)
|
if((comm_get_maxconnections() - 10) < fd)
|
||||||
{
|
{
|
||||||
++ServerStats->is_ref;
|
++ServerStats->is_ref;
|
||||||
/*
|
/*
|
||||||
|
@ -554,19 +551,19 @@ accept_connection(int pfd, void *data)
|
||||||
{
|
{
|
||||||
ServerStats->is_ref++;
|
ServerStats->is_ref++;
|
||||||
|
|
||||||
if(ConfigFileEntry.dline_with_reason)
|
if(ConfigFileEntry.dline_with_reason)
|
||||||
{
|
{
|
||||||
if (ircsnprintf(buf, sizeof(buf), "ERROR :*** Banned: %s\r\n", aconf->passwd) >= (sizeof(buf)-1))
|
if (ircsnprintf(buf, sizeof(buf), "ERROR :*** Banned: %s\r\n", aconf->passwd) >= (sizeof(buf)-1))
|
||||||
{
|
{
|
||||||
buf[sizeof(buf) - 3] = '\r';
|
buf[sizeof(buf) - 3] = '\r';
|
||||||
buf[sizeof(buf) - 2] = '\n';
|
buf[sizeof(buf) - 2] = '\n';
|
||||||
buf[sizeof(buf) - 1] = '\0';
|
buf[sizeof(buf) - 1] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ircsprintf(buf, "ERROR :You have been D-lined.\r\n");
|
ircsprintf(buf, "ERROR :You have been D-lined.\r\n");
|
||||||
|
|
||||||
write(fd, buf, strlen(buf));
|
write(fd, buf, strlen(buf));
|
||||||
comm_close(fd);
|
comm_close(fd);
|
||||||
|
|
||||||
/* Re-register a new IO request for the next accept .. */
|
/* Re-register a new IO request for the next accept .. */
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: restart.c 3249 2007-03-05 18:51:17Z nenolod $
|
* $Id: restart.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdinc.h"
|
#include "stdinc.h"
|
||||||
|
@ -55,6 +55,7 @@ void
|
||||||
server_reboot(void)
|
server_reboot(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
int maxconn = comm_get_maxconnections();
|
||||||
|
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "Restarting server...");
|
sendto_realops_snomask(SNO_GENERAL, L_ALL, "Restarting server...");
|
||||||
|
|
||||||
|
@ -69,7 +70,7 @@ server_reboot(void)
|
||||||
* bah, for now, the program ain't coming back to here, so forcibly
|
* bah, for now, the program ain't coming back to here, so forcibly
|
||||||
* close everything the "wrong" way for now, and just LEAVE...
|
* close everything the "wrong" way for now, and just LEAVE...
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < MAXCONNECTIONS; ++i)
|
for (i = 0; i < maxconn; ++i)
|
||||||
close(i);
|
close(i);
|
||||||
|
|
||||||
unlink(pidFileName);
|
unlink(pidFileName);
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: s_auth.c 3161 2007-01-25 07:23:01Z nenolod $ */
|
* $Id: s_auth.c 3354 2007-04-03 09:21:31Z nenolod $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Changes:
|
* Changes:
|
||||||
|
@ -286,7 +286,11 @@ start_auth_query(struct AuthRequest *auth)
|
||||||
++ServerStats->is_abad;
|
++ServerStats->is_abad;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if((MAXCONNECTIONS - 10) < fd)
|
|
||||||
|
/*
|
||||||
|
* TBD: this is a pointless arbitrary limit .. we either have a socket or not. -nenolod
|
||||||
|
*/
|
||||||
|
if((comm_get_maxconnections() - 10) < fd)
|
||||||
{
|
{
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||||
"Can't allocate fd for auth on %s",
|
"Can't allocate fd for auth on %s",
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: s_conf.c 3271 2007-03-18 14:44:24Z jilles $
|
* $Id: s_conf.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdinc.h"
|
#include "stdinc.h"
|
||||||
|
@ -852,7 +852,7 @@ set_default_conf(void)
|
||||||
ConfigFileEntry.reject_ban_time = 300;
|
ConfigFileEntry.reject_ban_time = 300;
|
||||||
ConfigFileEntry.reject_duration = 120;
|
ConfigFileEntry.reject_duration = 120;
|
||||||
|
|
||||||
ServerInfo.max_clients = MAXCONNECTIONS;
|
ServerInfo.max_clients = comm_get_maxconnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef YES
|
#undef YES
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
* $Id: s_serv.c 3233 2007-03-05 17:28:27Z nenolod $
|
* $Id: s_serv.c 3354 2007-04-03 09:21:31Z nenolod $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdinc.h"
|
#include "stdinc.h"
|
||||||
|
@ -1368,8 +1368,10 @@ fork_server(struct Client *server)
|
||||||
goto fork_error;
|
goto fork_error;
|
||||||
else if(ret == 0)
|
else if(ret == 0)
|
||||||
{
|
{
|
||||||
|
int maxconn = comm_get_maxconnections();
|
||||||
|
|
||||||
/* set our fds as non blocking and close everything else */
|
/* set our fds as non blocking and close everything else */
|
||||||
for (i = 0; i < HARD_FDLIMIT; i++)
|
for (i = 0; i < maxconn; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue