projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use access() instead of stat() for checking whether scripts exist.
[tinc]
/
lib
/
dropin.c
diff --git
a/lib/dropin.c
b/lib/dropin.c
index
0efa5f2
..
f6eda42
100644
(file)
--- a/
lib/dropin.c
+++ b/
lib/dropin.c
@@
-1,7
+1,7
@@
/*
dropin.c -- a set of drop-in replacements for libc functions
/*
dropin.c -- a set of drop-in replacements for libc functions
- Copyright (C) 2000-200
3 Ivo Timmermans <ivo@o2w.nl>
,
- 2000-200
3 Guus Sliepen <guus@sliepen.eu
.org>
+ Copyright (C) 2000-200
5 Ivo Timmermans
,
+ 2000-200
6 Guus Sliepen <guus@tinc-vpn
.org>
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
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.
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 "system.h"
+#include "xalloc.h"
+
#ifndef HAVE_DAEMON
/*
Replacement for the daemon() function.
#ifndef HAVE_DAEMON
/*
Replacement for the daemon() function.
@@
-38,6
+40,7
@@
*/
int daemon(int nochdir, int noclose)
{
*/
int daemon(int nochdir, int noclose)
{
+#ifdef HAVE_FORK
pid_t pid;
int fd;
pid_t pid;
int fd;
@@
-80,6
+83,9
@@
int daemon(int nochdir, int noclose)
}
return 0;
}
return 0;
+#else
+ return -1;
+#endif
}
#endif
}
#endif
@@
-119,29
+125,46
@@
char *get_current_dir_name(void)
#endif
#ifndef HAVE_ASPRINTF
#endif
#ifndef HAVE_ASPRINTF
-int asprintf(char **buf, const char *fmt, ...)
+int asprintf(char **buf, const char *fmt, ...) {
+ int result;
+ va_list ap;
+ va_start(ap, fmt);
+ result = vasprintf(buf, fmt, ap);
+ va_end(ap);
+ return result;
+}
+
+int vasprintf(char **buf, const char *fmt, va_list ap) {
{
int status;
{
int status;
- va_list a
p
;
+ va_list a
q
;
int len;
len = 4096;
*buf = xmalloc(len);
int len;
len = 4096;
*buf = xmalloc(len);
- va_
start(ap, fmt
);
- status = vsnprintf(*buf, len, fmt, a
p
);
- va_end(a
p
);
+ va_
copy(aq, ap
);
+ status = vsnprintf(*buf, len, fmt, a
q
);
+ va_end(a
q
);
if(status >= 0)
if(status >= 0)
- *buf = xrealloc(*buf, status);
+ *buf = xrealloc(*buf, status
+ 1
);
if(status > len - 1) {
len = status;
if(status > len - 1) {
len = status;
- va_
start(ap, fmt
);
- status = vsnprintf(*buf, len, fmt, a
p
);
- va_end(a
p
);
+ va_
copy(aq, ap
);
+ status = vsnprintf(*buf, len, fmt, a
q
);
+ va_end(a
q
);
}
return status;
}
#endif
}
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