From 0d5bbbda31a9c29e448c576f63622728f084846e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Posp=C3=AD=C5=A1il?= Date: Wed, 9 Dec 2009 12:57:58 +0000 Subject: [PATCH] __lb4agu__GetActivityStatus now functional (memory allocation fixes, fill also the __sizestatus) --- org.glite.lb.server/src/ws_lb4agu.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/org.glite.lb.server/src/ws_lb4agu.c b/org.glite.lb.server/src/ws_lb4agu.c index 028df6f..ce6b522 100644 --- a/org.glite.lb.server/src/ws_lb4agu.c +++ b/org.glite.lb.server/src/ws_lb4agu.c @@ -15,6 +15,8 @@ extern int debug; +#define LB_GLUE_STATE_PREFIX "urn:org.glite.lb" + SOAP_FMAC5 int SOAP_FMAC6 __lb4agu__GetActivityStatus( struct soap* soap, struct _lb4ague__GetActivityStatusRequest *in, @@ -30,10 +32,12 @@ SOAP_FMAC5 int SOAP_FMAC6 __lb4agu__GetActivityStatus( if (!in) return SOAP_FAULT; if (!in->id) return SOAP_FAULT; - out = soap_malloc(soap, sizeof(*out)); + out->status = soap_malloc(soap, in->__sizeid * (sizeof(char *))); /* process each request individually: */ - for (i=0; in->id[i]; i++) { + for (i=0; i__sizeid; i++) { + char buf[1000],*stat = NULL; + /* first parse jobId */ if ( edg_wlc_JobIdParse(in->id[i], &j) ) { edg_wll_SetError(ctx, EINVAL, in->id[i]); @@ -63,8 +67,12 @@ SOAP_FMAC5 int SOAP_FMAC6 __lb4agu__GetActivityStatus( } /* fill in the response fields */ - out->status[i] = edg_wll_StatToString(s.state); + snprintf(buf,sizeof buf,LB_GLUE_STATE_PREFIX ":%s",stat = edg_wll_StatToString(s.state)); + buf[sizeof(buf) - 1] = 0; + out->status[i] = soap_strdup(soap,buf); + free(stat); } + out->__sizestatus = in->__sizeid; return SOAP_OK; } -- 1.8.2.3