X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspsocket.h;h=66ea48eb3532e9a40e3fe30d7a9c247084689432;hb=7b08be5752bb91d495f324f97b346976d669ad90;hp=b8f64d762f7210159c231e213ca3cd6b1a08e074;hpb=138f71ed13644d165293f6b59af3c55a53aeca97;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index b8f64d762..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. * @@ -311,15 +314,9 @@ class CoreExport BufferedSocket : public EventHandler */ 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 @@ -352,4 +349,3 @@ class CoreExport BufferedSocket : public EventHandler }; #endif -