X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=include%2Finspsocket.h;h=e432f9c16c130600ede422b4e7dbb41fc38cf3cf;hb=b30988ee6069a6ebe0805fb79a057d7e05688bc6;hp=addb761d119037c510eed2021972fc52ba9a513f;hpb=565544fac966b14e046bb3042ab485f79bcf7c9e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index addb761d1..e432f9c16 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -219,6 +219,13 @@ class CoreExport StreamSocket : public EventHandler size_t nbytes; }; + /** The type of socket this IOHook represents. */ + enum Type + { + SS_UNKNOWN, + SS_USER + }; + private: /** The IOHook that handles raw I/O for this socket, or NULL */ IOHook* iohook; @@ -264,7 +271,12 @@ class CoreExport StreamSocket : public EventHandler protected: std::string recvq; public: - StreamSocket() : iohook(NULL) { } + const Type type; + StreamSocket(Type sstype = SS_UNKNOWN) + : iohook(NULL) + , type(sstype) + { + } IOHook* GetIOHook() const; void AddIOHook(IOHook* hook); void DelIOHook(); @@ -297,6 +309,12 @@ class CoreExport StreamSocket : public EventHandler /** Called when the socket gets an error from socket engine or IO hook */ virtual void OnError(BufferedSocketError e) = 0; + /** Called when the endpoint addresses are changed. + * @param local The new local endpoint. + * @param remote The new remote endpoint. + */ + virtual void OnSetEndPoint(const irc::sockets::sockaddrs& local, const irc::sockets::sockaddrs& remote) { } + /** Send the given data out the socket, either now or when writes unblock */ void WriteData(const std::string& data);