Ignore:
Timestamp:
2010-03-27T01:00:33+01:00 (7 years ago)
Author:
jow
Message:

[package] uhttpd:

  • make script timeout configurable
  • catch SIGCHLD to properly interrupt select()
  • flag listen and client sockets as close-on-exec
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/uhttpd/src/uhttpd-cgi.c

    r20428 r20500  
    373373                                FD_SET(wfd[1], &writer); 
    374374 
    375                                 timeout.tv_sec = 15; 
     375                                timeout.tv_sec = cl->server->conf->script_timeout; 
    376376                                timeout.tv_usec = 0; 
    377377 
     
    539539                                } 
    540540 
    541                                 /* no activity for 15 seconds... looks dead */ 
     541                                /* timeout exceeded or interrupted by SIGCHLD */ 
    542542                                else 
    543543                                { 
    544                                         ensure(uh_http_sendhf(cl, 504, "Gateway Timeout", 
    545                                                 "The CGI script took too long to produce a response")); 
     544                                        if( (errno != EINTR) && ! header_sent ) 
     545                                        { 
     546                                                ensure(uh_http_sendhf(cl, 504, "Gateway Timeout", 
     547                                                        "The CGI script took too long to produce " 
     548                                                        "a response")); 
     549                                        } 
     550 
     551                                        /* send final chunk if we're in chunked transfer mode */ 
     552                                        ensure(uh_http_send(cl, req, "", 0)); 
    546553 
    547554                                        break; 
Note: See TracChangeset for help on using the changeset viewer.