soap.recvfd = fd;
soap_begin_recv(&soap);
memset(&out, 0, sizeof(out));
-
+
+ soap_default__jpelem__ServerConfigurationResponse(&soap, &out);
if (!soap_get__jpelem__ServerConfigurationResponse(&soap, &out, "ServerConfiguration", NULL)) {
soap_end_recv(&soap);
soap_end(&soap);
conf->feeds[i] = calloc(1, sizeof(*conf->feeds[i]));
conf->feeds[i]->PS_URL=strdup(feed->primaryServer);
- if (feed->__sizecondition) {
- glite_jpis_SoapToPrimaryQueryConds(&soap, feed->__sizecondition,
- feed->condition, &conf->feeds[i]->query);
- }
+ if (glite_jpis_SoapToPrimaryQueryConds(&soap, feed->__sizecondition,
+ feed->condition, &conf->feeds[i]->query)) return EINVAL;
conf->feeds[i]->history = feed->history;
conf->feeds[i]->continuous = feed->continuous;
size_t datalen;
if ((ret = array_init(blob, len, &maxlen, 1024)) != 0) return ret;
- query = *queries;
+ query = queries ? *queries : NULL;
while(query && query->attr) {
if ((ret = array_add_long(blob, len, &maxlen, COND_MAGIC)) != 0) goto fail;
datalen = strlen(query->attr) + 1;
glite_jp_query_rec_t *qr;
- assert(in); assert(out);
- qr = calloc(2, sizeof(*qr));
+ assert(in && in->attr); assert(out);
+ *out = qr = calloc(2, sizeof(*qr));
qr[0].attr = strdup(in->attr);
glite_jpis_SoapToQueryOp(in->op, &(qr[0].op));
glite_jpis_SoapToAttrOrig(soap, in->origin, &(qr[0].origin) );
- *out = qr;
-
return 0;
}
glite_jp_query_rec_t **qr;
int i;
- assert(in); assert(out);
+ assert(in || !size); assert(out);
qr = calloc(size+1, sizeof(*qr));
for (i=0; i<size; i++) {
if ( SoapToPrimaryQueryCond(soap, GLITE_SECURITY_GSOAP_LIST_GET(in, i), &(qr[i])) ) {
*out = NULL;
+ free(qr);
return 1;
}
}
case GLITE_JP_QUERYOP_WITHIN:
if (QueryRecordValToSoap(soap, in->binary, in->size2, in->value2, &qr->value2))
return SOAP_FAULT;
- default:
+ case GLITE_JP_QUERYOP_EQUAL:
+ case GLITE_JP_QUERYOP_UNEQUAL:
+ case GLITE_JP_QUERYOP_LESS:
+ case GLITE_JP_QUERYOP_GREATER:
if (QueryRecordValToSoap(soap, in->binary, in->size, in->value, &qr->value))
return SOAP_FAULT;
+ case GLITE_JP_QUERYOP_EXISTS:
+ break;
+ default:
+ assert(0); // unknown or undefined operation
break;
}
Record JP tag:
--------------
-$ jpps-test RecordTag JPBID TagA 1 blah
+$ jpps-test RecordTag JOBID TagA 1 blah
TODO