Browse Source

Fixed bug #37205 (incompatibility with mod_fastcgi)

PHP-5.1
Dmitry Stogov 20 years ago
parent
commit
f03fe1c09d
  1. 21
      sapi/cgi/fastcgi.c
  2. 1
      sapi/cgi/fastcgi.h

21
sapi/cgi/fastcgi.c

@ -441,7 +441,6 @@ static int fcgi_read_request(fcgi_request *req)
unsigned char buf[FCGI_MAX_LENGTH+8];
req->keep = 0;
req->has_in = 0;
req->in_len = 0;
req->out_hdr = NULL;
req->out_pos = req->out_buf;
@ -510,19 +509,6 @@ static int fcgi_read_request(fcgi_request *req)
len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
padding = hdr.paddingLength;
}
#ifdef _WIN32
req->has_in = 1;
#else
if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
hdr.version < FCGI_VERSION_1 ||
hdr.type != FCGI_STDIN) {
req->keep = 0;
return 0;
}
req->in_len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
req->in_pad = hdr.paddingLength;
req->has_in = (req->in_len != 0);
#endif
} else if (hdr.type == FCGI_GET_VALUES) {
int i, j;
int name_len;
@ -565,9 +551,6 @@ int fcgi_read(fcgi_request *req, char *str, int len)
fcgi_header hdr;
unsigned char buf[8];
if (!req->has_in) {
return 0;
}
n = 0;
rest = len;
while (rest > 0) {
@ -635,6 +618,10 @@ static inline void fcgi_close(fcgi_request *req, int force, int destroy)
RevertToSelf();
}
#else
char buf[8];
shutdown(req->fd, 1);
while (recv(req->fd, buf, sizeof(buf), 0) > 0) {}
close(req->fd);
#endif
req->fd = -1;

1
sapi/cgi/fastcgi.h

@ -97,7 +97,6 @@ typedef struct _fcgi_request {
int id;
int keep;
int has_in;
int in_len;
int in_pad;

Loading…
Cancel
Save