X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Fdropin.c;h=f0c023228d08871bd25a727da8ef5222d1d1a27e;hp=0efa5f2be5e84d2afc53d7183bffcd339f71c846;hb=dced64c5c3625f6d2f0674e9fed14455aabc635e;hpb=e449d94caef963809d417f16497f6f978e10d731 diff --git a/lib/dropin.c b/lib/dropin.c index 0efa5f2b..f0c02322 100644 --- a/lib/dropin.c +++ b/lib/dropin.c @@ -1,7 +1,7 @@ /* dropin.c -- a set of drop-in replacements for libc functions - Copyright (C) 2000-2003 Ivo Timmermans , - 2000-2003 Guus Sliepen + Copyright (C) 2000-2004 Ivo Timmermans , + 2000-2004 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,11 +17,13 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: dropin.c,v 1.1.2.15 2003/07/17 15:06:25 guus Exp $ + $Id$ */ #include "system.h" +#include "xalloc.h" + #ifndef HAVE_DAEMON /* Replacement for the daemon() function. @@ -38,6 +40,7 @@ */ int daemon(int nochdir, int noclose) { +#ifdef HAVE_FORK pid_t pid; int fd; @@ -80,6 +83,9 @@ int daemon(int nochdir, int noclose) } return 0; +#else + return -1; +#endif } #endif @@ -133,7 +139,7 @@ int asprintf(char **buf, const char *fmt, ...) va_end(ap); if(status >= 0) - *buf = xrealloc(*buf, status); + *buf = xrealloc(*buf, status + 1); if(status > len - 1) { len = status; @@ -145,3 +151,23 @@ int asprintf(char **buf, const char *fmt, ...) return status; } #endif + +#ifndef HAVE_GETTIMEOFDAY +int gettimeofday(struct timeval *tv, void *tz) { + tv->tv_sec = time(NULL); + tv->tv_usec = 0; + return 0; +} +#endif + +#ifndef HAVE_RANDOM +#include + +long int random(void) { + long int x; + + RAND_pseudo_bytes((unsigned char *)&x, sizeof(x)); + + return x; +} +#endif