From: Jiří Škrábal Date: Fri, 5 Aug 2005 14:42:03 +0000 (+0000) Subject: - do not reply an error message to the client, when lbproxy can't connect X-Git-Tag: glite-lb-proxy_R_1_1_1~4 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=3f3e25cde7bb036c9fcc07a9719ad09a3749fce0;p=jra1mw.git - do not reply an error message to the client, when lbproxy can't connect to the interlogger --- 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; }