]> git.meshlink.io Git - meshlink/blobdiff - lib/dropin.c
Merge branch 'master' into 1.1
[meshlink] / lib / dropin.c
index 773fe4882f2bbbf6cc2190f74c7dba717158c097..4ad32378bdbb541c90ac9e1303d8da059ff9988a 100644 (file)
@@ -124,25 +124,34 @@ char *get_current_dir_name(void) {
 
 #ifndef HAVE_ASPRINTF
 int asprintf(char **buf, const char *fmt, ...) {
-       int status;
+       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;
+       va_list aq;
        int len;
 
        len = 4096;
        *buf = xmalloc(len);
 
-       va_start(ap, fmt);
-       status = vsnprintf(*buf, len, fmt, ap);
-       va_end(ap);
+       va_copy(aq, ap);
+       status = vsnprintf(*buf, len, fmt, aq);
+       va_end(aq);
 
        if(status >= 0)
                *buf = xrealloc(*buf, status + 1);
 
        if(status > len - 1) {
                len = status;
-               va_start(ap, fmt);
-               status = vsnprintf(*buf, len, fmt, ap);
-               va_end(ap);
+               va_copy(aq, ap);
+               status = vsnprintf(*buf, len, fmt, aq);
+               va_end(aq);
        }
 
        return status;
@@ -156,15 +165,3 @@ int gettimeofday(struct timeval *tv, void *tz) {
        return 0;
 }
 #endif
-
-#ifndef HAVE_RANDOM
-#include <openssl/rand.h>
-
-long int random(void) {
-       long int x;
-       
-       RAND_pseudo_bytes((unsigned char *)&x, sizeof(x));
-
-       return x;
-}
-#endif