apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Friedrich Dominicus <fr...@q-software-solutions.de>
Subject could that be a bug?
Date Wed, 16 Jul 2008 06:35:18 GMT
Here's the code extract from

static void get_random_info(unsigned char node[NODE_LENGTH])

    (void) apr_generate_random_bytes(node, NODE_LENGTH);


    unsigned char seed[APR_MD5_DIGESTSIZE];
    apr_md5_ctx_t c;

    /* ### probably should revise some of this to be a bit more portable */

    /* Leach & Salz use Linux-specific struct sysinfo;
     * replace with pid/tid for portability (in the spirit of mod_unique_id) */
    struct {
	/* Add thread id here, if applicable, when we get to pthread or apr */
        pid_t pid;
#ifdef NETWARE
        apr_uint64_t t;
        struct timeval t;
        char hostname[257];

    } r;

#ifdef NETWARE
    r.pid = NXThreadGetId();
    NXGetTime(NX_SINCE_BOOT, NX_USECONDS, &(r.t));
    r.pid = getpid();
    gettimeofday(&r.t, (struct timezone *)0);
is not there on Windows but in this case it's getting used. 

    gethostname(r.hostname, 256);
    apr_md5_update(&c, (const unsigned char *)&r, sizeof(r));
    apr_md5_final(seed, &c);

    memcpy(node, seed, NODE_LENGTH);    /* use a subset of the seed bytes */

here are the relevevant parts for apr.h:
#define APR_HAS_RANDOM            0
#define APR_HAVE_SYS_TIME_H     0

we branch into the else but  there is not check for gettimeofday.

And so one get an undefined reference....


View raw message