X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspsocket.h;h=f9d582637da26089f6febed12b71f032fa5700e8;hb=095e0a067b6ed1a191c31711771df66acfc41f2c;hp=73aa748a0326384f50627166614d2e9c61eb4407;hpb=e2af2347fc035d702e45f12e772223a8d578410d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index 73aa748a0..f9d582637 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * InspIRCd: (C) 2002-2010 InspIRCd Development Team * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see @@ -94,7 +94,7 @@ class CoreExport SocketTimeout : public Timer class CoreExport StreamSocket : public EventHandler { /** Module that handles raw I/O for this socket, or NULL */ - Module *IOHook; + reference IOHook; /** Private send queue. Note that individual strings may be shared */ std::deque sendq; @@ -105,10 +105,10 @@ class CoreExport StreamSocket : public EventHandler protected: std::string recvq; public: - StreamSocket() : IOHook(NULL), sendq_len(0) {} - inline Module* GetIOHook() { return IOHook; } - inline void AddIOHook(Module* m) { IOHook = m; } - inline void DelIOHook() { IOHook = NULL; } + StreamSocket() : sendq_len(0) {} + inline Module* GetIOHook(); + inline void AddIOHook(Module* m); + inline void DelIOHook(); /** Handle event from socket engine. * This will call OnDataReady if there is *new* data in recvq */ @@ -146,7 +146,7 @@ class CoreExport StreamSocket : public EventHandler */ virtual void Close(); /** This ensures that close is called prior to destructor */ - virtual void cull(); + virtual CullResult cull(); }; /** * BufferedSocket is an extendable socket class which modules @@ -219,4 +219,9 @@ class CoreExport BufferedSocket : public StreamSocket BufferedSocketError BeginConnect(const std::string &ipaddr, int aport, unsigned long maxtime, const std::string &connectbindip); }; +#include "modules.h" + +inline Module* StreamSocket::GetIOHook() { return IOHook; } +inline void StreamSocket::AddIOHook(Module* m) { IOHook = m; } +inline void StreamSocket::DelIOHook() { IOHook = NULL; } #endif