/[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.7 by nmav, Tue Sep 24 21:47:26 2002 UTC revision 1.8 by nmav, Wed Sep 25 06:42:34 2002 UTC
# Line 204  void get_request(server_params* params, Line 204  void get_request(server_params* params,
204      if (default_document_root)      if (default_document_root)
205         memcpy( conn->document_root, default_document_root, default_document_root_size + 1);         memcpy( conn->document_root, default_document_root, default_document_root_size + 1);
206    
207        if (server_name)
208           conn->hostname = server_name;
209        
210      /* nonblocking socket */      /* nonblocking socket */
211      if (set_nonblock_fd(conn->fd) == -1)      if (set_nonblock_fd(conn->fd) == -1)
212          WARN("fcntl: unable to set new socket to non-block");          WARN("fcntl: unable to set new socket to non-block");
# Line 779  int len; Line 782  int len;
782          return -1;          return -1;
783  }  }
784    
785    inline
786    static void init_range_stuff( request* req, char* value)
787    {
788            unsigned long int p1, p2;
789            if (parse_range( value, &p1, &p2) == 0) {
790                req->range_start = p1;
791                req->range_stop = p2;
792            } else {
793               req->range_start = 0;
794               req->range_stop = 0;
795               log_error_time();
796               fprintf(stderr, "bogus range: \"%s\"\n", value);
797               send_r_bad_request(req);
798            }
799    }
800    
801    inline
802    static void init_vhost_stuff( request* req, char* value)
803    {
804           virthost* vhost;
805           int valuelen;
806    
807           valuelen = strlen(value);
808          
809           vhost = find_virthost( value, valuelen);
810    
811           if ( vhost && ( vhost->ip == NULL || !memcmp( vhost->ip, req->local_ip_addr, vhost->ip_len) ))
812           {
813              req->hostname = value;
814              memcpy( req->document_root, vhost->document_root, vhost->document_root_len + 1);
815              if (vhost->user_dir)
816                 memcpy( req->user_dir, vhost->user_dir, vhost->user_dir_len + 1);
817    
818           } else { /* No virtual host found. use defaults */
819              if ( default_document_root)
820                 memcpy( req->document_root, default_document_root, default_document_root_size + 1);
821           }
822    }
823    
824  /*  /*
825   * Name: process_option_line   * Name: process_option_line
# Line 835  int process_option_line(request * req) Line 876  int process_option_line(request * req)
876          if (!add_cgi_env(req, "USER_AGENT", value, 1))          if (!add_cgi_env(req, "USER_AGENT", value, 1))
877              return 0;              return 0;
878      } else if (!memcmp(line, "RANGE", 5)) {      } else if (!memcmp(line, "RANGE", 5)) {
879          unsigned long int p1, p2;          init_range_stuff( req, value);
         if (parse_range( value, &p1, &p2) == 0) {  
             req->range_start = p1;  
             req->range_stop = p2;  
         } else {  
            req->range_start = 0;  
            req->range_stop = 0;  
            log_error_time();  
            fprintf(stderr, "bogus range: \"%s\"\n", value);  
            send_r_bad_request(req);  
         }  
         if (!add_cgi_env(req, "RANGE", value, 1))  
             return 0;  
880      } else if (!memcmp(line, "HOST", 4)) {      } else if (!memcmp(line, "HOST", 4)) {
881         virthost* vhost;          init_vhost_stuff( req, value);
   
        while( (*value) == ' ') value++;  
         
        vhost = find_virthost( value, 0);  
 if (vhost) fprintf(stderr, "Found Host: %s\n", vhost->host);  
 if (vhost) fprintf(stderr, "Found Host: %s\n", vhost->ip);  
 if (vhost) fprintf(stderr, "Found Host: %s\n", vhost->user_dir);  
   
        if ( vhost && ( vhost->ip == NULL || !memcmp( vhost->ip, req->local_ip_addr, vhost->ip_len) ))  
        {  
           memcpy( req->document_root, vhost->document_root, vhost->document_root_len + 1);  
           if (vhost->user_dir)  
              memcpy( req->user_dir, vhost->user_dir, vhost->user_dir_len + 1);  
   
        } else { /* No virtual host found. use defaults */  
           if ( default_document_root)  
              memcpy( req->document_root, default_document_root, default_document_root_size + 1);  
        }  
882      } else {      } else {
883          if (!add_cgi_env(req, line, value, 1))          if (!add_cgi_env(req, line, value, 1))
884              return 0;              return 0;

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26