]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
daemon: use unpack_sockaddr_* for clarity
authorEric Wong <e@80x24.org>
Tue, 8 Apr 2025 20:49:57 +0000 (20:49 +0000)
committerEric Wong <e@80x24.org>
Fri, 11 Apr 2025 08:40:37 +0000 (08:40 +0000)
unpack_sockaddr_un and unpack_sockaddr_in have been around since
Perl 5.002 in the mid-1990s, so be explicit and use them instead
of relying on wantarray caller context.  We'll also omit the
$host check for ($port == 0) since zero is not a valid TCP port.

lib/PublicInbox/Daemon.pm

index cb13a4cc00250a262c80e5d4a8399b77d28aa2d0..dbac514635eb97342b65c766a236908c01755bfe 100644 (file)
@@ -431,11 +431,7 @@ sub sockname ($) {
        my ($s) = @_;
        my $addr = getsockname($s) or return;
        my ($host, $port) = host_with_port($addr);
-       if ($port == 0 && $host eq '127.0.0.1') {
-               my ($path) = Socket::sockaddr_un($addr);
-               return $path;
-       }
-       "$host:$port";
+       ($port == 0) ? (Socket::unpack_sockaddr_un($addr))[0] : "$host:$port";
 }
 
 sub unpack_ipv6 ($) {
@@ -470,7 +466,7 @@ sub host_with_port ($) {
                        ($host, $port) = unpack_ipv6($addr);
                        $host = "[$host]";
                } else {
-                       ($port, $host) = Socket::sockaddr_in($addr);
+                       ($port, $host) = Socket::unpack_sockaddr_in($addr);
                        $host = Socket::inet_ntoa($host);
                }
        };