From: Michal Voců Date: Fri, 28 Jan 2011 10:16:21 +0000 (+0000) Subject: fix for SB#37213 X-Git-Tag: glite-lbjp-common-db_R_2_0_5_3~6 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=f581a2739bb274365590ed834d61670899988ce1;p=jra1mw.git fix for SB#37213 --- diff --git a/org.glite.lb.logger/src/logd_proto.c b/org.glite.lb.logger/src/logd_proto.c index 24561ce..1ca4622 100644 --- a/org.glite.lb.logger/src/logd_proto.c +++ b/org.glite.lb.logger/src/logd_proto.c @@ -366,18 +366,17 @@ int edg_wll_log_proto_server(edg_wll_GssConnection *con, struct timeval *timeout /* look for the unique unused long local-logger id (LLLID) */ lllid = 1000*getpid(); for (i=0; (i<1000)&&(!unique); i++) { + struct stat statbuf; lllid += i; snprintf(confirm_sock_name, sizeof(confirm_sock_name), "/tmp/dglogd_sock_%ld", lllid); - if ((filedesc = open(confirm_sock_name,O_CREAT)) == -1) { - if (errno == EEXIST) { - glite_common_log(LOG_CATEGORY_ACCESS,LOG_PRIORITY_WARN,"Warning: LLLID %ld already in use.\n",lllid); + if ((filedesc = stat(confirm_sock_name,&statbuf)) == 0) { + glite_common_log(LOG_CATEGORY_ACCESS,LOG_PRIORITY_WARN,"Warning: LLLID %ld already in use.\n",lllid); + } else { + if (errno == ENOENT) { + unique = 1; } else { - glite_common_log_SYS_ERROR("open"); + glite_common_log_SYS_ERROR("stat"); } - } else { - unique = 1; - close(filedesc); filedesc = 0; - unlink(confirm_sock_name); } } if (!unique) {