summaryrefslogtreecommitdiff
path: root/src/socketengine.cpp
AgeCommit message (Collapse)Author
2007-10-22Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵brain
src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-04* Fixed some incorrect declarations in IOCPEngineburlex
* Fixed the virtual socket wrapper functions in IOCPEngine {these should really be inlined on unix} * Fixed several compilation issues under Win32 * Fixed calls to close() which should've been changed to SE->Close() + Added a crashdump saving system to Win32 builds. Dumps are saved in the format of dump-<exename>-<year>-<month>-<day>-<hour>-<minute>-<second>.dmp in the working directory. Enabled by default, undefine ENABLE_CRASHDUMPS to disable. + Added m_operflood, this is a module I've had lying around for some time but some users may like it as it allows unreal-like behaviour without increasing flood limits for non-opers. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8015 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-23Craquity craq De-craq!brain
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
2007-08-15This is now correct.brain
No win32 #ifdefs in the base class, being as IOCPEngine is only built on windows we can put the code here without the need for ifdef. The original check in socketengine_iocp was broken, copied burlex's fixed version into the child class git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7724 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-15* include/caller.h will now compile correctly on Windows platforms.burlex
+ Implemented gettimeofday in win32 wrapper, link rtt's will now display in milliseconds. * SocketEngine::BoundsCheckFd will now handle Windows event handler cases correctly. (fixing writing to sockets not working) * Fixed VC71 project. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7723 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-27Some smart tricks to eliminate win32 ifdefs that are creeping into portable ↵brain
files git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7589 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.peavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵peavey
auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19Windows support. Tested and working to compile on freebsd and linux. Next ↵w00t
step is to make sure it actually works in windows too. ;p. Add Burlex to contributors. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-11pgsql should now work thx to added posibility to force a fd out of the ↵peavey
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
2006-12-15Jesus, look who's the commit whore today. More header updates, and removal ↵w00t
of namespacing. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-30WARNING: This commit breaks kqueue and select -- work in progress!brain
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
2006-08-30Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include listsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18Get rid of SocketEngine::Wait and array-copy, change to ↵brain
SocketEngine::DispatchEvents git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4944 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18EventHandler class, an abstraction for raw i/obrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4941 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12So i wonder why we've not had this problem soonerbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4914 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Just to mess with om's head, remove helperfuncs.h from everywherebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Now two types of log macro, log() and ilog(). log() assumes an InspIRCd ↵brain
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
2006-07-19Whoops, forgot SocketEngine::SocketEngine() gets called recursively from ↵brain
*Engine::*Engine() (where * is the type being built) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4441 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-19* Seperate out socket engines into derived classes of SocketEngine.brain
* 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
2006-06-29Change log() to a #define, the real symbol is now do_log(), the new macro ↵om
auto-prefixes all log messages with the file and line number where log() was called - should be nice for debugging and telling wtf is coming from what.Currently uses a (probably very standard) g++ extension to make the macro work. Shouldn't be an issue. You must make clean and rebuild all of insp. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4081 e03df62e-2008-0410-955e-edbf42e46eb7
2006-05-16Check for failed epoll or kqueuebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3961 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-11Added method to check if an fd is in the socketengine or notbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3667 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-07Tweaks to socket engine, faster buffer flush and hopefully more stablebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3521 e03df62e-2008-0410-955e-edbf42e46eb7
2006-02-26Valgrind fixesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3353 e03df62e-2008-0410-955e-edbf42e46eb7
2006-01-15Updated copyrights in headers etc using perl inplace editbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2795 e03df62e-2008-0410-955e-edbf42e46eb7
2006-01-12Test change to level-triggered epollbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2779 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-29Added output of error if file descriptor given to AddFd is > MAX_DESCRIPTORSbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2701 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-29Changed to MAX_DESCRIPTORSbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2700 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-29Added extra checking to socketengine to refuse connections after we reach ↵brain
the max git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2697 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-29Added counters for MAX_DESCRIPTORS etc which allows the socket engine to ↵brain
refuse new fd's once you hit the OS limit git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2696 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-29Optimizing to not use so much cpu with high user loadsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2691 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-14Changed a broken && to & which was preventing epoll from doing outbound ↵brain
connects properly git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2390 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-13Removed some logging that can cause excessively huge logs when select() is ↵brain
being used git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2366 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Timing tweaksbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2342 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Increased socketengine wait cyclesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2341 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Added commentsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2338 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12select() debuggingbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2336 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Added checking to find out why select() splitsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2335 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Fixed WRITEBIT support in select() enginebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2334 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12*EXPERIMENTAL* Tied DNS into new socket enginebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2331 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12More experimental gubbinsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2330 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Added GetTypebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2327 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12EXPERIMENTAL new socket engine codebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2326 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Made compile on linuxbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2325 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Made compile on freebsdbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2324 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Working on making this actually compilebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2322 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-12Added preliminary socketengine stuffbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2321 e03df62e-2008-0410-955e-edbf42e46eb7