X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=jcc.c;h=d2ae203afc583b9322d8aa7fddb94552a67943fd;hb=af975ab9eaa4fe6df9c03b579f11b09d95755b2d;hp=9364300c132c53f31eaecb01391af45e1171c220;hpb=ccca702c7aee2651fd7944e0d7ccbcb06f8558ec;p=privoxy.git diff --git a/jcc.c b/jcc.c index 9364300c..d2ae203a 100644 --- a/jcc.c +++ b/jcc.c @@ -1,4 +1,4 @@ -const char jcc_rcs[] = "$Id: jcc.c,v 1.191 2008/10/11 18:00:14 fabiankeil Exp $"; +const char jcc_rcs[] = "$Id: jcc.c,v 1.193 2008/10/12 15:57:35 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.c,v $ @@ -33,6 +33,14 @@ const char jcc_rcs[] = "$Id: jcc.c,v 1.191 2008/10/11 18:00:14 fabiankeil Exp $" * * Revisions : * $Log: jcc.c,v $ + * Revision 1.193 2008/10/12 15:57:35 fabiankeil + * Fix content length calculation if we read headers + * and the start of the body at once. Now that we have + * FEATURE_CONNECTION_KEEP_ALIVE, it actually matters. + * + * Revision 1.192 2008/10/11 18:19:14 fabiankeil + * Even more chat() cosmetics. + * * Revision 1.191 2008/10/11 18:00:14 fabiankeil * Reformat some comments in chat(). * @@ -2797,6 +2805,7 @@ static void chat(struct client_state *csp) } else { + const char *header_start; /* * We're still looking for the end of the server's header. * Buffer up the data we just read. If that fails, there's @@ -2811,6 +2820,8 @@ static void chat(struct client_state *csp) return; } + header_start = csp->iob->cur; + /* Convert iob into something sed() can digest */ if (JB_ERR_PARSE == get_server_headers(csp)) { @@ -2927,6 +2938,16 @@ static void chat(struct client_state *csp) byte_count += (size_t)len; } + else + { + /* + * XXX: the header lenght should probably + * be calculated by get_server_headers(). + */ + int header_length = csp->iob->cur - header_start; + assert(csp->iob->cur > header_start); + byte_count += len - header_length; + } /* we're finished with the server's header */