diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/inspsocket.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/inspsocket.h b/include/inspsocket.h index a41c3ebc7..a07c2eb6f 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -227,6 +227,12 @@ class CoreExport StreamSocket : public EventHandler }; private: + /** Whether this socket should close once its sendq is empty */ + bool closeonempty; + + /** Whether the socket is currently closing or not, used to avoid repeatedly closing a closed socket */ + bool closing; + /** The IOHook that handles raw I/O for this socket, or NULL */ IOHook* iohook; @@ -273,7 +279,9 @@ class CoreExport StreamSocket : public EventHandler public: const Type type; StreamSocket(Type sstype = SS_UNKNOWN) - : iohook(NULL) + : closeonempty(false) + , closing(false) + , iohook(NULL) , type(sstype) { } @@ -334,6 +342,10 @@ class CoreExport StreamSocket : public EventHandler * Close the socket, remove from socket engine, etc */ virtual void Close(); + + /** If writeblock is true then only close the socket if all data has been sent. Otherwise, close immediately. */ + void Close(bool writeblock); + /** This ensures that close is called prior to destructor */ CullResult cull() CXX11_OVERRIDE; |