/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2014 Adam <Adam@anope.org>
- * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2009 Uli Schlachter <psychon@znc.in>
- * Copyright (C) 2009 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2014-2015 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2014, 2017 Adam <Adam@anope.org>
+ * Copyright (C) 2013, 2016-2017 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
* Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
*/
-#include "exitcodes.h"
#include "inspircd.h"
#include <sys/poll.h>
std::vector<struct pollfd> events(16);
/** This vector maps fds to an index in the events array.
*/
- std::vector<int> fd_mappings(16);
+ std::vector<int> fd_mappings(16, -1);
}
void SocketEngine::Init()
{
- struct rlimit limits;
- if (!getrlimit(RLIMIT_NOFILE, &limits))
- {
- MAX_DESCRIPTORS = limits.rlim_cur;
- }
- else
- {
- // MAX_DESCRIPTORS is mainly used for display purposes, it's not a problem that getrlimit() failed
- MAX_DESCRIPTORS = -1;
- }
+ LookupMaxFds();
}
void SocketEngine::Deinit()
int processed = 0;
ServerInstance->UpdateTime();
- for (int index = 0; index < CurrentSetSize && processed < i; index++)
+ for (size_t index = 0; index < CurrentSetSize && processed < i; index++)
{
struct pollfd& pfd = events[index];
// The vector could've been resized, reference can be invalid by now; don't use it
events[index].events = mask_to_poll(mask);
- eh->eh->OnEventHandlerWrite();
+ eh->OnEventHandlerWrite();
}
}