You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ro...@apache.org on 2006/01/04 04:51:59 UTC

svn commit: r365813 - /httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c

Author: rooneg
Date: Tue Jan  3 19:51:58 2006
New Revision: 365813

URL: http://svn.apache.org/viewcvs?rev=365813&view=rev
Log:
Clean up record header parsing a bit.  This may fix the problems some
people have seen where rid != request_id.

* modules/proxy/mod_proxy_fcgi.c
  (dispatch): Stop initializing things we're just going to assign over
   them later, initialize all of the rid and clen variables, and fix a
   warning from passing an unsigned char array into apr_socket_recv by
   adding a cast to char *.

Modified:
    httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c

Modified: httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c?rev=365813&r1=365812&r2=365813&view=diff
==============================================================================
--- httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c (original)
+++ httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c Tue Jan  3 19:51:58 2006
@@ -406,10 +406,10 @@
              * the headers, even if we fill the entire length in the recv. */
             char readbuf[AP_IOBUFSIZE + 1];
             apr_size_t readbuflen;
-            apr_size_t clen = 0;
-            int rid, type = 0;
-            char plen = 0;
+            apr_size_t clen;
+            int rid, type;
             apr_bucket *b;
+            char plen;
             /*
              * below mapped to fcgi_header layout. We
              * use a unsigned char array to ensure the
@@ -424,7 +424,7 @@
             /* First, we grab the header... */
             readbuflen = FCGI_HEADER_LEN;
 
-            rv = apr_socket_recv(conn->sock, fheader, &readbuflen);
+            rv = apr_socket_recv(conn->sock, (char *) fheader, &readbuflen);
             if (rv != APR_SUCCESS) {
                 break;
             }
@@ -446,8 +446,7 @@
 
             type = fheader[1];
 
-            rid |= fheader[2] << 8;
-            rid |= fheader[3] << 0;
+            rid = (fheader[2] << 8) | fheader[3];
 
             if (rid != request_id) {
                 ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server,
@@ -459,8 +458,7 @@
 #endif
             }
 
-            clen |= fheader[4] << 8;
-            clen |= fheader[5] << 0;
+            clen = (fheader[4] << 8) | fheader[5];
 
             plen = fheader[6];