* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- * E-mail:
- * <brain@chatspike.net>
- * <Craig@chatspike.net>
- *
- * Written by Craig Edwards, Craig McLure, and others.
+ * InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* @param a A human-readable address
* @param n An insp_inaddr struct which the result
* will be copied into on success.
- * @return This function will return 0 upon success,
+ * @return This method will return a negative value if address
+ * does not contain a valid address family. 0 if the address is
+ * does not contain a valid string representing a valid network
+ * address. A positive value is returned if the network address
+ * was successfully converted.
+
* or any other number upon failure.
*/
int insp_aton(const char* a, insp_inaddr* n);
* or a negative value upon failure (negative values are invalid file
* descriptors)
*/
- int OpenTCPSocket();
+ int OpenTCPSocket(char* addr, int socktype = SOCK_STREAM);
};
};
+/** This class handles incoming connections on client ports.
+ * It will create a new userrec for every valid connection
+ * and assign it a file descriptor.
+ */
class ListenSocket : public EventHandler
{
protected:
+ /** The creator/owner of this object
+ */
InspIRCd* ServerInstance;
+ std::string desc;
+ int family;
public:
+ /** Create a new listening socket
+ */
ListenSocket(InspIRCd* Instance, int sockfd, irc::sockets::insp_sockaddr client, irc::sockets::insp_sockaddr server, int port, char* addr);
- void HandleEvent(EventType et);
+ /** Handle an I/O event
+ */
+ void HandleEvent(EventType et, int errornum = 0);
+ /** Close the socket
+ */
+ ~ListenSocket();
+ /** Set descriptive text
+ */
+ void SetDescription(const std::string &description)
+ {
+ desc = description;
+ }
+
+ const std::string& GetDescription()
+ {
+ return desc;
+ }
};
#endif