Various fixes (robusness, doc, ...).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 29 Mar 2007 13:25:08 +0000 (13:25 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 29 Mar 2007 13:25:08 +0000 (13:25 +0000)
org.glite.jp.index/src/conf.c
org.glite.jp.index/src/db_ops.c
org.glite.jp.index/src/ws_is_typeref.c
org.glite.jp.index/src/ws_ps_typeref.c
org.glite.jp.primary/examples/README.test

index 52b44c5..2769fed 100644 (file)
@@ -176,7 +176,8 @@ static int read_conf(glite_jp_is_conf *conf, char *conf_file)
        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);
@@ -211,10 +212,8 @@ static int read_conf(glite_jp_is_conf *conf, char *conf_file)
                        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;
index 44649a0..3f2f24d 100644 (file)
@@ -149,7 +149,7 @@ static int glite_jpis_db_queries_serialize(glite_jpis_context_t isctx, void **bl
        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;
index a888351..471fde5 100644 (file)
@@ -159,8 +159,8 @@ static int SoapToPrimaryQueryCond(
        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));
@@ -184,8 +184,6 @@ static int SoapToPrimaryQueryCond(
        
        glite_jpis_SoapToAttrOrig(soap, in->origin, &(qr[0].origin) );
        
-       *out = qr;
-
        return 0;
 }
 
@@ -206,12 +204,13 @@ int glite_jpis_SoapToPrimaryQueryConds(
        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;
                }
        }
index 4e92d22..5001811 100644 (file)
@@ -98,9 +98,16 @@ int glite_jpis_QueryCondToSoap(
        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;
        }
 
index 9150f3c..9b939b7 100644 (file)
@@ -48,7 +48,7 @@ $ ./jpps-test GetJobAttr JOBID http://egee.cesnet.cz/en/Schema/JP/System:regtime
 Record JP tag:
 --------------
 
-$ jpps-test RecordTag JPBID TagA 1 blah
+$ jpps-test RecordTag JOBID TagA 1 blah
 
 
 TODO