{
edg_wll_Context ctx;
char *errt,*errd;
- edg_wll_Event *events;
+ edg_wll_Event *events = NULL;
edg_wlc_JobId job;
int i,opt,delay = 1,count = 0;
if ( edg_wll_JobLog(ctx,job,&events) )
{
- if ( edg_wll_Error(ctx, &errt, &errd) != E2BIG )
- goto err;
-
fprintf(stderr,"%s: %s (%s)\n",argv[0],errt,errd);
}
- for ( i = 0; events[i].type != EDG_WLL_EVENT_UNDEF; i++ )
+ for ( i = 0; events && events[i].type != EDG_WLL_EVENT_UNDEF; i++ )
{
char *e = edg_wll_UnparseEvent(ctx,events+i);
fputs(e,stdout);
char ***resp_head,
char **resp_body)
{
+ int ec;
+ char *ed = NULL;
+
if (edg_wll_open(ctx)) return edg_wll_Error(ctx,NULL,NULL);
switch (edg_wll_http_send(ctx,request,req_head,req_body)) {
edg_wll_close(ctx);
if (edg_wll_open(ctx)
|| edg_wll_http_send(ctx,request,req_head,req_body))
- return edg_wll_Error(ctx,NULL,NULL);
+ goto err;
/* fallthrough */
case 0: break;
- default: return edg_wll_Error(ctx,NULL,NULL);
+ default: goto err;
}
- if (edg_wll_http_recv(ctx,response,resp_head,resp_body) == ENOTCONN) {
- edg_wll_close(ctx);
- (void) (edg_wll_open(ctx)
- || edg_wll_http_send(ctx,request,req_head,req_body)
- || edg_wll_http_recv(ctx,response,resp_head,resp_body));
+ switch (edg_wll_http_recv(ctx,response,resp_head,resp_body)) {
+ case ENOTCONN:
+ edg_wll_close(ctx);
+ if (edg_wll_open(ctx)
+ || edg_wll_http_send(ctx,request,req_head,req_body)
+ || edg_wll_http_recv(ctx,response,resp_head,resp_body))
+ goto err;
+ /* fallthrough */
+ case 0: break;
+ default: goto err;
}
gettimeofday(&ctx->connPool[ctx->connToUse].lastUsed, NULL);
-
- return edg_wll_Error(ctx,NULL,NULL);
+ return 0;
+
+err:
+ ec = edg_wll_Error(ctx,NULL,&ed);
+ edg_wll_close(ctx);
+ edg_wll_SetError(ctx,ec,ed);
+ free(ed);
+ return ec;
}