aboutsummaryrefslogtreecommitdiff
path: root/src/socketengine_epoll.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move socketengines into their own dir. This was all w00t's idea, but i told ↵Gravatar brain2007-10-231-164/+0
| | | | | | him no because i didnt think it would work. Now ive done it myself :P ner ner ne ner ner :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8332 e03df62e-2008-0410-955e-edbf42e46eb7
* Set these back to sane operationGravatar brain2007-10-211-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8271 e03df62e-2008-0410-955e-edbf42e46eb7
* Change how the socket engines work when you addfd on an fd that already exists.Gravatar brain2007-10-211-4/+1
| | | | | | | the only SANE outcome is that youve forgotten to DelFd, so it does this for you. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8269 e03df62e-2008-0410-955e-edbf42e46eb7
* Yay fixedGravatar brain2007-10-181-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8226 e03df62e-2008-0410-955e-edbf42e46eb7
* Socket engine tweaks to fix a glitch, and improvements to new m_identGravatar brain2007-10-181-3/+9
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8225 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix for bug #407, set ref[fd] AFTER some checks that may return false and ↵Gravatar brain2007-09-251-1/+2
| | | | | | leave the socket engine in an undefined state git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8077 e03df62e-2008-0410-955e-edbf42e46eb7
* Craquity craq De-craq!Gravatar brain2007-08-231-1/+1
| | | | | | | | | | This is probably broken on windows, do not attempt to use there yet unless you like broken stuff. Cant say for sure as i havent even tried to build yet and most likely wont tonight. --- Abstract most of the berkely socket API out into SocketEngine derived classes. SocketEngine base class implements standard berkely sockets that 'real mens systems' like linux and freebsd have. For socketengine_iocp we implement the windows specific nonesense like the special things needed for udp and accept (ick). All this to eliminate a bunch of ifdefs. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7810 e03df62e-2008-0410-955e-edbf42e46eb7
* Un-static InspIRCd::Exit and use SignalHandler instead.Gravatar peavey2007-07-251-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7572 e03df62e-2008-0410-955e-edbf42e46eb7
* OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.Gravatar peavey2007-07-161-1/+157
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
* 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵Gravatar peavey2007-07-161-157/+1
| | | | | | auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove debugGravatar brain2007-03-111-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6659 e03df62e-2008-0410-955e-edbf42e46eb7
* Added OnBufferFlush, improved m_safelist, no longer works on a timer but ↵Gravatar brain2007-03-111-0/+1
| | | | | | | | | works on the writeability state of each user who is listing. Seems to test fine with 500 reet bots all listing at once. (doesnt lock up the ircd while listing them all any more, either, just lags a small amount) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6657 e03df62e-2008-0410-955e-edbf42e46eb7
* Added errno to the epoll failure message for more detailGravatar special2007-01-281-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6448 e03df62e-2008-0410-955e-edbf42e46eb7
* Crusade to remove debug from stable and tested parts of the core and base ↵Gravatar brain2007-01-151-26/+6
| | | | | | | | | | modules. Most of the code here being de-noised hasnt had a crash or bug in it for many months, if not a year so the debug output is useless noise in the logfile when trying to trace a bug in a REAL problem area. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6356 e03df62e-2008-0410-955e-edbf42e46eb7
* pgsql should now work thx to added posibility to force a fd out of the ↵Gravatar peavey2007-01-111-2/+2
| | | | | | socketengine. This should only be used as a *last resort* when dealing with 3rd party libs that invalidates a file descriptor beyond your control. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6295 e03df62e-2008-0410-955e-edbf42e46eb7
* Change delays to 1 sec.Gravatar brain2006-12-301-1/+1
| | | | | | | NOTE: The chances of this actually waiting for 1 sec on any sizeable network are miniscule git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6176 e03df62e-2008-0410-955e-edbf42e46eb7
* Tons of optimization of WriteChannel, WriteChannelWithServ, WriteCommon etc, ↵Gravatar brain2006-12-301-1/+0
| | | | | | | | | | dont call userrec::GetFullHost or snprintf for every item, call it just once. Turns O(n) calls for every write into O(~1) calls per write. Remove some debug from the socketengines which makes debugging hard on large channels (write availability message) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6171 e03df62e-2008-0410-955e-edbf42e46eb7
* We can't log in SocketEngine::DelFd(), because the fd we're removing might ↵Gravatar brain2006-12-231-5/+0
| | | | | | just be that of the logger! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6082 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix bug in m_dnsbl, a condition is always matched because someone was using ↵Gravatar brain2006-12-231-1/+2
| | | | | | | | | unsigned int to check a return val that can be -1 *slap w00t* Change around the way exit codes are formed so that we can return a sensible exit code that reflects why inspircd exited git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6076 e03df62e-2008-0410-955e-edbf42e46eb7
* Jesus, look who's the commit whore today. More header updates, and removal ↵Gravatar w00t2006-12-151-5/+2
| | | | | | of namespacing. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7
* Untested, new clever pointer voodoo class for binary-safe ziplinks output ↵Gravatar brain2006-12-111-2/+4
| | | | | | | | | buffers PLUS: Fix for random epoll dispatchevents crashes. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5926 e03df62e-2008-0410-955e-edbf42e46eb7
* Another couple of 'forgot to memset'sGravatar brain2006-11-141-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5742 e03df62e-2008-0410-955e-edbf42e46eb7
* Properly zero the epoll_event in epollengine WantWrite to stop a valgrind ↵Gravatar brain2006-11-141-0/+1
| | | | | | warning git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5741 e03df62e-2008-0410-955e-edbf42e46eb7
* A few lines here are loglevel DEFAULT and should be DEBUG.Gravatar brain2006-11-111-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5696 e03df62e-2008-0410-955e-edbf42e46eb7
* We should be fine without oneshot, i'll test this.Gravatar brain2006-10-311-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5612 e03df62e-2008-0410-955e-edbf42e46eb7
* Error set handlin g for select socketengine, tidyup epollGravatar brain2006-10-311-0/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5609 e03df62e-2008-0410-955e-edbf42e46eb7
* Socket error state stuffGravatar brain2006-10-311-2/+19
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5607 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove very verbose debugging of event systemGravatar brain2006-10-301-5/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5589 e03df62e-2008-0410-955e-edbf42e46eb7
* fix for (less severe) laggehnessGravatar brain2006-10-301-2/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5586 e03df62e-2008-0410-955e-edbf42e46eb7
* WARNING: This commit breaks kqueue and select -- work in progress!Gravatar brain2006-10-301-2/+30
| | | | | | | epoll now allows both a write and a read event on a socket at the same time. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5580 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix this to display the channel name when overriding a ban, and to properly ↵Gravatar brain2006-10-261-1/+1
| | | | | | display +i overrides in the right way git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5541 e03df62e-2008-0410-955e-edbf42e46eb7
* Revert tweakGravatar brain2006-10-061-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5443 e03df62e-2008-0410-955e-edbf42e46eb7
* Make the socketengines always clear the slots on DelFd, even if the ↵Gravatar brain2006-10-061-2/+4
| | | | | | underlying queue call fails git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5437 e03df62e-2008-0410-955e-edbf42e46eb7
* Add extra debugging for socketengines, will now report OS error string when ↵Gravatar brain2006-10-061-1/+1
| | | | | | failing to remove a socket from the queue git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5436 e03df62e-2008-0410-955e-edbf42e46eb7
* Better fix to crash jamie experienced. epoll was the only socket engine ↵Gravatar w00t2006-10-021-1/+1
| | | | | | affected by this, and only under weird circumstances like a zlined user. Previous commit will work fine, this is nicer, and more complete. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5385 e03df62e-2008-0410-955e-edbf42e46eb7
* Extra debuggingGravatar brain2006-10-011-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5378 e03df62e-2008-0410-955e-edbf42e46eb7
* Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include listsGravatar brain2006-08-301-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of SocketEngine::Wait and array-copy, change to ↵Gravatar brain2006-08-181-5/+6
| | | | | | SocketEngine::DispatchEvents git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4944 e03df62e-2008-0410-955e-edbf42e46eb7
* EventHandler class, an abstraction for raw i/oGravatar brain2006-08-181-18/+13
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4941 e03df62e-2008-0410-955e-edbf42e46eb7
* Just to mess with om's head, remove helperfuncs.h from everywhereGravatar brain2006-08-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
* Change to using Instance->Log (InspIRCd::Log) rather than log() macroGravatar brain2006-08-111-10/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4880 e03df62e-2008-0410-955e-edbf42e46eb7
* Now two types of log macro, log() and ilog(). log() assumes an InspIRCd ↵Gravatar brain2006-08-111-1/+2
| | | | | | | | | object called ServerInstance, ilog() takes an InspIRCd object as first param. TODO: Run a regexp over these, using perl, to translate them into InspIRCd::Log calls and then eliminate the macro :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4879 e03df62e-2008-0410-955e-edbf42e46eb7
* Move tons more stuff into class InspIRCd*, make signal handler functions ↵Gravatar brain2006-08-101-1/+1
| | | | | | static members git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4855 e03df62e-2008-0410-955e-edbf42e46eb7
* Bail if we couldn't bind any ports (when did this get broken?)Gravatar brain2006-08-071-0/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4774 e03df62e-2008-0410-955e-edbf42e46eb7
* * Seperate out socket engines into derived classes of SocketEngine.Gravatar brain2006-07-191-0/+129
* Add a classfactory SocketEngineFactory to create a new socketengine of the configured type * Implement configure hax to compile only the required socketengine and the base class * Eliminates ugly defines, and is more in line with C++ ways git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4439 e03df62e-2008-0410-955e-edbf42e46eb7