*
* Copyright (c) 1996 Open Market, Inc.
*
- * See the file "LICENSE.TERMS" for information on usage and redistribution
+ * See the file "LICENSE" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
*/
static int ProcessManagementRecord(int type, FCGX_Stream *stream)
{
FCGX_Stream_Data *data = (FCGX_Stream_Data *)stream->data;
- ParamsPtr paramsPtr = NewParams(3);
+ ParamsPtr paramsPtr;
char **pPtr;
char response[64]; /* 64 = 8 + 3*(1+1+14+1)* + padding */
char *responseP = &response[FCGI_HEADER_LEN];
char *name, value = '\0';
int len, paddedLen;
if(type == FCGI_GET_VALUES) {
+ paramsPtr = NewParams(3);
ReadParams(paramsPtr, stream);
if((FCGX_GetError(stream) != 0) || (data->contentLen != 0)) {
FreeParams(¶msPtr);
if (reqDataPtr->in) {
close |= FCGX_FClose(reqDataPtr->err);
close |= FCGX_FClose(reqDataPtr->out);
+ close |= FCGX_GetError(reqDataPtr->in);
- close |= FCGX_GetError(reqDataPtr->in);
+ /* discard any remaining data in input stream on persistent connections */
+ if (!close && !reqDataPtr->in->isClosed && reqDataPtr->keepConnection) {
+ FCGX_Stream *stream = reqDataPtr->in;
+
+ do {
+ stream->rdNext = stream->stop;
+ stream->fillBuffProc(stream);
+ } while (!stream->isClosed);
+
+ close |= FCGX_GetError(stream);
+ }
}
FCGX_Free(reqDataPtr, close);