-const char jcc_rcs[] = "$Id: jcc.c,v 1.296 2009/10/01 16:07:34 fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.297 2009/10/03 10:37:49 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
/* Did we actually get anything? */
if (NULL == csp->headers->first)
{
- log_error(LOG_LEVEL_ERROR,
- "Empty server or forwarder response received on socket %d.", csp->sfd);
+ if ((csp->flags & CSP_FLAG_REUSED_CLIENT_CONNECTION))
+ {
+ log_error(LOG_LEVEL_ERROR,
+ "Empty server or forwarder response received on socket %d. "
+ "Closing client connection %d without sending data.",
+ csp->sfd, csp->cfd);
+ }
+ else
+ {
+ log_error(LOG_LEVEL_ERROR,
+ "Empty server or forwarder response received on socket %d.",
+ csp->sfd);
+ send_crunch_response(csp, error_response(csp, "no-server-data"));
+ }
log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" 502 0", csp->ip_addr_str, http->cmd);
- send_crunch_response(csp, error_response(csp, "no-server-data"));
free_http_request(http);
mark_server_socket_tainted(csp);
return;
}
/* XXX: Store per-connection flags someplace else. */
- csp->flags = CSP_FLAG_ACTIVE | (csp->flags & CSP_FLAG_TOGGLED_ON);
+ csp->flags = CSP_FLAG_ACTIVE |
+ (csp->flags & CSP_FLAG_TOGGLED_ON) | CSP_FLAG_REUSED_CLIENT_CONNECTION;
}
else
{
#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.148 2009/07/18 12:20:05 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.149 2009/08/19 15:57:13 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*/
#define CSP_FLAG_SERVER_PROXY_CONNECTION_HEADER_SET 0x00080000U
+/**
+ * Flag for csp->flags: Set if the client reused its connection.
+ */
+#define CSP_FLAG_REUSED_CLIENT_CONNECTION 0x00100000U
+
/*
* Flags for use in return codes of child processes
*/