Use AF_UNSPEC not PF_UNSPEC in getaddrinfo calls.
authorTom Lane <[email protected]>
Wed, 16 Apr 2014 17:21:09 +0000 (13:21 -0400)
committerTom Lane <[email protected]>
Wed, 16 Apr 2014 17:21:47 +0000 (13:21 -0400)
According to the Single Unix Spec and assorted man pages, you're supposed
to use the constants named AF_xxx when setting ai_family for a getaddrinfo
call.  In a few places we were using PF_xxx instead.  Use of PF_xxx
appears to be an ancient BSD convention that was not adopted by later
standardization.  On BSD and most later Unixen, it doesn't matter much
because those constants have equivalent values anyway; but nonetheless
this code is not per spec.

In the same vein, replace PF_INET by AF_INET in one socket() call, which
wasn't even consistent with the other socket() call in the same function
let alone the remainder of our code.

Per investigation of a Cygwin trouble report from Marco Atzeri.  It's
probably a long shot that this will fix his issue, but it's wrong in
any case.

src/backend/libpq/hba.c
src/backend/postmaster/pgstat.c
src/bin/initdb/initdb.c
src/port/pipe.c

index b679e946538ce8fdb2d1d9494550b3bb2cfc9d86..5762fad3efb632bbe900cb908d454251f05358c1 100644 (file)
@@ -744,7 +744,7 @@ parse_hba_line(List *line, int line_num, HbaLine *parsedline)
 
        /* Get the IP address either way */
        hints.ai_flags = AI_NUMERICHOST;
-       hints.ai_family = PF_UNSPEC;
+       hints.ai_family = AF_UNSPEC;
        hints.ai_socktype = 0;
        hints.ai_protocol = 0;
        hints.ai_addrlen = 0;
index cf9492ed3fa63464399cc0a3f50c3e7fcc6288e9..b12a0d86ec900979b49f3b777c18ac558a6b5a49 100644 (file)
@@ -309,7 +309,7 @@ pgstat_init(void)
     * Create the UDP socket for sending and receiving statistic messages
     */
    hints.ai_flags = AI_PASSIVE;
-   hints.ai_family = PF_UNSPEC;
+   hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_DGRAM;
    hints.ai_protocol = 0;
    hints.ai_addrlen = 0;
index 3b34baf083d691187e353aacacf653c34e848ff8..4ddd94e3bba1fa7d559ab4828143189e6a2ceeef 100644 (file)
@@ -1238,7 +1238,7 @@ setup_config(void)
 
        /* for best results, this code should match parse_hba() */
        hints.ai_flags = AI_NUMERICHOST;
-       hints.ai_family = PF_UNSPEC;
+       hints.ai_family = AF_UNSPEC;
        hints.ai_socktype = 0;
        hints.ai_protocol = 0;
        hints.ai_addrlen = 0;
index a6df1a4ee1e07696c3427c986cc05c1d11fbc706..631af393483cdc66065ede4e1c5aa056a7645267 100644 (file)
@@ -55,7 +55,7 @@ pgpipe(int handles[2])
        closesocket(s);
        return -1;
    }
-   if ((handles[1] = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
+   if ((handles[1] = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
    {
        ereport(LOG, (errmsg_internal("pgpipe failed to create socket 2: %ui", WSAGetLastError())));
        closesocket(s);