Ignore:
Timestamp:
Feb 2, 2015, 10:04:56 AM (9 years ago)
Author:
david
Message:
  • Adding Process Management
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/zoo_service_loader.c

    r532 r549  
    3737#include <libxml/xpath.h>
    3838#include <libxml/xpathInternals.h>
    39 #include "service_zcfg.h"
    4039#include <libgen.h>
    4140}
    4241#include "ulinet.h"
     42#include "service_zcfg.h"
    4343#include <libintl.h>
    4444#include <locale.h>
    4545#include <string.h>
    46 #include "service.h"
    47 #include "service_internal.h"
     46//#include "service.h"
     47//#include "service_internal.h"
    4848#ifdef USE_PYTHON
    4949#include "service_internal_python.h"
     
    172172                       ("You set maximum occurences for <%s> as %i but you tried to use it more than the limit you set. Please correct your ZCFG file or your request."),
    173173                       mi->name, atoi (testMap->value));
    174               errorException (m, emsg, "InternalError", NULL);
     174              //errorException (m, emsg, "InternalError", NULL,stderr);
    175175              return -1;
    176176            }
     
    193193                           ("ZOO-Kernel was unable to load your data for %s position %s."),
    194194                           mi->name, tmpMap->value);
    195                   errorException (m, emsg, "InternalError", NULL);
     195                  //errorException (m, emsg, "InternalError", NULL,stderr);
    196196                  return -1;
    197197                }
     
    204204                       ("You set maximum occurences for <%s> to one but you tried to use it more than once. Please correct your ZCFG file or your request."),
    205205                       mi->name);
    206               errorException (m, emsg, "InternalError", NULL);
     206              //errorException (m, emsg, "InternalError", NULL,request->out);
    207207              return -1;
    208208            }
     
    390390           ("ZOO Kernel failed to process your request receiving signal %d = %s"),
    391391           sig, ssig);
    392   errorException (NULL, tmp, "InternalError", NULL);
     392  //errorException (NULL, tmp, "InternalError", NULL,request->out);
    393393#ifdef DEBUG
    394394  fprintf (stderr, "Not this time!\n");
     
    399399void
    400400loadServiceAndRun (maps ** myMap, service * s1, map * request_inputs,
    401                    maps ** inputs, maps ** ioutputs, int *eres)
     401                   maps ** inputs, maps ** ioutputs, int *eres,FCGX_Stream *out, FCGX_Stream *err)
    402402{
    403   char tmps1[1024];
     403 
     404
     405 char tmps1[1024];
    404406  char ntmp[1024];
    405407  maps *m = *myMap;
     
    523525                (execute_t) GetProcAddress (so, s1->name);
    524526#else
     527
    525528              execute_t execute = (execute_t) dlsym (so, s1->name);
    526529#endif
     
    539542                           ("Error occured while running the %s function: %s"),
    540543                           s1->name, errstr);
    541                   errorException (m, tmpMsg, "InternalError", NULL);
     544                  errorException (m, tmpMsg, "InternalError", NULL,out);
    542545                  free (tmpMsg);
    543546#ifdef DEBUG
    544547                  fprintf (stderr, "Function %s error %s\n",
    545548                           s1->name, errstr);
    546 #endif
     549#endif             
     550
    547551                  *eres = -1;
    548552                  return;
    549553                }
     554
    550555#ifdef DEBUG
    551556#ifdef WIN32
     
    568573              fflush (stderr);
    569574#endif
     575
     576
     577
    570578            }
    571579#ifdef WIN32
     
    589597          sprintf (tmps, _("C Library can't be loaded %s"), errstr);
    590598          map *tmps1 = createMap ("text", tmps);
    591           printExceptionReportResponse (m, tmps1);
     599          printExceptionReportResponse (m, tmps1,out);
    592600          *eres = -1;
    593601          freeMap (&tmps1);
     
    602610        zoo_python_support (&m, request_inputs, s1,
    603611                            &request_input_real_format,
    604                             &request_output_real_format);
     612                            &request_output_real_format,err);
     613
    605614    }
    606615  else
     
    670679               r_inputs->value);
    671680      map *tmps = createMap ("text", tmpv);
    672       printExceptionReportResponse (m, tmps);
     681      printExceptionReportResponse (m, tmps,out);
    673682      *eres = -1;
    674683    }
     
    794803
    795804int
    796 runRequest (map ** inputs)
     805runRequest (map ** inputs,struct cgi_env ** c,FCGX_Request *request)
    797806{
    798807
     808
     809struct cgi_env *cgi = *c;
    799810#ifndef USE_GDB
    800811  (void) signal (SIGSEGV, sig_handler);
     
    813824   * Parsing service specfic configuration file
    814825   */
     826 
    815827  m = (maps *) malloc (MAPS_SIZE);
    816828  if (m == NULL)
    817829    {
    818830      return errorException (m, _("Unable to allocate memory."),
    819                              "InternalError", NULL);
    820     }
     831                             "InternalError", NULL,request->out);
     832    }
     833   
    821834  char ntmp[1024];
    822835#ifndef WIN32
     
    827840  r_inputs = getMapOrFill (&request_inputs, "metapath", "");
    828841
    829 
    830   char conf_file[10240];
    831   snprintf (conf_file, 10240, "%s/%s/main.cfg", ntmp, r_inputs->value);
     842  //m = get_main_conf();
     843
     844 char conf_file[10240];
     845 snprintf (conf_file, 10240, "%s/%s/main.cfg", ntmp, r_inputs->value);
     846 
    832847  if (conf_read (conf_file, m) == 2)
    833848    {
    834849      errorException (NULL, _("Unable to load the main.cfg file."),
    835                       "InternalError", NULL);
     850                      "InternalError", NULL,request->out);
    836851      free (m);
    837852      return 1;
    838853    }
     854
     855
    839856#ifdef DEBUG
    840857  fprintf (stderr, "***** BEGIN MAPS\n");
     
    844861
    845862  map *getPath = getMapFromMaps (m, "main", "gettextPath");
     863
     864
     865
     866
    846867  if (getPath != NULL)
    847868    {
     
    854875      bindtextdomain ("zoo-services", "/usr/share/locale/");
    855876    }
    856 
    857877
    858878  /**
     
    878898                   ("The value %s is not supported for the <language> parameter"),
    879899                   r_inputs->value);
    880           errorException (m, tmp, "InvalidParameterValue", "language");
     900          errorException (m, tmp, "InvalidParameterValue", "language",request->out);
    881901          freeMaps (&m);
    882902          free (m);
     
    929949    setMapInMaps (m, "main", "isSoap", "false");
    930950
    931   if (strlen (cgiServerName) > 0)
     951  if (strlen (cgi->cgiServerName) > 0)
    932952    {
    933953      char tmpUrl[1024];
    934       if (strncmp (cgiServerPort, "80", 2) == 0)
    935         {
    936           sprintf (tmpUrl, "http://%s%s", cgiServerName, cgiScriptName);
     954      if (strncmp (cgi->cgiServerPort, "80", 2) == 0)
     955        {
     956          sprintf (tmpUrl, "http://%s%s", cgi->cgiServerName, cgi->cgiScriptName);
    937957        }
    938958      else
    939959        {
    940           sprintf (tmpUrl, "http://%s:%s%s", cgiServerName,
    941                    cgiServerPort, cgiScriptName);
     960          sprintf (tmpUrl, "http://%s:%s%s", cgi->cgiServerName,
     961                   cgi->cgiServerPort, cgi->cgiScriptName);
    942962        }
    943963#ifdef DEBUG
     
    954974    {
    955975      errorException (m, _("Parameter <request> was not specified"),
    956                       "MissingParameterValue", "request");
     976                      "MissingParameterValue", "request",request->out);
    957977      if (count (request_inputs) == 1)
    958978        {
     
    974994                          _
    975995                          ("Unenderstood <request> value. Please check that it was set to GetCapabilities, DescribeProcess or Execute."),
    976                           "OperationNotSupported", r_inputs->value);
     996                          "OperationNotSupported", r_inputs->value,request->out);
    977997          freeMaps (&m);
    978998          free (m);
     
    9861006    {
    9871007      errorException (m, _("Parameter <service> was not specified"),
    988                       "MissingParameterValue", "service");
     1008                      "MissingParameterValue", "service",request->out);
    9891009      freeMaps (&m);
    9901010      free (m);
     
    9991019                          _
    10001020                          ("Unenderstood <service> value, WPS is the only acceptable value."),
    1001                           "InvalidParameterValue", "service");
     1021                          "InvalidParameterValue", "service",request->out);
    10021022          freeMaps (&m);
    10031023          free (m);
     
    10121032        {
    10131033          errorException (m, _("Parameter <version> was not specified"),
    1014                           "MissingParameterValue", "version");
     1034                          "MissingParameterValue", "version",request->out);
    10151035          freeMaps (&m);
    10161036          free (m);
     
    10251045                              _
    10261046                              ("Unenderstood <version> value, 1.0.0 is the only acceptable value."),
    1027                               "InvalidParameterValue", "service");
     1047                              "InvalidParameterValue", "service",request->out);
    10281048              freeMaps (&m);
    10291049              free (m);
     
    10431063                              _
    10441064                              ("Unenderstood <AcceptVersions> value, 1.0.0 is the only acceptable value."),
    1045                               "VersionNegotiationFailed", NULL);
     1065                              "VersionNegotiationFailed", NULL,request->out);
    10461066              freeMaps (&m);
    10471067              free (m);
     
    10801100  else
    10811101    snprintf (conf_dir, 1024, "%s", ntmp);
     1102
     1103
     1104
    10821105
    10831106  if (strncasecmp (REQUEST, "GetCapabilities", 15) == 0)
     
    10981121     * has been found in the zcfg and then printed on stdout
    10991122     */
    1100       int saved_stdout = dup (fileno (stdout));
    1101       dup2 (fileno (stderr), fileno (stdout));
    1102 
    1103         /**
    1104       if (int res =
    1105           recursReaddirF (m, n, conf_dir, NULL, saved_stdout, 0,
    1106                           printGetCapabilitiesForProcess) < 0)
    1107         {
    1108           freeMaps (&m);
    1109           free (m);
    1110           free (REQUEST);
    1111           free (SERVICE_URL);
    1112           fflush (stdout);
    1113           return res;
    1114         }
    1115       **/
    11161123      XML_CapabilitiesAllProcess (m, n);
    1117       dup2 (saved_stdout, fileno (stdout));
    1118       printDocument (m, doc, getpid ());
     1124      printDocument (m, doc, getpid (),request->out);
    11191125      freeMaps (&m);
    11201126      free (m);
    11211127      free (REQUEST);
    11221128      free (SERVICE_URL);
    1123       fflush (stdout);
    11241129      return 0;
    11251130    }
     
    11321137          errorException (m,
    11331138                          _("Mandatory <identifier> was not specified"),
    1134                           "MissingParameterValue", "identifier");
     1139                          "MissingParameterValue", "identifier",request->out);
    11351140          freeMaps (&m);
    11361141          free (m);
     
    11461151          errorException (m,
    11471152                          _("The specified path path doesn't exist."),
    1148                           "InvalidParameterValue", conf_dir);
     1153                          "InvalidParameterValue", conf_dir,request->out);
    11491154          freeMaps (&m);
    11501155          free (m);
     
    11731178
    11741179
    1175           int saved_stdout = dup (fileno (stdout));
    1176           dup2 (fileno (stderr), fileno (stdout));
     1180          //int saved_stdout = dup (fileno (stdout));
     1181          //dup2 (fileno (stderr), fileno (stdout));
    11771182          XML_Describe_Process (m, n, orig);
    11781183          closedir (dirp);
    1179           fflush (stdout);
    1180           dup2 (saved_stdout, fileno (stdout));
     1184          //fflush (stdout);
     1185          //dup2 (saved_stdout, fileno (stdout));
    11811186          free (orig);
    1182           printDocument (m, doc, getpid ());
     1187          printDocument (m, doc, getpid (),request->out);
    11831188          freeMaps (&m);
    11841189          free (m);
    11851190          free (REQUEST);
    11861191          free (SERVICE_URL);
    1187           fflush (stdout);
     1192          //fflush (stdout);
    11881193          return 0;
    11891194
     
    11911196      else if (strncasecmp (REQUEST, "Execute", strlen (REQUEST)) != 0)
    11921197        {
     1198         
    11931199          errorException (m,
    11941200                          _
    11951201                          ("Unenderstood <request> value. Please check that it was set to GetCapabilities, DescribeProcess or Execute."),
    1196                           "InvalidParameterValue", "request");
     1202                          "InvalidParameterValue", "request",request->out);
    11971203#ifdef DEBUG
    11981204          fprintf (stderr, "No request found %s", REQUEST);
     
    12031209          free (REQUEST);
    12041210          free (SERVICE_URL);
    1205           fflush (stdout);
     1211          //fflush (stdout);
    12061212          return 0;
    12071213        }
     
    12501256  fflush (stdout);
    12511257  **/
    1252   int saved_stdout = dup (fileno (stdout));
    1253   dup2 (saved_stdout, fileno (stdout));
     1258  //int saved_stdout = dup (fileno (stdout));
     1259  //dup2 (saved_stdout, fileno (stdout));
    12541260  s1 = search_service (r_inputs->value);
    12551261  if (s1 == NULL)
     
    12601266               ("The value for <identifier> seems to be wrong (%s). Please, ensure that the process exist using the GetCapabilities request."),
    12611267               r_inputs->value);
    1262       errorException (m, tmpMsg, "InvalidParameterValue", "identifier");
     1268      errorException (m, tmpMsg, "InvalidParameterValue", "identifier",request->out);
    12631269      free (tmpMsg);
    12641270      //free (s1);
     
    12691275      return 0;
    12701276    }
    1271   close (saved_stdout);
     1277  //close (saved_stdout);
    12721278
    12731279#ifdef DEBUG
     
    13391345              return errorException (m,
    13401346                                     _("Unable to allocate memory"),
    1341                                      "InternalError", NULL);
     1347                                     "InternalError", NULL,request->out);
    13421348            }
    13431349          i = 0;
     
    13561362                                         _
    13571363                                         ("Unable to allocate memory"),
    1358                                          "InternalError", NULL);
     1364                                         "InternalError", NULL,request->out);
    13591365                }
    13601366              snprintf (outputs_as_text[i], strlen (pToken) + 1, "%s",
     
    13821388                                                     _
    13831389                                                     ("Unable to allocate memory."),
    1384                                                      "InternalError", NULL);
     1390                                                     "InternalError", NULL,request->out);
    13851391                            }
    13861392                          tmp_output->name = zStrdup (tmpc);
     
    14471453          errorException (m,
    14481454                          _("Parameter <DataInputs> was not specified"),
    1449                           "MissingParameterValue", "DataInputs");
     1455                          "MissingParameterValue", "DataInputs",request->out);
    14501456          freeMaps (&m);
    14511457          free (m);
     
    14791485        {
    14801486          return errorException (m, _("Unable to allocate memory."),
    1481                                  "InternalError", NULL);
     1487                                 "InternalError", NULL,request->out);
    14821488        }
    14831489      i = 0;
     
    14981504              return errorException (m,
    14991505                                     _("Unable to allocate memory."),
    1500                                      "InternalError", NULL);
     1506                                     "InternalError", NULL,request->out);
    15011507            }
    15021508          pToken = strtok (NULL, ";");
     
    15401546                                             _
    15411547                                             ("Unable to allocate memory."),
    1542                                              "InternalError", NULL);
     1548                                             "InternalError", NULL,request->out);
    15431549                    }
    15441550                  tmpmaps->name = zStrdup (tmpn);
     
    16111617                                   ("Unable to find a valid protocol to download the remote file %s"),
    16121618                                   tmpv1 + 1);
    1613                           errorException (m, emsg, "InternalError", NULL);
     1619                          errorException (m, emsg, "InternalError", NULL,request->out);
    16141620                          freeMaps (&m);
    16151621                          free (m);
     
    17021708      fflush (stderr);
    17031709#endif
    1704       xmlDocPtr doc = xmlParseMemory (postRequest->value, cgiContentLength);
     1710      xmlDocPtr doc = xmlParseMemory (postRequest->value, cgi->cgiContentLength);
    17051711#ifdef DEBUG
    17061712      fprintf (stderr, "AFTER\n");
     
    17531759                                                     _
    17541760                                                     ("Unable to allocate memory."),
    1755                                                      "InternalError", NULL);
     1761                                                     "InternalError", NULL,request->out);
    17561762                            }
    17571763                          tmpmaps->name = zStrdup ((char *) val);
     
    17821788                                                     _
    17831789                                                     ("Unable to allocate memory."),
    1784                                                      "InternalError", NULL);
     1790                                                     "InternalError", NULL,request->out);
    17851791                            }
    17861792                          tmpmaps->name = zStrdup ("missingIndentifier");
     
    19261932                                             _
    19271933                                             ("Unable to allocate memory."),
    1928                                              "InternalError", NULL);
     1934                                             "InternalError", NULL,request->out);
    19291935                                        }
    19301936                                      snprintf (has,
     
    19651971                                    (char *)
    19661972                                    malloc
    1967                                     (cgiContentLength + 1 * sizeof (char));
    1968                                   memset (tmp, 0, cgiContentLength);
     1973                                    (cgi->cgiContentLength + 1 * sizeof (char));
     1974                                  memset (tmp, 0, cgi->cgiContentLength);
    19691975                                  xmlNodePtr cur4 = cur3->children;
    19701976                                  while (cur4 != NULL)
     
    20582064                                         _
    20592065                                         ("Unable to allocate memory."),
    2060                                          "InternalError", NULL);
     2066                                         "InternalError", NULL,request->out);
    20612067                                    }
    20622068                                  size_t bRead;
     
    23802386                                         _
    23812387                                         ("Unable to allocate memory."),
    2382                                          "InternalError", NULL);
     2388                                         "InternalError", NULL,request->out);
    23832389                }
    23842390              tmpmaps->name = zStrdup ("unknownIdentifier");
     
    24642470                                               _
    24652471                                               ("Unable to allocate memory."),
    2466                                                "InternalError", NULL);
     2472                                               "InternalError", NULL,request->out);
    24672473                      }
    24682474                    tmpmaps->name = zStrdup ("unknownIdentifier");
     
    25202526                                                       _
    25212527                                                       ("Unable to allocate memory."),
    2522                                                        "InternalError", NULL);
     2528                                                       "InternalError", NULL,request->out);
    25232529                              }
    25242530                            tmpmaps->name = zStrdup ((char *) val);
     
    25802586                                                       _
    25812587                                                       ("Unable to allocate memory."),
    2582                                                        "InternalError", NULL);
     2588                                                       "InternalError", NULL,request->out);
    25832589                              }
    25842590                            tmpmaps->name = zStrdup ("missingIndetifier");
     
    26592665                                           _
    26602666                                           ("Unable to allocate memory."),
    2661                                            "InternalError", NULL);
     2667                                           "InternalError", NULL,request->out);
    26622668                                      }
    26632669                                    tmpmaps->name = zStrdup ((char *) val);
     
    27002706                                           _
    27012707                                           ("Unable to allocate memory."),
    2702                                            "InternalError", NULL);
     2708                                           "InternalError", NULL,request->out);
    27032709                                      }
    27042710                                    tmpmaps->name =
     
    27882794              addToMap (tmpe, "locator", ptr->name);
    27892795              addToMap (tmpe, "text", tmps);
    2790               printExceptionReportResponse (m, tmpe);
     2796              printExceptionReportResponse (m, tmpe,request->out);
    27912797              //freeService (&s1);
    27922798              //free (s1);
     
    28322838        }
    28332839      addToMap (tmpe, "text", tmps);
    2834       printExceptionReportResponse (m, tmpe);
     2840      printExceptionReportResponse (m, tmpe,request->out);
    28352841      //freeService (&s1);
    28362842      free (s1);
     
    28552861      if (getMap (tmpReqI->content, "isFile") != NULL)
    28562862        {
    2857           if (cgiFormFileName (tmpReqI->name, name, sizeof (name)) ==
     2863          if (cgiFormFileName (tmpReqI->name, name, sizeof (name),&cgi) ==
    28582864              cgiFormSuccess)
    28592865            {
     
    28692875              int got, t;
    28702876              map *path = getMapFromMaps (m, "main", "tmpPath");
    2871               cgiFormFileSize (tmpReqI->name, &size);
     2877              cgiFormFileSize (tmpReqI->name, &size,&cgi);
    28722878              cgiFormFileContentType (tmpReqI->name, contentType,
    2873                                       sizeof (contentType));
    2874               if (cgiFormFileOpen (tmpReqI->name, &file) == cgiFormSuccess)
     2879                                      sizeof (contentType),&cgi);
     2880              if (cgiFormFileOpen (tmpReqI->name, &file,&cgi) == cgiFormSuccess)
    28752881                {
    28762882                  t = -1;
     
    30183024                      _
    30193025                      ("Status cannot be set to true with storeExecuteResponse to false. Please, modify your request parameters."),
    3020                       "InvalidParameterValue", "storeExecuteResponse");
     3026                      "InvalidParameterValue", "storeExecuteResponse",request->out);
    30213027      //freeService (&s1);
    30223028      //free (s1);
     
    30693075  else
    30703076    addToMap (_tmpMaps->content, "soap", "false");
    3071   if (cgiCookie != NULL && strlen (cgiCookie) > 0)
     3077  if (cgi->cgiCookie != NULL && strlen (cgi->cgiCookie) > 0)
    30723078    {
    30733079      int hasValidCookie = -1;
    3074       char *tcook = zStrdup (cgiCookie);
     3080      char *tcook = zStrdup (cgi->cgiCookie);
    30753081      char *tmp = NULL;
    30763082      map *testing = getMapFromMaps (m, "main", "cookiePrefix");
     
    30853091          sprintf (tmp, "%s=", testing->value);
    30863092        }
    3087       if (strstr (cgiCookie, ";") != NULL)
     3093      if (strstr (cgi->cgiCookie, ";") != NULL)
    30883094        {
    30893095          char *token, *saveptr;
    3090           token = strtok_r (cgiCookie, ";", &saveptr);
     3096          token = strtok_r (cgi->cgiCookie, ";", &saveptr);
    30913097          while (token != NULL)
    30923098            {
     
    31043110        {
    31053111          if (strstr
    3106               (cgiCookie, "=") != NULL && strcasestr (cgiCookie, tmp) != NULL)
     3112              (cgi->cgiCookie, "=") != NULL && strcasestr (cgi->cgiCookie, tmp) != NULL)
    31073113            {
    3108               tcook = zStrdup (cgiCookie);
     3114              tcook = zStrdup (cgi->cgiCookie);
    31093115              hasValidCookie = 1;
    31103116            }
     
    31313137            sprintf
    31323138              (session_file_path,
    3133                "%s/sess_%s.cfg", tmpPath->value, strstr (cgiCookie, "=") + 1);
     3139               "%s/sess_%s.cfg", tmpPath->value, strstr (cgi->cgiCookie, "=") + 1);
    31343140          free (tcook);
    31353141          maps *tmpSess = (maps *) malloc (MAPS_SIZE);
     
    31373143          int istat = stat (session_file_path,
    31383144                            &file_status);
     3145         
    31393146          if (istat == 0 && file_status.st_size > 0)
    31403147            {
     
    31443151              free (tmpSess);
    31453152            }
     3153           
    31463154        }
    31473155    }
     
    31663174    }
    31673175#endif
    3168   char *fbkp, *fbkp1;
     3176 
     3177
     3178char *fbkp, *fbkp1;
    31693179  FILE *f0, *f1;
    31703180  if (status != NULL)
     
    31763186        (&m, s1,
    31773187         request_inputs,
    3178          &request_input_real_format, &request_output_real_format, &eres);
     3188         &request_input_real_format, &request_output_real_format, &eres,request->out,request->err);
    31793189    }
    31803190  else
     
    32613271             r_inputs1->value,
    32623272             SERVICE_STARTED,
    3263              request_input_real_format, request_output_real_format);
     3273             request_input_real_format, request_output_real_format,request->out);
    32643274#ifndef WIN32
    32653275          fflush (stdout);
     
    32773287            (&m, s1,
    32783288             request_inputs,
    3279              &request_input_real_format, &request_output_real_format, &eres);
     3289             &request_input_real_format, &request_output_real_format, &eres,request->out,request->err);
    32803290        }
    32813291      else
     
    32893299                          _
    32903300                          ("Unable to run the child process properly"),
    3291                           "InternalError", NULL);
     3301                          "InternalError", NULL,request->out);
    32923302        }
    32933303    }
     
    32963306  dumpMaps (request_output_real_format);
    32973307#endif
     3308
    32983309  if (eres != -1)
    32993310    outputResponse (s1,
    33003311                    request_input_real_format,
    33013312                    request_output_real_format,
    3302                     request_inputs, cpid, m, eres);
    3303   fflush (stdout);
     3313                    request_inputs, cpid, m, eres,request->out,request->err);
     3314  //fflush (stdout);
    33043315  /**
    33053316   * Ensure that if error occurs when freeing memory, no signal will return
     
    33153326  (void) signal (SIGABRT, donothing);
    33163327#endif
    3317   if (((int) getpid ()) != cpid || cgiSid != NULL)
     3328  if (((int) getpid ()) != cpid || cgi->cgiSid != NULL)
    33183329    {
    33193330      fclose (stdout);
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