From: Zdeněk Šustr Date: Wed, 25 May 2011 08:07:01 +0000 (+0000) Subject: - Handling error returned by gethostbyname() (Savannah Bug #67627) X-Git-Tag: glite-lb-client_R_4_1_10_1~14 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=2af75a7e56c70cc8a6386299475f5dfc5b361fe7;p=jra1mw.git - Handling error returned by gethostbyname() (Savannah Bug #67627) --- diff --git a/org.glite.jobid.api-c/src/cjobid.c b/org.glite.jobid.api-c/src/cjobid.c index bfd4203..e046b0c 100644 --- a/org.glite.jobid.api-c/src/cjobid.c +++ b/org.glite.jobid.api-c/src/cjobid.c @@ -51,6 +51,7 @@ int glite_jobid_recreate(const char* bkserver, int port, const char *unique, gli struct timeval tv; int skip; char* portbeg; + char* rndaddr = NULL; struct hostent* he; @@ -58,16 +59,18 @@ int glite_jobid_recreate(const char* bkserver, int port, const char *unique, gli return EINVAL; if (unique == NULL) { + srandom(tv.tv_usec); gethostname(hostname, 100); he = gethostbyname(hostname); - assert(he->h_length > 0); + if (!he) asprintf(&rndaddr,"%d.%d.%d.%d",rand()%256,rand()%256,rand()%256,rand()%256); gettimeofday(&tv, NULL); - srandom(tv.tv_usec); skip = strlen(hostname); skip += sprintf(hostname + skip, "-IP:0x%x-pid:%d-rnd:%d-time:%d:%d", - *((int*)he->h_addr_list[0]), getpid(), (int)random(), - (int)tv.tv_sec, (int)tv.tv_usec); + rndaddr ? rndaddr : *((int*)he->h_addr_list[0]), + getpid(), (int)random(), (int)tv.tv_sec, (int)tv.tv_usec); + free(he); + free(rndaddr); } *jobId = NULL;