Ignore:
Timestamp:
Aug 29, 2017, 10:52:39 AM (7 years ago)
Author:
djay
Message:

Fix various memory leaks and enhance the callback support. Add the prohibited keyword to the callback section to avoid calling callback for such services.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/prototype-v0/zoo-project/zoo-kernel/response_print.c

    r839 r850  
    339339      }
    340340      else{
    341         nc4 = xmlNewNode(ns_ows, BAD_CAST "Language");
    342         xmlAddChild(nc4,xmlNewText(BAD_CAST buff));
    343341        if(dcount==0){
    344342          if(vid==0){
     343            nc4 = xmlNewNode(ns_ows, BAD_CAST "Language");
     344            xmlAddChild(nc4,xmlNewText(BAD_CAST buff));
    345345            xmlAddChild(nc2,nc4);
    346346            xmlAddChild(nc1,nc2);
     
    867867        }
    868868      }else{
    869         xmlNodePtr nc2 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameter");
    870         xmlNodePtr nc3 = xmlNewNode(ns_ows, BAD_CAST "Name");
    871         xmlAddChild(nc3,xmlNewText(BAD_CAST meta->name));
    872         xmlAddChild(nc2,nc3);
    873         if(fromDb<0){
    874           char *mptr;
    875           char* meta_values=strtok_r(meta->value,",",&mptr);
    876           while(meta_values!=NULL){
     869        if(strncasecmp(meta->name,"length",6)!=0 && strncasecmp(meta->name,"fromDb",6)!=0){
     870          xmlNodePtr nc2 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameter");
     871          xmlNodePtr nc3 = xmlNewNode(ns_ows, BAD_CAST "Name");
     872          xmlAddChild(nc3,xmlNewText(BAD_CAST meta->name));
     873          xmlAddChild(nc2,nc3);
     874          if(fromDb<0){
     875            char *mptr;
     876            char* meta_values=strtok_r(meta->value,",",&mptr);
     877            while(meta_values!=NULL){
     878              xmlNodePtr nc4 = xmlNewNode(ns_ows, BAD_CAST "Value");
     879              xmlAddChild(nc4,xmlNewText(BAD_CAST meta_values));
     880              xmlAddChild(nc2,nc4);
     881              meta_values=strtok_r(NULL,",",&mptr);
     882            }
     883          }else{
    877884            xmlNodePtr nc4 = xmlNewNode(ns_ows, BAD_CAST "Value");
    878             xmlAddChild(nc4,xmlNewText(BAD_CAST meta_values));
     885            xmlAddChild(nc4,xmlNewCDataBlock(doc,BAD_CAST meta->value,strlen(meta->value)));
    879886            xmlAddChild(nc2,nc4);
    880             meta_values=strtok_r(NULL,",",&mptr);
    881           }
    882         }else{
    883           xmlNodePtr nc4 = xmlNewNode(ns_ows, BAD_CAST "Value");
    884           xmlAddChild(nc4,xmlNewCDataBlock(doc,BAD_CAST meta->value,strlen(meta->value)));
    885           xmlAddChild(nc2,nc4);
    886         }
    887         xmlAddChild(nc1,nc2);
     887          }
     888          xmlAddChild(nc1,nc2);
     889        }
    888890        hasTitle=-1;
    889891      }
     
    892894        xmlAddChild(nc,nc1);
    893895        hasValue=1;
    894       }
     896      }else
     897        free(ctitle);
    895898    }
    896899    if(oMeta!=NULL && hasValue<0 && nc1!=NULL){
     
    14041407                }
    14051408                else
    1406                   xmlFree(nc9);
     1409                  xmlFreeNode(nc9);
    14071410                if(strcasecmp(tmp1->name,"uom")==0)
    14081411                  hasUOM1=true;
     
    16011604                  xmlAddChild(nc5,nc6);
    16021605                else
    1603                   xmlFree(nc6);
     1606                  xmlFreeNode(nc6);
    16041607              }
    16051608              else
    1606                 xmlFree(nc6);
     1609                xmlFreeNode(nc6);
    16071610            }
    16081611            tmp1=tmp1->next;
     
    16311634            }
    16321635            else{
     1636              xmlFreeNode(nc4);
    16331637              xmlAddChild(nc3,nc5);
    16341638            }
    16351639          }
    16361640          else
    1637             if(datatype!=1)
     1641            if(datatype!=1){
     1642              xmlFreeNode(nc4);
    16381643              xmlAddChild(nc3,nc5);
     1644            }
    16391645
    16401646        _tmp=_tmp->next;
     
    16541660        }
    16551661        else{
     1662          xmlFreeNode(nc4);
    16561663          xmlAddChild(nc3,nc5);
    16571664        }
     
    16731680    }
    16741681    if(e->child!=NULL && vid==0){
     1682      xmlFreeNode(nc3);
    16751683      elements* children=dupElements(e->child);
    16761684      elements* cursor=children;
     
    16781686        char* tmp=strdup(cursor->name);
    16791687        free(cursor->name);
    1680         cursor->name=(char*)malloc((strlen(cursor->name)+strlen(e->name)+2)*sizeof(char));
     1688        cursor->name=(char*)malloc((strlen(tmp)+strlen(e->name)+2)*sizeof(char));
    16811689        sprintf(cursor->name,"%s.%s",e->name,tmp);
    16821690        cursor=cursor->next;
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png