Ignore:
Timestamp:
Jan 29, 2011, 9:57:55 PM (13 years ago)
Author:
djay
Message:

Small fix for embedded base64 string in XML request (QGIS WPS Client for instance).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-kernel/zoo_service_loader.c

    r92 r94  
    13431343                }
    13441344              }
    1345               xmlChar* mv=xmlNodeListGetString(doc,cur4->xmlChildrenNode,1);
    1346               if(mv==NULL){
    1347                 xmlDocPtr doc1=xmlNewDoc(BAD_CAST "1.0");
    1348                 int buffersize;
    1349                 xmlDocSetRootElement(doc1,cur4->xmlChildrenNode);
    1350                 xmlDocDumpFormatMemoryEnc(doc1, &mv, &buffersize, "utf-8", 1);
    1351                 char size[1024];
    1352                 sprintf(size,"%d",buffersize);
    1353                 addToMap(tmpmaps->content,"size",size);
     1345              map* test=getMap(tmpmaps->content,"encoding");
     1346              if(test==NULL || strcasecmp(test->value,"base64")!=0){
     1347                xmlChar* mv=xmlNodeListGetString(doc,cur4->xmlChildrenNode,1);
     1348                if(mv==NULL){
     1349                  xmlDocPtr doc1=xmlNewDoc(BAD_CAST "1.0");
     1350                  int buffersize;
     1351                  xmlDocSetRootElement(doc1,cur4->xmlChildrenNode);
     1352                  xmlDocDumpFormatMemoryEnc(doc1, &mv, &buffersize, "utf-8", 1);
     1353                  char size[1024];
     1354                  sprintf(size,"%d",buffersize);
     1355                  addToMap(tmpmaps->content,"size",size);
     1356                }
     1357                addToMap(tmpmaps->content,"value",(char*)mv);
     1358                xmlFree(mv);
     1359              }else{
     1360                xmlSubstituteEntitiesDefault(1);
     1361                xmlChar* tmp=xmlNodeListGetString(doc,cur4->xmlChildrenNode,0);
     1362                addToMap(tmpmaps->content,"value",(char*)tmp);
     1363                map* tmpv=getMap(tmpmaps->content,"value");
     1364                char *res=NULL;
     1365                char *curs=tmpv->value;
     1366                int i=0;
     1367                for(int i=0;i<=strlen(tmpv->value)/64;i++) {
     1368                  if(res==NULL)
     1369                    res=(char*)malloc(67*sizeof(char));
     1370                  else
     1371                    res=(char*)realloc(res,(((i+1)*65)+i)*sizeof(char));
     1372                  int csize=i*65;
     1373                  strncpy(res + csize,curs,64);
     1374                  if(i==xmlStrlen(tmp)/64)
     1375                    strcat(res,"\n\0");
     1376                  else{
     1377                    strncpy(res + (((i+1)*64)+i),"\n\0",2);
     1378                    curs+=64;
     1379                  }
     1380                }
     1381                free(tmpv->value);
     1382                tmpv->value=strdup(res);
     1383                for(int j=0;j<strlen(tmpv->value);j++)
     1384                  if(tmpv->value[j]==' ')
     1385                    tmpv->value[j]='+';
     1386                free(res);
     1387                xmlFree(tmp);
    13541388              }
    1355               addToMap(tmpmaps->content,"value",(char*)mv);
    1356               xmlFree(mv);
    13571389              cur4=cur4->next;
    13581390            }
     
    17311763  int eres=SERVICE_STARTED;
    17321764  int cpid=getpid();
    1733  
     1765
    17341766  maps *_tmpMaps=(maps*)malloc(MAPS_SIZE);
    17351767  _tmpMaps->name=strdup("lenv");
     
    18361868      errorException(m, _("Unable to run the child process properly"), "InternalError");
    18371869    }
    1838        
    18391870  }
    18401871
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