From 3f3e25cde7bb036c9fcc07a9719ad09a3749fce0 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:42:03 +0000 Subject: [PATCH] - do not reply an error message to the client, when lbproxy can't connect to the interlogger --- org.glite.lb.server/src/stored_master.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/org.glite.lb.server/src/stored_master.c b/org.glite.lb.server/src/stored_master.c index 2c21647..41b7d89 100644 --- a/org.glite.lb.server/src/stored_master.c +++ b/org.glite.lb.server/src/stored_master.c @@ -96,25 +96,34 @@ gss_plain_reader(char *buffer, int max_len) int edg_wll_StoreProtoProxy(edg_wll_Context ctx) { - char *buf; - int len, ret; + char *buf, + *errd = NULL; + int len, ret, + err = 0; edg_wll_ResetError(ctx); tmp_ctx = ctx; ret = read_il_data(&buf, gss_plain_reader); - if(ret < 0) - return(ret); + if ( ret < 0 ) return(ret); - handle_request(ctx, buf); + if ( !(ret = handle_request(ctx, buf)) ) { + if ( (err = edg_wll_Error(ctx, NULL, &errd)) ) edg_wll_ResetError(ctx); + } free(buf); if ( (len = create_reply(ctx, &buf)) > 0 ) { - if ( edg_wll_plain_write_full(&ctx->connProxy->conn, buf, len, &ctx->p_tmp_timeout) < 0 ) + if ( edg_wll_plain_write_full(&ctx->connProxy->conn, buf, len, &ctx->p_tmp_timeout) < 0 ) { + if ( errd ) free(errd); return edg_wll_SetError(ctx, errno, "StoreProtoProxy() - sending reply"); + } free(buf); } - else edg_wll_SetError(ctx, E2BIG, "create_reply()"); + else ret = edg_wll_SetError(ctx, E2BIG, "create_reply()"); - return edg_wll_Error(ctx, NULL, NULL); + if ( err ) { + edg_wll_SetError(ctx, err, errd); + free(errd); + } + return ret? edg_wll_Error(ctx, NULL, NULL): 0; } -- 1.8.2.3