* or a negative value upon failure (negative values are invalid file
* descriptors)
*/
- CoreExport int OpenTCPSocket(const char* addr, int socktype = SOCK_STREAM);
+ CoreExport int OpenTCPSocket(const std::string& addr, int socktype = SOCK_STREAM);
/** Return the size of the structure for syscall passing */
- CoreExport int sa_size(irc::sockets::sockaddrs& sa);
+ CoreExport int sa_size(const irc::sockets::sockaddrs& sa);
/** Convert an address-port pair into a binary sockaddr
* @param addr The IP address, IPv4 or IPv6
* @param sa The structure to place the result in. Will be zeroed prior to conversion
* @return true if the conversion was successful, false if not.
*/
- CoreExport bool aptosa(const char* addr, int port, irc::sockets::sockaddrs* sa);
+ CoreExport bool aptosa(const std::string& addr, int port, irc::sockets::sockaddrs* sa);
/** Convert a binary sockaddr to an address-port pair
* @param sa The structure to convert
* @param addr the IP address
}
}
-
-
/** This class handles incoming connections on client ports.
* It will create a new User for every valid connection
* and assign it a file descriptor.
class CoreExport ListenSocketBase : public EventHandler
{
protected:
- /** The creator/owner of this object
- */
- InspIRCd* ServerInstance;
- /** Socket description (shown in stats p) */
- std::string desc;
-
/** Raw address socket is bound to */
std::string bind_addr;
- /** Port socket is bound to */
- int bind_port;
/** Human-readable address/port socket is bound to */
std::string bind_desc;
static irc::sockets::sockaddrs server;
public:
+ /** Socket type (client/server) */
+ const std::string type;
+ /** Socket hook (plain/gnutls/openssl/zip) */
+ const std::string hook;
+ /** Port socket is bound to */
+ const int bind_port;
/** Create a new listening socket
*/
- ListenSocketBase(InspIRCd* Instance, int port, const std::string &addr);
+ ListenSocketBase(int port, const std::string &addr, const std::string &type, const std::string &hook);
/** Handle an I/O event
*/
void HandleEvent(EventType et, int errornum = 0);
/** Close the socket
*/
~ListenSocketBase();
- /** Set descriptive text
- */
- void SetDescription(const std::string &description)
- {
- desc = description;
- }
- /** Get description for socket
- */
- const std::string& GetDescription() { return desc; }
- /** Get port number for socket
- */
- const int GetPort() { return bind_port; }
/** Get IP address socket is bound to
*/
{
virtual void OnAcceptReady(int fd);
public:
- ClientListenSocket(InspIRCd* Instance, int port, const std::string &addr) : ListenSocketBase(Instance, port, addr) { }
+ ClientListenSocket(int port, const std::string &addr, const std::string &Type, const std::string &Hook)
+ : ListenSocketBase(port, addr, Type, Hook) { }
};
#endif