#include <sys/select.h>
#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#ifndef HAVE_VSNPRINTF
+#include <stdarg.h>
+#endif
+
+#ifdef HAVE_SYS_LOCKING_H
+#include <sys/locking.h>
+#endif
+
/*
* Check for inclusion of <time.h>, versus <sys/time.h>
* Taken verbatim from the autoconf manual.
# endif
#endif
+/*
+ * Don't look for winsock.h if we're on cygwin.
+ */
+#ifndef __CYGWIN__
#ifdef HAVE_WINSOCK_H
#include <winsock.h>
#endif
+#endif
+
+#ifdef __APPLE__
+#undef DARWIN
+#define DARWIN (1)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Functions from missing.c
char *ctime_r(const time_t *l_clock, char *l_buf);
#endif
-#ifdef NEED_DECLARATION_CRYPT
+#if defined(NEED_DECLARATION_CRYPT) || !defined(HAVE_CRYPT)
char *crypt(char *key, char *salt);
#endif
int strcasecmp(char *s1, char *s2);
#endif
-#ifdef NEED_DECLARATION_INET_ATON
+#if defined(NEED_DECLARATION_INET_ATON) || !defined(HAVE_INET_ATON)
struct in_addr;
-int inet_aton(char *cp, struct in_addr *inp);
+int inet_aton(const char *cp, struct in_addr *inp);
#endif
#ifndef HAVE_SETLINEBUF
extern void freeaddrinfo (struct addrinfo *__ai);
/* Convert error return from getaddrinfo() to a string. */
-extern char *gai_strerror (int __ecode);
+extern const char *gai_strerror (int __ecode);
#endif
/* Translate a socket address to a location and service name. */
*/
#ifndef HAVE_VSNPRINTF
-#include <stdarg.h>
extern int vsnprintf(char *str, size_t count, const char *fmt, va_list arg);
#endif
#define INT16SZ (2)
#endif
+#ifndef HAVE_GMTIME_R
+struct tm *gmtime_r(const time_t *l_clock, struct tm *result);
+#endif
+
+#ifndef HAVE_GETTIMEOFDAY
+int gettimeofday (struct timeval *tv, void *tz);
+#endif
+
+#ifdef WIN32
+#undef interface
+#undef mkdir
+#define mkdir(_d, _p) mkdir(_d)
+#define FR_DIR_SEP '\\'
+#define FR_DIR_IS_RELATIVE(p) ((*p && (p[1] != ':')) || ((*p != '\\') && (*p != '\\')))
+#else
+#define FR_DIR_SEP '/'
+#define FR_DIR_IS_RELATIVE(p) ((*p) != '/')
+#endif
+
+#ifdef HAVE_SYS_LOCKING_H
+#define lockf _locking
+
+#define F_ULOCK _LK_UNLCK /* Unlock locked sections. */
+#define F_LOCK _LK_LOCK /* Lock a section for exclusive use. */
+#define F_TLOCK _LK_NBLCK /* Test and lock a section for exclusive use */
+#define F_TEST _LK_RLCK /* Test section for locks by other processes. */
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
+void timeval2ntp(const struct timeval *tv, uint8_t *ntp);
+void ntp2timeval(struct timeval *tv, const char *ntp);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _FR_MISSING_H */