X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=98e208ac39d9212d67491faf0ad69e21af785128;hp=aa8fdda5425dae48dc6b47a8009795603bbefcd3;hb=0a0a6201cd5ff86e106cc77f98a92b1d49f90054;hpb=2abba90245f87fab096edfc3faf7df61646b713f diff --git a/server.c b/server.c index aa8fdda5..98e208ac 100644 --- a/server.c +++ b/server.c @@ -266,7 +266,7 @@ static void parse_config(int override) /* logfile */ if (!conf.logfile_given && conf.daemon_given) { ret = -1; - PARA_EMERG_LOG("%s", "daemon, but no log file\n"); + PARA_EMERG_LOG("fatal: daemon option, but no log file given\n"); goto out; } if (conf.logfile_given) @@ -325,25 +325,30 @@ err: static void init_random_seed(void) { - int fd, ret = -1; unsigned int seed; - size_t len = sizeof(unsigned int); + int fd, ret = para_open("/dev/urandom", O_RDONLY, 0); - fd = open("/dev/urandom", O_RDONLY); - if (fd < 0) + if (ret < 0) + goto err; + fd = ret; + ret = read(fd, &seed, sizeof(seed)); + if (ret < 0) { + ret = -ERRNO_TO_PARA_ERROR(errno); goto out; - ret = -2; - if (read(fd, &seed, len) != len) + } + if (ret != sizeof(seed)) { + ret = -ERRNO_TO_PARA_ERROR(EIO); goto out; + } srandom(seed); ret = 1; out: - if (fd >= 0) - close(fd); - if (ret > 0) + close(fd); + if (ret >= 0) return; - PARA_EMERG_LOG("can not seed pseudo random generator (ret = %d)\n", - ret); +err: + PARA_EMERG_LOG("can not seed pseudo random number generator: %s\n", + para_strerror(-ret)); exit(EXIT_FAILURE); } @@ -376,7 +381,6 @@ static void init_afs(void) (unsigned) afs_socket_cookie); } - static unsigned server_init(int argc, char **argv) { /* connector's address information */