/[hydra]/hydra/src/cgi.c
ViewVC logotype

Diff of /hydra/src/cgi.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.24 by nmav, Sun Oct 27 10:46:19 2002 UTC revision 1.25 by nmav, Wed Jan 22 07:51:49 2003 UTC
# Line 238  int complete_env(request * req) Line 238  int complete_env(request * req)
238  #endif  #endif
239    
240     my_add_cgi_env(req, "SERVER_ADDR", req->local_ip_addr);     my_add_cgi_env(req, "SERVER_ADDR", req->local_ip_addr);
241     my_add_cgi_env(req, "SERVER_PROTOCOL", req->http_version);     my_add_cgi_env(req, "SERVER_PROTOCOL", req->http_version_str);
242     my_add_cgi_env(req, "REQUEST_URI", req->request_uri);     my_add_cgi_env(req, "REQUEST_URI", req->request_uri);
243    
244     if (req->path_info)     if (req->path_info)
# Line 371  void create_argv(request * req, char **a Line 371  void create_argv(request * req, char **a
371     }     }
372  }  }
373    
374    
375  /*  /*
376   * Name: init_cgi   * Name: init_cgi
377   *   *
# Line 391  int init_cgi(request * req) Line 392  int init_cgi(request * req)
392    
393     SQUASH_KA(req);     SQUASH_KA(req);
394    
395     if (req->is_cgi == NPH || req->is_cgi == CGI || req->is_cgi == HIC_CGI) {     if (req->is_cgi == NPH || req->is_cgi == CGI || req->is_cgi == HIC_CGI
396          || req->is_cgi == CGI_ACTION)
397       {
398        if (req->secure && complete_env_ssl(req) == 0) {        if (req->secure && complete_env_ssl(req) == 0) {
399           return 0;           return 0;
400        }        }
# Line 471  int init_cgi(request * req) Line 474  int init_cgi(request * req)
474           break;           break;
475        case 0:        case 0:
476           /* child */           /* child */
477           if (req->is_cgi == CGI || req->is_cgi == NPH) {           if (req->is_cgi == CGI || req->is_cgi == NPH || req->is_cgi == CGI_ACTION)
478             {
479              int l;              int l;
480              char *newpath;              char *newpath;
481              char *c;              char *c;
# Line 549  int init_cgi(request * req) Line 553  int init_cgi(request * req)
553              char *aargv[CGI_ARGC_MAX + 1];              char *aargv[CGI_ARGC_MAX + 1];
554              create_argv(req, aargv);              create_argv(req, aargv);
555              execve(req->pathname, aargv, req->cgi_env);              execve(req->pathname, aargv, req->cgi_env);
556             } else if (req->is_cgi == CGI_ACTION) {
557                char *aargv[CGI_ARGC_MAX + 2];
558                aargv[0] = req->action;
559                create_argv(req, &aargv[1]);
560                execve(req->action, aargv, req->cgi_env);
561           } else {           } else {
562              if (req->is_cgi == INDEXER_CGI)              if (req->is_cgi == INDEXER_CGI)
563                 execl(dirmaker, dirmaker, req->pathname, req->request_uri,                 execl(dirmaker, dirmaker, req->pathname, req->request_uri,
# Line 587  int init_cgi(request * req) Line 596  int init_cgi(request * req)
596     req->data_fd = pipes[0];     req->data_fd = pipes[0];
597    
598     req->status = PIPE_READ;     req->status = PIPE_READ;
599     if (req->is_cgi == CGI || req->is_cgi == HIC_CGI) {     if (req->is_cgi == CGI || req->is_cgi == HIC_CGI || req->is_cgi == CGI_ACTION)
600       {
601        req->cgi_status = CGI_PARSE;      /* got to parse cgi header */        req->cgi_status = CGI_PARSE;      /* got to parse cgi header */
602        /* for cgi_header... I get half the buffer! */        /* for cgi_header... I get half the buffer! */
603        req->header_line = req->header_end = (req->buffer + BUFFER_SIZE / 2);        req->header_line = req->header_end = (req->buffer + BUFFER_SIZE / 2);

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26