Permalink
Browse files

merge from trunk:

 - CLOCK_MONOTONIC fixes
 - http content-length fixes


svn:r292
  • Loading branch information...
1 parent 9f15d02 commit 62ee1c68a54bdc744cc2dac69cdeaa5585c93261 @provos provos committed Dec 2, 2006
Showing with 28 additions and 15 deletions.
  1. +5 −1 evdns.c
  2. +5 −1 event.c
  3. +18 −13 http.c
View
@@ -799,7 +799,11 @@ transaction_id_pick(void) {
#ifdef DNS_USE_CPU_CLOCK_FOR_ID
struct timespec ts;
u16 trans_id;
- if (clock_gettime(CLOCK_MONOTONIC, &ts))
+#ifdef CLOCK_MONOTONIC
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
+#else
+ if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
+#endif
event_err(1, "clock_gettime");
trans_id = ts.tv_nsec & 0xffff;
#endif
View
@@ -149,8 +149,12 @@ gettime(struct timeval *tp)
{
#ifdef HAVE_CLOCK_GETTIME
struct timespec ts;
-
+
+#ifdef HAVE_CLOCK_MONOTONIC
if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
+#else
+ if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
+#endif
return (-1);
tp->tv_sec = ts.tv_sec;
tp->tv_usec = ts.tv_nsec / 1000;
View
31 http.c
@@ -302,21 +302,26 @@ evhttp_make_header_response(struct evhttp_connection *evcon,
req->response_code_line);
evbuffer_add(evcon->output_buffer, line, strlen(line));
- /* Potentially add headers */
- if (evhttp_find_header(req->output_headers, "Content-Type") == NULL) {
+ /* Potentially add headers for unidentified content. */
+ if (EVBUFFER_LENGTH(req->output_buffer) &&
+ evhttp_find_header(req->output_headers, "Content-Type") == NULL) {
evhttp_add_header(req->output_headers,
"Content-Type", "text/html; charset=ISO-8859-1");
- }
-
- /*
- * we need to add the content length if the user did not give it,
- * this is required for persistent connections to work.
- */
- if (evhttp_find_header(req->output_headers, "Content-Length") == NULL){
- static char len[12];
- snprintf(len, sizeof(len), "%ld",
- (long)EVBUFFER_LENGTH(req->output_buffer));
- evhttp_add_header(req->output_headers, "Content-Length", len);
+ /*
+ * we need to add the content length if the user did
+ * not give it, this is required for persistent
+ * connections to work.
+ */
+ if (evhttp_find_header(req->output_headers,
+ "Transfer-Encoding") == NULL &&
+ evhttp_find_header(req->output_headers,
+ "Content-Length") == NULL) {
+ static char len[12];
+ snprintf(len, sizeof(len), "%ld",
+ (long)EVBUFFER_LENGTH(req->output_buffer));
+ evhttp_add_header(req->output_headers,
+ "Content-Length", len);
+ }
}
/* if the request asked for a close, we send a close, too */

0 comments on commit 62ee1c6

Please sign in to comment.