Enable sockets.c to compile with GCC 4.4 headers

The GCC 4.4 version of netdb.h moves EAI_NODATA behind a __USE_GNU
define, because that feature is not part of the POSIX standard for
that header.

In order to compile sockets.c without error under GCC 4.4 we
explicitly define __USE_GNU and explicitly include netdb.h.
diff --git a/sockets.c b/sockets.c
index e9be66f..839b94f 100644
--- a/sockets.c
+++ b/sockets.c
@@ -31,7 +31,14 @@
 #  include <sys/socket.h>
 #  include <netinet/in.h>
 #  include <netinet/tcp.h>
-#  include <netdb.h>
+#  ifdef __linux__ /* Recent versions of glibc only define EAI_NODATA, which is an
+                      extension to the POSIX standard, if __USE_GNU is defined. */
+#    define __USE_GNU
+#    include <netdb.h>
+#    undef __USE_GNU
+#  else /* !__linux__ */
+#    include <netdb.h>
+#  endif /* !__linux__ */
 #  if HAVE_UNIX_SOCKETS
 #    include <sys/un.h>
 #    ifndef UNIX_PATH_MAX