Unixware 7.1.1 implements RFC 2133 (Basic Socket Interface Extensions for

IPv6) but not the successor RFC 2553. The configure script detects this
and decides that tnftp needs to compile its own version of getaddrinfo().
This produces the error message

  /usr/include/netdb.h:248: `getaddrinfo' previously defined here

because Unixware provides an implementation of getaddrinfo() in netdb.h
instead of a prototype declaration :-/. Since netdb.h cannot be omitted,
we will always get this definition and tnftp's version of getaddrinfo
will always create a conflict.

This ugly preprocessor hack works around the problem. Hints for a better
solution welcome.
This commit is contained in:
heinz 2004-05-16 23:14:17 +00:00
parent 51d18c346e
commit b3f13a649f

View file

@ -1,4 +1,4 @@
/* $Id: tnftp.h,v 1.2 2004/03/11 13:45:55 grant Exp $ */
/* $Id: tnftp.h,v 1.3 2004/05/16 23:14:17 heinz Exp $ */
#define FTP_PRODUCT "tnftp"
#define FTP_VERSION "20030825"
@ -23,7 +23,13 @@
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#ifdef HAVE_RFC2553_NETDB
#include <netdb.h>
#else
#define getaddrinfo non_rfc2553_getaddrinfo
#include <netdb.h>
#undef getaddrinfo
#endif
#include <pwd.h>
#include <setjmp.h>
#include <signal.h>