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

Diff of /hydra/src/request.c

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

revision 1.30 by nmav, Mon Oct 21 20:33:31 2002 UTC revision 1.31 by nmav, Sat Oct 26 20:58:48 2002 UTC
# Line 60  request *new_request(server_params* para Line 60  request *new_request(server_params* para
60      }      }
61      memset(req, 0, offsetof(request, buffer) + 1);      memset(req, 0, offsetof(request, buffer) + 1);
62      req->data_fd = -1;      req->data_fd = -1;
63      req->post_data_fd = -1;      req->post_data_fd.fds[0] = req->post_data_fd.fds[1] = -1;
64    
65      return req;      return req;
66  }  }
# Line 328  static void free_request( server_params Line 328  static void free_request( server_params
328      if (req->data_fd != -1)      if (req->data_fd != -1)
329          close(req->data_fd);          close(req->data_fd);
330    
331      if (req->post_data_fd != -1)      close_tmp_fd( &req->post_data_fd);
         close(req->post_data_fd);  
332    
333      if (req->response_status >= 400)      if (req->response_status >= 400)
334          params->status.errors++;          params->status.errors++;
# Line 762  char *p = NULL; Line 761  char *p = NULL;
761      }      }
762    
763      if (req->method == M_POST) {      if (req->method == M_POST) {
764          req->post_data_fd = create_temporary_file(1, NULL, 0);          req->post_data_fd = create_temporary_file(1, boa_atoi(req->content_length));
765          if (req->post_data_fd == -1)          if (req->post_data_fd.fds[0] == -1)
766              return(0);              return(0);
767    
768          if (fcntl(req->post_data_fd, F_SETFD, 1) == -1) {          if (req->post_data_fd.pipe==0) {
769              WARN("unable to set close-on-exec for req->post_data_fd!");             if (set_cloexec_fd( req->post_data_fd.fds[0]) == -1) {
770              close(req->post_data_fd);                 WARN("unable to set close-on-exec for req->post_data_fd!");
771              req->post_data_fd = -1;                 close_tmp_fd(&req->post_data_fd);
772              return(0);                 return(0);
773                }
774          }          }
775    
776          return(1); /* success */          return(1); /* success */
# Line 786  char *p = NULL; Line 786  char *p = NULL;
786    
787  /* Parses HTTP/1.1 range values.  /* Parses HTTP/1.1 range values.
788   */   */
789  static int parse_range( const char* value, off64_t *val1, off64_t *val2)  static int parse_range( const char* value, large_int *val1, large_int *val2)
790  {  {
791  int len;  int len;
792  char *p;  char *p;
# Line 848  char *p; Line 848  char *p;
848  inline  inline
849  static void init_range_stuff( request* req, char* value)  static void init_range_stuff( request* req, char* value)
850  {  {
851          off64_t p1, p2;          large_int p1, p2;
852          if (parse_range( value, &p1, &p2) == 0) {          if (parse_range( value, &p1, &p2) == 0) {
853              req->range_start = p1;              req->range_start = p1;
854              req->range_stop = p2;              req->range_stop = p2;

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26