Hi, I have made a patch which solves a problem I had last week--isapi_redirector sometimes corrupted data sent by the client.
I'm not sure where to send the patch, I hope I don't abuse this list by submitting it here. Someone more intimate with the code might want to make a better patch, the code that follows solves the problem but is not very elegant. I have added code that makes sure the content_length field in jk_ws_service_t gets updated for each call to jk2_service_iis_read. I have used version 2.0.2 of JK2. Joakim Strom Excosoft =================== int jk2_requtil_readFully(jk_env_t *env, jk_ws_service_t *s, unsigned char *buf, unsigned len) { unsigned rdlen = 0; unsigned padded_len = len; long content_read = s->content_read; // Patch Dec 9, 2002. Save value to restore later if (s->is_chunked && s->no_more_chunks) { return 0; } if (s->is_chunked) { /* Corner case: buf must be large enough to hold next * chunk size (if we're on or near a chunk border). * Pad the length to a reasonable value, otherwise the * read fails and the remaining chunks are tossed. */ padded_len = (len < CHUNK_BUFFER_PAD) ? len : len - CHUNK_BUFFER_PAD; } while(rdlen < padded_len) { unsigned this_time = 0; if(s->read(env, s, buf + rdlen, len - rdlen, &this_time)) { return -1; } s->content_read += this_time; // Patch Dec 9, 2002. // Make sure content_read gets incremented // if this loop runs more than once if(0 == this_time) { if (s->is_chunked) { s->no_more_chunks = 1; /* read no more */ } break; } rdlen += this_time; } s->content_read = content_read; // Patch Dec 9, 2002. Reset the value before returning return (int)rdlen; } -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>