summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3f94e1f)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10268
e03df62e-2008-0410-955e-
edbf42e46eb7
#define __USE_XOPEN /* fuck every fucking OS ever made. needed by poll.h to work.*/
#endif
#include <poll.h>
#define __USE_XOPEN /* fuck every fucking OS ever made. needed by poll.h to work.*/
#endif
#include <poll.h>
#include "inspircd.h"
#include "exitcodes.h"
#include "socketengines/socketengine_poll.h"
#include "inspircd.h"
#include "exitcodes.h"
#include "socketengines/socketengine_poll.h"
+#include <poll.h>
+#include <ulimit.h>
PollEngine::PollEngine(InspIRCd* Instance) : SocketEngine(Instance)
{
PollEngine::PollEngine(InspIRCd* Instance) : SocketEngine(Instance)
{
CurrentSetSize = 0;
ref = new EventHandler* [GetMaxFds()];
CurrentSetSize = 0;
ref = new EventHandler* [GetMaxFds()];
- events = new struct epoll_event[GetMaxFds()];
+ events = new struct pollfd[GetMaxFds()];
- memset(&events, 0, GetMaxFds() * sizeof(struct pollfds*));
+ memset(&events, 0, GetMaxFds() * sizeof(struct pollfd*));
}
PollEngine::~PollEngine()
}
PollEngine::~PollEngine()
- events[fd]->events = POLLIN;
+ events[fd].events = POLLIN;
- events[fd]->events = POLLOUT;
+ events[fd].events = POLLOUT;
- ServerInstance->Log(DEBUG,"New file descriptor: %d (%d)", fd, events[fd]->events);
+ ServerInstance->Logs->Log("SOCKET", DEBUG,"New file descriptor: %d (%d)", fd, events[fd].events);
CurrentSetSize++;
return true;
}
void PollEngine::WantWrite(EventHandler* eh)
{
CurrentSetSize++;
return true;
}
void PollEngine::WantWrite(EventHandler* eh)
{
- events[eh->GetFd()]->events = POLLIN | POLLOUT;
+ events[eh->GetFd()].events = POLLIN | POLLOUT;
}
bool PollEngine::DelFd(EventHandler* eh, bool force)
}
bool PollEngine::DelFd(EventHandler* eh, bool force)
int fd = eh->GetFd();
if ((fd < 0) || (fd > MAX_DESCRIPTORS))
{
int fd = eh->GetFd();
if ((fd < 0) || (fd > MAX_DESCRIPTORS))
{
- ServerInstance->Logs->Log("SOCKET",DEBUG,"DelFd out of range: (fd: %d, max: %d)", fd, GetMaxFds());
+ ServerInstance->Logs->Log("SOCKET", DEBUG, "DelFd out of range: (fd: %d, max: %d)", fd, GetMaxFds());
- events[fd]->fd = -1;
- events[fd]->events = 0;
+ events[fd].fd = -1;
+ events[fd].events = 0;
CurrentSetSize--;
ref[fd] = NULL;
CurrentSetSize--;
ref[fd] = NULL;
- ServerInstance->Log(DEBUG,"Remove file descriptor: %d", fd);
+ ServerInstance->Logs->Log("SOCKET", DEBUG, "Remove file descriptor: %d", fd);