From 413695dea93886e965a9693dc61d27d9bead0402 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michal=20Voc=C5=AF?= Date: Tue, 8 Feb 2011 08:49:31 +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 9ef2793..cc9cb79 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