Re: msys inet_pton strangeness

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-09-28T17:26:21Z
Lists: pgsql-hackers
On 2024-09-28 Sa 11:49 AM, Tom Lane wrote:
> Andrew Dunstan<andrew@dunslane.net>  writes:
>> It's complaining like this:
>> C:/tools/xmsys64/home/pgrunner/bf/root/REL_15_STABLE/pgsql/src/interfaces/libpq/fe-secure-common.c:219:21: error: implicit declaration of function 'inet_pton'; did you mean 'inet_aton'? [-Wimplicit-function-declaration]
>>     219 |                 if (inet_pton(AF_INET6, host, &addr) == 1)
>>         |                     ^~~~~~~~~
>> configure has determined that we have inet_pton, and I have repeated the
>> test manually.
> configure's test is purely a linker test.  It does not check to see
> where/whether the function is declared.  Meanwhile, the compiler is
> complaining that it doesn't see a declaration.  So the problem
> probably can be fixed by adding an #include, but you'll need to
> figure out what.
>
> I see that our other user of inet_pton, fe-secure-openssl.c,
> has a rather different #include setup than fe-secure-common.c;
> does it compile OK?


I'll try, but this error occurs before we get that far.

We should have included ws2tcpip.h, which includes this:

    #define InetPtonA inet_pton
    WINSOCK_API_LINKAGE INT WSAAPI InetPtonA(INT Family, LPCSTR pStringBuf, PVOID pAddr);

It's conditioned on (_WIN32_WINNT >= 0x0600), but that should be true.

So I'm still very confused ;-(


cheers


andrew


--
Andrew Dunstan
EDB:https://www.enterprisedb.com

Commits

  1. Bump MIN_WINNT for MINGW to clear a build error

  2. Make Windows 10 the minimal runtime requirement for WIN32

  3. libpq: Allow IP address SANs in server certificates