if ((ret = edg_wll_log_direct_connect(ctx,&con_bkserver))) {
edg_wll_UpdateError(ctx,EAGAIN,"edg_wll_DoLogEventServer(): edg_wll_log_direct_connect error");
goto edg_wll_DoLogEventServer_end;
- goto inc_seq_code;
}
count++;
}
case 0: /* timeout */
edg_wll_UpdateError(ctx,EAGAIN,"edg_wll_DoLogEventServer(): select() timeouted");
count = 0;
- goto inc_seq_code;
+ goto edg_wll_DoLogEventServer_end;
break;
case -1: /* error */
switch(errno) {
continue;
default:
edg_wll_UpdateError(ctx,errno,"edg_wll_DoLogEventServer(): select() error");
- goto inc_seq_code;
+ goto edg_wll_DoLogEventServer_end;
}
default:
break;
/* read answer from lbproxy */
if ((ret = edg_wll_log_proxy_read(ctx,&con_lbproxy)) == -1) {
edg_wll_UpdateError(ctx,EAGAIN,"edg_wll_DoLogEventServer(): edg_wll_log_proxy_read error");
- goto inc_seq_code;
+ goto edg_wll_DoLogEventServer_end;
}
count -= 1;
}
/* read answer from bkserver */
if ((ret = edg_wll_log_direct_read(ctx,&con_bkserver)) == -1) {
edg_wll_UpdateError(ctx,EAGAIN,"edg_wll_DoLogEventServer(): edg_wll_log_direct_read error");
- goto inc_seq_code;
+ goto edg_wll_DoLogEventServer_end;
}
count -= 1;
}
}
-inc_seq_code:
- edg_wll_IncSequenceCode(ctx); /* XXX: should not fail, called second time */
-
edg_wll_DoLogEventServer_end:
edg_wll_log_proxy_close(ctx,&con_lbproxy);
edg_wll_log_direct_close(ctx,&con_bkserver);
// va_list fmt_args;
int ret = 0;
edg_wll_LogLine in = NULL, out = NULL;
+ int err_store;
+ char *err_desc_store = NULL;
if ((flags & (EDG_WLL_LOGFLAG_LOCAL|EDG_WLL_LOGFLAG_PROXY|EDG_WLL_LOGFLAG_DIRECT)) == 0) {
return edg_wll_SetError(ctx,ret = EINVAL,"edg_wll_LogEventMaster(): no known flag specified");
if (in) free(in);
if (out) free(out);
- if (!ret) if(edg_wll_IncSequenceCode(ctx)) {
+ if (ctx->errCode) {
+ err_store = ctx->errCode;
+ err_desc_store = strdup(ctx->errDesc); }
+
+ if(edg_wll_IncSequenceCode(ctx)) {
edg_wll_SetError(ctx,ret = EINVAL,"edg_wll_LogEventMaster(): edg_wll_IncSequenceCode failed");
}
+ if (err_desc_store) {
+ edg_wll_SetError(ctx, err_store, err_desc_store);
+ free(err_desc_store); }
+
if (ret) edg_wll_UpdateError(ctx,0,"Logging library ERROR: ");
return edg_wll_Error(ctx,NULL,NULL);