From a5dce40726757a6679b534a5f8456120ff974483 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 4 May 2011 10:30:22 +0200 Subject: [PATCH] if /dev/urandom is not available use rand() to get a random node name --- src/cluster.c | 8 +++----- src/t_zset.c | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/cluster.c b/src/cluster.c index c4a56f4d..95889201 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -24,12 +24,10 @@ void clusterGetRandomName(char *p) { char *charset = "0123456789abcdef"; int j; - if (!fp) { - redisLog(REDIS_WARNING, - "Unrecovarable error: can't open /dev/urandom:%s" ,strerror(errno)); - exit(1); + if (fp == NULL || fread(p,REDIS_CLUSTER_NAMELEN,1,fp) == 0) { + for (j = 0; j < REDIS_CLUSTER_NAMELEN; j++) + p[j] = rand(); } - fread(p,REDIS_CLUSTER_NAMELEN,1,fp); for (j = 0; j < REDIS_CLUSTER_NAMELEN; j++) p[j] = charset[p[j] & 0x0F]; fclose(fp); diff --git a/src/t_zset.c b/src/t_zset.c index e9da9fdb..3e76ebd1 100644 --- a/src/t_zset.c +++ b/src/t_zset.c @@ -1233,7 +1233,7 @@ int zuiNext(zsetopsrc *op, zsetopval *val) { if (op->type == REDIS_SET) { iterset *it = &op->iter.set; if (op->encoding == REDIS_ENCODING_INTSET) { - if (!intsetGet(it->is.is,it->is.ii,&val->ell)) + if (!intsetGet(it->is.is,it->is.ii,(int64_t*)&val->ell)) return 0; val->score = 1.0; -- 2.47.2