win32: Fix random file name generation, init random generator once.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Klaas Freitag 2012-06-20 10:40:40 +02:00 committed by Andreas Schneider
parent 28e4963647
commit fc6cd714c7
2 changed files with 10 additions and 2 deletions

View File

@ -328,6 +328,9 @@ retry_vio_init:
ctx->status = CSYNC_STATUS_INIT;
/* initialize random generator */
srand(time(NULL));
rc = 0;
out:

View File

@ -132,10 +132,15 @@ int c_tmpname(char *template) {
}
}
srand(time(NULL));
for (i = 0; i < 6; ++i) {
#ifdef _WIN32
/* in win32 MAX_RAND is 32767, thus we can not shift that far,
* otherwise the last three chars are 0
*/
int hexdigit = (rand() >> (i * 2)) & 0x1f;
#else
int hexdigit = (rand() >> (i * 5)) & 0x1f;
#endif
tmp[i] = hexdigit > 9 ? hexdigit + 'a' - 10 : hexdigit + '0';
}