register_socket() missed a variable declaration if neither
HAVE_SYS_EPOLL_H nor HAVE_SYS_EVENT_H was defined.
While we're fixing that, adjust the tests to check pg_config.h for one
of the multiplexer implementations, rather than assuming that Windows is
the only platform without support. (Christoph reported this on
hurd-amd64, an experimental Debian.)
Author: Jacob Champion <
[email protected]>
Reported-by: Christoph Berg <[email protected]>
Discussion: https://postgr.es/m/Z-sPFl27Y0ZC-VBl%40msg.df7cb.de
 register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx,
                void *socketp)
 {
-#ifdef HAVE_SYS_EPOLL_H
    struct async_ctx *actx = ctx;
+
+#ifdef HAVE_SYS_EPOLL_H
    struct epoll_event ev = {0};
    int         res;
    int         op = EPOLL_CTL_ADD;
    return 0;
 #endif
 #ifdef HAVE_SYS_EVENT_H
-   struct async_ctx *actx = ctx;
    struct kevent ev[2] = {0};
    struct kevent ev_out[2];
    struct timespec timeout = {0};
 
      'Potentially unsafe test oauth not enabled in PG_TEST_EXTRA';
 }
 
-if ($windows_os)
+unless (check_pg_config("#define HAVE_SYS_EVENT_H 1")
+   or check_pg_config("#define HAVE_SYS_EPOLL_H 1"))
 {
-   plan skip_all => 'OAuth server-side tests are not supported on Windows';
+   plan skip_all =>
+     'OAuth server-side tests are not supported on this platform';
 }
 
 if ($ENV{with_libcurl} ne 'yes')