X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fsocket.h;h=1ea1332e277eab80ea2a231fc5d649127e325ec8;hb=635cb9d65f6d7f6758ae8ed874da00c8d94b6e39;hp=e527bc7f54aa89c86b53253e6a38f4056f80882a;hpb=499121036c26a66a7b8b6195c8b837349f42df6c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/socket.h b/include/socket.h index e527bc7f5..1ea1332e2 100644 --- a/include/socket.h +++ b/include/socket.h @@ -1,12 +1,16 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2005-2007 Craig Edwards + * Copyright (C) 2013, 2015-2016 Attila Molnar + * Copyright (C) 2012-2013, 2017-2019 Sadie Powell + * Copyright (C) 2012 Robby + * Copyright (C) 2012 ChrisTX + * Copyright (C) 2012 Adam + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2007-2008 Robin Burchell * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2007 Robin Burchell - * Copyright (C) 2006 Oliver Lupton - * Copyright (C) 2006 William Pitcock + * Copyright (C) 2006, 2008, 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 @@ -127,13 +131,40 @@ namespace irc * @return True if the conversion was successful; otherwise, false. */ CoreExport bool untosa(const std::string& path, irc::sockets::sockaddrs& sa); + + /** Determines whether the specified file is a UNIX socket. + * @param file The path to the file to check. + * @return True if the file is a UNIX socket; otherwise, false. + */ + CoreExport bool isunix(const std::string& file); } } +/** Represents information about a failed port binding. */ +struct CoreExport FailedPort +{ + /** The error which happened during binding. */ + int error; + + /** The endpoint on which we were attempting to bind. */ + irc::sockets::sockaddrs sa; + + /** The config tag that the listener was created from. */ + ConfigTag* tag; + + FailedPort(int err, irc::sockets::sockaddrs& ep, ConfigTag* cfg) + : error(err) + , sa(ep) + , tag(cfg) + { + } +}; + /** A list of failed port bindings, used for informational purposes on startup */ -typedef std::vector > FailedPortList; +typedef std::vector FailedPortList; #include "socketengine.h" + /** This class handles incoming connections on client ports. * It will create a new User for every valid connection * and assign it a file descriptor.