-const char parsers_rcs[] = "$Id: parsers.c,v 1.162 2009/05/25 15:40:52 fabiankeil Exp $";
+const char parsers_rcs[] = "$Id: parsers.c,v 1.167 2009/05/28 21:13:34 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/parsers.c,v $
#endif
struct tm *timeptr = NULL;
time_t now, last_modified;
- long int rtime;
long int days, hours, minutes, seconds;
/*
now = time(NULL);
#ifdef HAVE_GMTIME_R
gmtime_r(&now, &gmt);
-#elif FEATURE_PTHREAD
+#elif defined(MUTEX_LOCKS_AVAILABLE)
privoxy_mutex_lock(&gmtime_mutex);
gmtime(&now);
privoxy_mutex_unlock(&gmtime_mutex);
}
else
{
- rtime = (long int)difftime(now, last_modified);
+ long int rtime = (long int)difftime(now, last_modified);
if (rtime)
{
- int negative = 0;
+ const int negative_delta = (rtime < 0);
- if (rtime < 0)
+ if (negative_delta)
{
rtime *= -1;
- negative = 1;
log_error(LOG_LEVEL_HEADER, "Server time in the future.");
}
rtime = pick_from_range(rtime);
- if (negative) rtime *= -1;
+ if (negative_delta)
+ {
+ rtime *= -1;
+ }
last_modified += rtime;
#ifdef HAVE_GMTIME_R
timeptr = gmtime_r(&last_modified, &gmt);
-#elif FEATURE_PTHREAD
+#elif defined(MUTEX_LOCKS_AVAILABLE)
privoxy_mutex_lock(&gmtime_mutex);
timeptr = gmtime(&last_modified);
privoxy_mutex_unlock(&gmtime_mutex);
tm += rtime * (negative ? -1 : 1);
#ifdef HAVE_GMTIME_R
timeptr = gmtime_r(&tm, &gmt);
-#elif FEATURE_PTHREAD
+#elif defined(MUTEX_LOCKS_AVAILABLE)
privoxy_mutex_lock(&gmtime_mutex);
timeptr = gmtime(&tm);
privoxy_mutex_unlock(&gmtime_mutex);
* Function : server_proxy_connection_adder
*
* Description : Adds a "Proxy-Connection: keep-alive" header to
- * csp->headers. XXX: We should reuse existant ones.
+ * csp->headers if the client asked for keep-alive.
+ * XXX: We should reuse existant ones.
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
static jb_err server_proxy_connection_adder(struct client_state *csp)
{
static const char proxy_connection_header[] = "Proxy-Connection: keep-alive";
- log_error(LOG_LEVEL_HEADER, "Adding: %s", proxy_connection_header);
- return enlist(csp->headers, proxy_connection_header);
+ jb_err err = JB_ERR_OK;
+
+ if ((csp->flags & CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE))
+ {
+ log_error(LOG_LEVEL_HEADER, "Adding: %s", proxy_connection_header);
+ err = enlist(csp->headers, proxy_connection_header);
+ }
+
+ return err;
}
#endif /* FEATURE_CONNECTION_KEEP_ALIVE */
*********************************************************************/
static jb_err client_connection_header_adder(struct client_state *csp)
{
- const unsigned int flags = csp->flags;
const char *wanted_header = get_appropiate_connection_header(csp);
- if (!(flags & CSP_FLAG_CLIENT_HEADER_PARSING_DONE)
- && (flags & CSP_FLAG_CLIENT_CONNECTION_HEADER_SET))
+ if (!(csp->flags & CSP_FLAG_CLIENT_HEADER_PARSING_DONE)
+ && (csp->flags & CSP_FLAG_CLIENT_CONNECTION_HEADER_SET))
{
return JB_ERR_OK;
}