From f581a2739bb274365590ed834d61670899988ce1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michal=20Voc=C5=AF?= Date: Fri, 28 Jan 2011 10:16:21 +0000 Subject: [PATCH] fix for SB#37213 --- org.glite.lb.logger/src/logd_proto.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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) { -- 1.8.2.3