aboutsummaryrefslogtreecommitdiff
path: root/src/inspsocket.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Get rid of socklen_t parameter to Bind, we are using C++ here and can do it ↵Gravatar danieldg2009-11-131-1/+1
| | | | | | other ways git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12129 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix double-cull of users quitting due to connection errorGravatar danieldg2009-11-121-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12105 e03df62e-2008-0410-955e-edbf42e46eb7
* Catch exceptions in inspsocket callbacksGravatar danieldg2009-10-241-33/+41
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11966 e03df62e-2008-0410-955e-edbf42e46eb7
* Make irc::sockets::* parameters consistent, add irc::sockets::maskGravatar danieldg2009-10-221-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11953 e03df62e-2008-0410-955e-edbf42e46eb7
* Kill ListenSocketBase, use OnAcceptConnection for all new connectionsGravatar danieldg2009-10-211-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11950 e03df62e-2008-0410-955e-edbf42e46eb7
* Make classbase and refcountbase uncopyable; expand comments on their ↵Gravatar danieldg2009-10-171-2/+2
| | | | | | indended uses git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11888 e03df62e-2008-0410-955e-edbf42e46eb7
* Correct the will-block prediction on partial writev() returnGravatar danieldg2009-10-121-5/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11849 e03df62e-2008-0410-955e-edbf42e46eb7
* Define DISABLE_WRITEV and use the IOHook single-copy method for Windows send()Gravatar danieldg2009-10-121-32/+76
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11848 e03df62e-2008-0410-955e-edbf42e46eb7
* * Fix inspsocket to not include uio.h on windows.Gravatar peavey2009-10-101-0/+2
| | | | | | | * Wrap writev and some structs to fix inspsocket compile on win. * Fix a few compile errors due to latest trunk changes in win32wrapper code. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11822 e03df62e-2008-0410-955e-edbf42e46eb7
* Move autoconnect next-server to TreeSocket::cull, and drop autoconnect ↵Gravatar danieldg2009-10-091-0/+2
| | | | | | reference once a connection is complete git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11811 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix crash due to null address in DNSGravatar danieldg2009-10-031-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11797 e03df62e-2008-0410-955e-edbf42e46eb7
* Add explicit reference-counting base classGravatar danieldg2009-09-301-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11785 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix compile errors on BSDGravatar danieldg2009-09-281-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11773 e03df62e-2008-0410-955e-edbf42e46eb7
* SendQ bugfixesGravatar danieldg2009-09-271-15/+22
| | | | | | | | Fix DoWrite running on errored sockets Add testnet module for sendq and shutdown testing Prevent DoWrite from trying to write when writes are blocking git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11768 e03df62e-2008-0410-955e-edbf42e46eb7
* Compile fixes and message updatesGravatar danieldg2009-09-261-1/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11767 e03df62e-2008-0410-955e-edbf42e46eb7
* Add FD_WANT_SINGLE_WRITE to efficiently replace FD_WANT_POLL_WRITEGravatar danieldg2009-09-261-1/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11762 e03df62e-2008-0410-955e-edbf42e46eb7
* Clean up SocketEngine interface to allow edge-triggered I/O and sockets that ↵Gravatar danieldg2009-09-261-52/+95
| | | | | | do not force readability. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11760 e03df62e-2008-0410-955e-edbf42e46eb7
* Improve speed of SSL sendq processingGravatar danieldg2009-09-211-0/+16
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11756 e03df62e-2008-0410-955e-edbf42e46eb7
* Don't try to write to dead users, add debug to SquitServer, and remove a ↵Gravatar danieldg2009-09-211-0/+6
| | | | | | string copy in spanningtree write git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11753 e03df62e-2008-0410-955e-edbf42e46eb7
* Create StreamSocket for IO hooking implementationGravatar danieldg2009-09-211-353/+214
| | | | | | | | | | | | | | Fixes the SSL SendQ bug Removes duplicate code between User and BufferedSocket Simplify SSL module API Simplify EventHandler API (Readable/Writeable moved to SE) Add hook for culled objects to invoke callbacks prior to destructor Replace SocketCull with GlobalCull now that sockets can close themselves Shorten common case of user read/parse/write path: User::Write is now zero-copy up to syscall/SSL invocation User::Read has only two copy/scan passes from read() to ProcessCommand git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7
* Change Extensible to use strongly typed entriesGravatar danieldg2009-09-131-3/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
* Use sa_size() rather than sizeof() when passing input parameters to a syscallGravatar danieldg2009-09-011-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11583 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove unneeded #ifdef IPV6 linesGravatar danieldg2009-09-011-17/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11582 e03df62e-2008-0410-955e-edbf42e46eb7
* Move IP<->sockaddr conversions into irc::sockets:: namespaceGravatar danieldg2009-09-011-47/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11580 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove needless sockaddr[2] allocations, replace with ↵Gravatar danieldg2009-09-011-17/+8
| | | | | | irc::sockets::sockaddrs union git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11574 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix sockaddr length argument, BSD will complain if it doesn't exactly match ↵Gravatar danieldg2009-06-161-1/+1
| | | | | | the expected size git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11414 e03df62e-2008-0410-955e-edbf42e46eb7
* Backport BufferedSocket::DoConnect rewrite to fix valgrind warningGravatar danieldg2009-06-141-61/+8
| | | | | | Syscall param socketcall.connect(serv_addr..sin6_flowinfo) points to uninitialised byte(s) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11411 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix bug found by Jeremy from Teranova, thanks: if an explicit bind to an IP ↵Gravatar w00t2009-04-301-5/+13
| | | | | | is not made, don't assume all <bind> tags are for ipv6 IPs on an IPv6 compile (WTF). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11342 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
* Rewrite BufferedSocket::BindAddr to actually make sense, and not infinite ↵Gravatar w00t2009-03-091-61/+86
| | | | | | | | | | loop under some conditions, etc. This also splits a lot of it into DoBindMagic(), for readability. Seems to work okay on an invalid bind and nonexistant bind.. Fixes bug #754, reported by HiroP and Indoril. Fix FD leak in some circumstances: if bind fails hard (requested address couldn't be bound), Close() the socket. Also fixes a deficiency of the previous commit in that if one address failed to bind, the FD would be invalidated. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11189 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix minor memory leak, patch by Darom. Closes bug #699. Thanks!`Gravatar w00t2009-02-031-0/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11025 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Be consistent. Use ServerInstance in all places instead of 'Instance' in ↵Gravatar w00t2008-09-211-42/+42
| | | | | | half. This has bugged me forever :p. I think I got all of extra/ too.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10579 e03df62e-2008-0410-955e-edbf42e46eb7
* Cleanup of some internals. Tested via m_httpd.Gravatar w00t2008-09-121-52/+30
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10527 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove some duplication, everything calls the SE equivilant anyway.Gravatar w00t2008-09-111-5/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10525 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove useless parameter.Gravatar w00t2008-09-111-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10524 e03df62e-2008-0410-955e-edbf42e46eb7
* Minor stylistic improvements.Gravatar w00t2008-09-111-7/+8
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10515 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix a compile oops.Gravatar w00t2008-09-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10513 e03df62e-2008-0410-955e-edbf42e46eb7
* There is absolutely no need to cache connect timeout.Gravatar w00t2008-09-111-5/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10512 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove an unused member.Gravatar w00t2008-09-111-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10511 e03df62e-2008-0410-955e-edbf42e46eb7
* Windows doesn't need blocking connect, IOCP was the cause of that.Gravatar w00t2008-09-111-9/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10510 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove WaitingForWriteEvent, it seems to do *nothing* except confuse things. ↵Gravatar w00t2008-09-111-17/+7
| | | | | | Also, don't close socket on http if FlushWriteBuf doesn't write it all in one go, in fact, don't try FlushWriteBuf at all - use the sockets default of waiting to be told it's safe to write data. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10509 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove a totally redundant method (this is already available via inheritance ↵Gravatar w00t2008-09-091-5/+0
| | | | | | from EventHandler) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10490 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove listening from BufferedSocket, it's bloaty and horrid. We have a ↵Gravatar w00t2008-09-081-124/+32
| | | | | | ListenSocketBase class to handle this instead now. :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10470 e03df62e-2008-0410-955e-edbf42e46eb7
* Move socket hooking in inspsocket to utilise the new system properly.Gravatar w00t2008-09-071-13/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10449 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove last vestige of libircdfoo, by changing tag into a single ↵Gravatar w00t2008-07-291-1/+1
| | | | | | identifier marking object as requiring compilation into a .o (minor commit) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix the 4-byte read madness discovered by psychonGravatar brain2008-07-191-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10045 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove individual read buffers inside of BufferedSocket, use the shared ↵Gravatar w00t2008-07-121-4/+5
| | | | | | netbuffer instead, like users. This means a 65kb saving per BufferedSocket. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9960 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix an off-by-one which could possibly perhaps cause djGrrr/satmd's bug by ↵Gravatar w00t2008-07-021-3/+9
| | | | | | dropping a read buffer into the bit bucket if it was of an exact enough size to cause problems. No guarentees. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9944 e03df62e-2008-0410-955e-edbf42e46eb7
* Listening bufferedsockets dont have an OnRawSocketClose event as theyre ↵Gravatar brain2008-05-191-1/+2
| | | | | | never 'opened' git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9773 e03df62e-2008-0410-955e-edbf42e46eb7