X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=include%2Finspsocket.h;h=f86d9d7f48e18682f8f04aad72c1af6fd151b90e;hb=131f659d91953c51823ef70c8314aa3170ce7a7e;hp=a07c2eb6f82c2aaf4519496fa7dadee80b69e560;hpb=de7011e54ad88656e01c92a88dd053a94b5acc6b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index a07c2eb6f..f86d9d7f4 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -1,11 +1,16 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Matt Schatz + * Copyright (C) 2019 linuxdaemon + * Copyright (C) 2013, 2015-2016 Attila Molnar + * Copyright (C) 2012-2013, 2017-2019 Sadie Powell + * Copyright (C) 2012 Robby + * Copyright (C) 2009 Uli Schlachter * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2007-2008 Robin Burchell + * Copyright (C) 2007-2009 Robin Burchell * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2006-2007 Craig Edwards - * Copyright (C) 2006 Oliver Lupton + * Copyright (C) 2006, 2010 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -275,7 +280,14 @@ class CoreExport StreamSocket : public EventHandler int HookChainRead(IOHook* hook, std::string& rq); protected: + /** The data which has been received from the socket. */ std::string recvq; + + /** Swaps the internals of this StreamSocket with another one. + * @param other A StreamSocket to swap internals with. + */ + void SwapInternals(StreamSocket& other); + public: const Type type; StreamSocket(Type sstype = SS_UNKNOWN) @@ -354,6 +366,11 @@ class CoreExport StreamSocket : public EventHandler * @return IOHook belonging to the module or NULL if the module haven't attached an IOHook to this socket */ IOHook* GetModHook(Module* mod) const; + + /** Get the last IOHook attached to this socket + * @return The last IOHook attached to this socket or NULL if no IOHooks are attached + */ + IOHook* GetLastHook() const; }; /** * BufferedSocket is an extendable socket class which modules