aboutsummaryrefslogtreecommitdiff
path: root/src/socket.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2022-12-18 17:51:35 +0000
committerGravatar Sadie Powell2022-12-18 18:47:28 +0000
commit2ddb62319803f6a3f3246a52b4e009d9ae1daaed (patch)
tree96a5d23c8a38f3282f3e52346cb706d55e58658f /src/socket.cpp
parentWe actually want ADDRESS_FAMILY not SOCKET_ADDRESS for sa_family_t. (diff)
Use in_port_t instead of int/unsigned int/long.
Diffstat (limited to 'src/socket.cpp')
-rw-r--r--src/socket.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/socket.cpp b/src/socket.cpp
index 77c8d1edc..0ede146fd 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -86,10 +86,13 @@ size_t InspIRCd::BindPorts(FailedPortList& failed_ports)
address.empty() ? "*" : address.c_str(), tag->source.str().c_str());
irc::portparser portrange(portlist, false);
- for (int port; (port = static_cast<int>(portrange.GetToken())); )
+ while (long port = portrange.GetToken())
{
+ if (port <= std::numeric_limits<in_port_t>::min() || port > std::numeric_limits<in_port_t>::max())
+ continue;
+
irc::sockets::sockaddrs bindspec(false);
- if (!bindspec.from_ip_port(address, port))
+ if (!bindspec.from_ip_port(address, static_cast<in_port_t>(port)))
continue;
if (!BindPort(tag, bindspec, old_ports))
@@ -160,7 +163,7 @@ irc::sockets::sockaddrs::sockaddrs(bool initialize)
memset(this, 0, sizeof(*this));
}
-bool irc::sockets::sockaddrs::from_ip_port(const std::string& addr, int port)
+bool irc::sockets::sockaddrs::from_ip_port(const std::string& addr, in_port_t port)
{
if (addr.empty() || addr == "*")
{
@@ -237,7 +240,7 @@ bool irc::sockets::sockaddrs::is_local() const
return false;
}
-int irc::sockets::sockaddrs::port() const
+in_port_t irc::sockets::sockaddrs::port() const
{
switch (family())
{