From 2e753afa9419f43f237dd9eb385ef703d7445a29 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ji=C5=99=C3=AD=20=C5=A0kr=C3=A1bal?= Date: Fri, 5 Aug 2005 14:40:30 +0000 Subject: [PATCH] - when the localloger calls can't connect to the interlogger, consider that as a soft error (return non-error retval but set the error into context) --- org.glite.lb.server/src/il_lbproxy.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/org.glite.lb.server/src/il_lbproxy.c b/org.glite.lb.server/src/il_lbproxy.c index 050b642..4b682e7 100644 --- a/org.glite.lb.server/src/il_lbproxy.c +++ b/org.glite.lb.server/src/il_lbproxy.c @@ -22,7 +22,9 @@ edg_wll_EventSendProxy( long filepos; char *jobid_s, *event_file = NULL; + int err = 0; +#define _err(n) { err = n; goto out; } edg_wll_ResetError(ctx); @@ -32,30 +34,33 @@ edg_wll_EventSendProxy( jobid_s = edg_wlc_JobIdGetUnique(jobid); if ( !jobid_s ) { edg_wll_SetError(ctx, ENOMEM, "edg_wlc_JobIdGetUnique()"); - goto out; + _err(1); } asprintf(&event_file, "%s.%s", lbproxy_ilog_file_prefix, jobid_s); if ( !event_file ) { edg_wll_SetError(ctx, ENOMEM, "asprintf()"); - goto out; + _err(1); } if ( edg_wll_log_event_write(ctx, event_file, event, FCNTL_ATTEMPTS, FCNTL_TIMEOUT, &filepos) ) { edg_wll_UpdateError(ctx, 0, "edg_wll_log_event_write()"); - goto out; + _err(1); } if ( edg_wll_log_event_send(ctx, lbproxy_ilog_socket_path, filepos, event, strlen(event), 1, &timeout) ) { edg_wll_UpdateError(ctx, 0, "edg_wll_log_event_send()"); - goto out; + _err(-1); } out: if ( jobid_s ) free(jobid_s); if ( event_file ) free(event_file); - return edg_wll_Error(ctx, NULL, NULL)? edg_wll_UpdateError(ctx, 0, "edg_wll_EventSendProxy()"): 0; + if ( !err ) return 0; + edg_wll_UpdateError(ctx, 0, "edg_wll_EventSendProxy()"); + if ( err < 0 ) return 0; + return edg_wll_Error(ctx, NULL, NULL); } -- 1.8.2.3