X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspsocket.h;h=c62c5a25099375193622b4331963256ef2e819ea;hb=b111d5098fe1ee306d2718c82c72f969db9d183d;hp=3e5c752356458122b11b2ca6e70958cfa8931857;hpb=9db7af579c46a9f0379fdf71fb773a0a76a94846;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index 3e5c75235..c62c5a250 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -1,18 +1,28 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2007-2008 Robin Burchell + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006-2007 Craig Edwards + * Copyright (C) 2006 Oliver Lupton * - * This program is free but copyrighted software; see - * the file COPYING for details. + * 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 + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __INSP_SOCKET_H__ -#define __INSP_SOCKET_H__ + +#ifndef INSPSOCKET_H +#define INSPSOCKET_H #include "timer.h" @@ -75,7 +85,6 @@ class CoreExport SocketTimeout : public Timer public: /** Create a socket timeout class * @param fd File descriptor of BufferedSocket - * @pram Instance server instance to attach to * @param thesock BufferedSocket to attach to * @param secs_from_now Seconds from now to time out * @param now The current time @@ -94,7 +103,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 +114,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 */ @@ -139,7 +148,7 @@ class CoreExport StreamSocket : public EventHandler */ bool GetNextLine(std::string& line, char delim = '\n'); /** Useful for implementing sendq exceeded */ - inline const size_t getSendQSize() const { return sendq_len; } + inline size_t getSendQSize() const { return sendq_len; } /** * Close the socket, remove from socket engine, etc @@ -185,9 +194,10 @@ class CoreExport BufferedSocket : public StreamSocket * This will create a socket, register with socket engine, and start the asynchronous * connection process. If an error is detected at this point (such as out of file descriptors), * OnError will be called; otherwise, the state will become CONNECTING. - * @param dest Address to connect to - * @param bind Address to bind to (if NULL, no bind will be done) - * @param timeout Time to wait for connection + * @param ipaddr Address to connect to + * @param aport Port to connect on + * @param maxtime Time to wait for connection + * @param connectbindip Address to bind to (if NULL, no bind will be done) */ void DoConnect(const std::string &ipaddr, int aport, unsigned long maxtime, const std::string &connectbindip); @@ -219,4 +229,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