X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspsocket.h;h=66ea48eb3532e9a40e3fe30d7a9c247084689432;hb=c71db5cbdece1b5ce878c68f162acb52eff8becd;hp=a82f8bb82b13b45ed05eb9c0201d4dc06a7532db;hpb=b7b0f5404757b0de080d71b92a4b45388276e450;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index a82f8bb82..66ea48eb3 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -2,8 +2,8 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -56,11 +56,6 @@ enum BufferedSocketError class BufferedSocket; class InspIRCd; -using irc::sockets::insp_sockaddr; -using irc::sockets::insp_inaddr; -using irc::sockets::insp_ntoa; -using irc::sockets::insp_aton; - /** Used to time out socket connections */ class CoreExport SocketTimeout : public Timer @@ -69,12 +64,15 @@ class CoreExport SocketTimeout : public Timer /** BufferedSocket the class is attached to */ BufferedSocket* sock; + /** Server instance creating the timeout class */ InspIRCd* ServerInstance; + /** File descriptor of class this is attached to */ int sfd; + public: /** Create a socket timeout class * @param fd File descriptor of BufferedSocket @@ -84,6 +82,7 @@ class CoreExport SocketTimeout : public Timer * @param now The current time */ SocketTimeout(int fd, InspIRCd* Instance, BufferedSocket* thesock, long secs_from_now, time_t now) : Timer(secs_from_now, now), sock(thesock), ServerInstance(Instance), sfd(fd) { }; + /** Handle tick event */ virtual void Tick(time_t now); @@ -108,7 +107,7 @@ class CoreExport BufferedSocket : public EventHandler /** Instance we were created by */ - InspIRCd* Instance; + InspIRCd* ServerInstance; /** Timeout class or NULL */ @@ -172,6 +171,10 @@ class CoreExport BufferedSocket : public EventHandler */ bool BindAddr(const std::string &ip); + /** (really) Try bind to a given IP setup. For internal use only. + */ + bool DoBindMagic(const std::string ¤t_ip, bool v6); + /** * The default constructor does nothing * and should not be used. @@ -237,7 +240,7 @@ class CoreExport BufferedSocket : public EventHandler virtual bool OnDataReady(); /** - * When it is ok to write to the socket, and a + * When it is ok to write to the socket, and a * write event was requested, this method is * triggered. * @@ -246,7 +249,7 @@ class CoreExport BufferedSocket : public EventHandler * other end of the socket. * * Further write events will not be triggered - * unless you call WantWrite(). + * unless you call SocketEngine::WantWrite(). * * The default behaviour of this method is to * flush the write buffer, respecting the IO @@ -306,27 +309,14 @@ class CoreExport BufferedSocket : public EventHandler */ void SetState(BufferedSocketState s); - /** - * Call this to receive the next write event - * that comes along for this fd to the OnWriteReady - * method. - */ - void WantWrite(); - /** * Returns the current socket state. */ BufferedSocketState GetState(); - /** - * Only the core should call this function. - * When called, it is assumed the socket is ready - * to read data, and the method call routes the - * event to the various methods of BufferedSocket - * for you to handle. This can also cause the - * socket's state to change. + /** Mark a socket as being connected and call appropriate events. */ - bool Poll(); + bool InternalMarkConnected(); /** * This method causes the socket to close, and may @@ -359,4 +349,3 @@ class CoreExport BufferedSocket : public EventHandler }; #endif -