Changeset 946
- Timestamp:
- 11/03/07 12:53:18 (1 year ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/cherokee/connection.c (modified) (1 diff)
- cherokee/trunk/cherokee/logger_ncsa.c (modified) (1 diff)
- cherokee/trunk/cherokee/logger_w3c.c (modified) (4 diffs)
- cherokee/trunk/cherokee/server-protected.h (modified) (1 diff)
- cherokee/trunk/cherokee/server.c (modified) (5 diffs)
- cherokee/trunk/cherokee/thread.c (modified) (3 diffs)
- cherokee/trunk/cherokee/thread.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r945 r946 1 2007-11-03 A.D.F <adefacc@tin.it> 2 3 * cherokee/server-protected.h, cherokee/server.c, 4 cherokee/thread.h, cherokee/thread.c, 5 cherokee/connection.c, 6 cherokee/logger_ncsa.c, cherokee/logger_w3c.c 7 - added RFC-1123 date-time format to try to fix issue 24 8 (http://code.google.com/p/cherokee/issues/detail?id=24); 9 now there are two distinct times: local and GMT time, 10 right now only RFC-1123 date-time string is generated and 11 stored into bogo_now_strgmt; should a local time string 12 be useful, then it could be easily added; things changed: 13 - added new fields to cherokee_server struct: 14 - bogo_now_tzloc_sign; 15 - bogo_now_tzloc_offset; 16 - bogo_now_tmloc; 17 - bogo_now_tmgmt; 18 - bogo_now_strgmt; 19 - removed a few fields from cherokee_server struct: 20 - bogo_now_tm; 21 - bogo_now_string; 22 - server.c -> update_bogo_now: changed; 23 - connection.c, use new date-time string in RFC-1123 format; 24 - logger*.c use the new localtime variable names 25 (no functional change). 26 1 27 2007-11-02 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 28 cherokee/trunk/cherokee/connection.c
r911 r946 476 476 */ 477 477 cherokee_buffer_add_str (buffer, "Date: "); 478 cherokee_buffer_add_buffer (buffer, &CONN_SRV(conn)->bogo_now_str ing);478 cherokee_buffer_add_buffer (buffer, &CONN_SRV(conn)->bogo_now_strgmt); 479 479 cherokee_buffer_add_str (buffer, CRLF); 480 480 cherokee/trunk/cherokee/logger_ncsa.c
r638 r946 211 211 212 212 logger->now_time = CONN_THREAD(cnt)->bogo_now; 213 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tm ;213 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tmloc; 214 214 cherokee_buffer_clean (&logger->now_dtm); 215 215 cherokee_buffer_add_va (&logger->now_dtm, cherokee/trunk/cherokee/logger_w3c.c
r638 r946 188 188 189 189 logger->now_time = CONN_THREAD(cnt)->bogo_now; 190 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tm ;190 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tmloc; 191 191 192 192 cherokee_buffer_clean (&logger->now_buf); … … 199 199 200 200 if (unlikely (! logger->header_added)) { 201 struct tm *pnow_tm = &CONN_THREAD(cnt)->bogo_now_tm ;201 struct tm *pnow_tm = &CONN_THREAD(cnt)->bogo_now_tmloc; 202 202 203 203 cherokee_buffer_add_va (log, … … 284 284 285 285 logger->now_time = CONN_THREAD(cnt)->bogo_now; 286 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tm ;286 pnow_tm = &CONN_THREAD(cnt)->bogo_now_tmloc; 287 287 288 288 cherokee_buffer_clean (&logger->now_buf); … … 295 295 296 296 if (unlikely (! logger->header_added)) { 297 struct tm *pnow_tm = &CONN_THREAD(cnt)->bogo_now_tm ;297 struct tm *pnow_tm = &CONN_THREAD(cnt)->bogo_now_tmloc; 298 298 299 299 cherokee_buffer_add_va (log, cherokee/trunk/cherokee/server-protected.h
r852 r946 64 64 time_t start_time; 65 65 time_t bogo_now; 66 struct tm bogo_now_tm; 67 cherokee_buffer_t bogo_now_string; 66 struct tm bogo_now_tmloc; 67 struct tm bogo_now_tmgmt; 68 int bogo_now_tzloc_sign; 69 cuint_t bogo_now_tzloc_offset; 70 cherokee_buffer_t bogo_now_strgmt; 68 71 CHEROKEE_RWLOCK_T (bogo_now_mutex); 69 72 cherokee/trunk/cherokee/server.c
r941 r946 99 99 { 100 100 ret_t ret; 101 CHEROKEE_ NEW_STRUCT(n, server);101 CHEROKEE_CNEW_STRUCT(1, n, server); 102 102 103 103 cherokee_trace_init (); … … 178 178 */ 179 179 n->bogo_now = 0; 180 n->bogo_now_tzloc_sign = '+'; 181 n->bogo_now_tzloc_offset = 0; 180 182 CHEROKEE_RWLOCK_INIT (&n->bogo_now_mutex, NULL); 181 183 182 184 CHEROKEE_RWLOCK_WRITER (&n->bogo_now_mutex); 183 cherokee_buffer_init (&n->bogo_now_string); 184 cherokee_buffer_ensure_size (&n->bogo_now_string, 185 sizeof("Sun, 01 Sep 2006 00:00:00 GMT+00")); 185 cherokee_buffer_init (&n->bogo_now_strgmt); 186 cherokee_buffer_ensure_size (&n->bogo_now_strgmt, DTM_SIZE_GMTTM_STR); 186 187 CHEROKEE_RWLOCK_UNLOCK (&n->bogo_now_mutex); 187 188 … … 367 368 srv->vserver_default = NULL; 368 369 369 cherokee_buffer_mrproper (&srv->bogo_now_str ing);370 cherokee_buffer_mrproper (&srv->bogo_now_strgmt); 370 371 cherokee_buffer_mrproper (&srv->timeout_header); 371 372 … … 1264 1265 update_bogo_now (cherokee_server_t *srv) 1265 1266 { 1266 char sign;1267 cuint_t offset;1268 1267 time_t newtime; 1269 1268 … … 1274 1273 return; 1275 1274 1276 /* Update the internal variable1275 /* Update internal variables 1277 1276 */ 1278 1277 CHEROKEE_RWLOCK_WRITER (&srv->bogo_now_mutex); /* 1.- lock as writer */ 1278 1279 srv->bogo_now = newtime; 1280 1281 /* Convert time to both GMT and local time struct 1282 */ 1283 cherokee_gmtime (&newtime, &srv->bogo_now_tmgmt); 1284 cherokee_localtime (&newtime, &srv->bogo_now_tmloc); 1285 1286 #ifdef HAVE_STRUCT_TM_GMTOFF 1287 srv->bogo_now_tzloc_sign = srv->bogo_now_tmloc.tm_gmtoff < 0 ? '-' : '+'; 1288 srv->bogo_now_tzloc_offset = abs(srv->bogo_now_tmloc.tm_gmtoff / 3600); 1289 #else 1290 srv->bogo_now_tzloc_sign = timezone < 0 ? '-' : '+'; 1291 srv->bogo_now_tzloc_offset = abs(timezone / 3600); 1292 #endif 1279 1293 1280 srv->bogo_now = newtime; 1281 cherokee_localtime (&newtime, &srv->bogo_now_tm); 1282 1283 #ifdef HAVE_STRUCT_TM_GMTOFF 1284 sign = srv->bogo_now_tm.tm_gmtoff < 0 ? '-' : '+'; 1285 offset = abs(srv->bogo_now_tm.tm_gmtoff / 3600); 1286 #else 1287 sign = timezone < 0 ? '-' : '+'; 1288 offset = abs(timezone / 3600); 1289 #endif 1290 1291 cherokee_buffer_clean (&srv->bogo_now_string); 1292 cherokee_buffer_add_va_fixed ( 1293 &srv->bogo_now_string, 1294 "%s, %02d %s %d %02d:%02d:%02d GMT%c%d", 1295 cherokee_dtm_wday_name(srv->bogo_now_tm.tm_wday), 1296 srv->bogo_now_tm.tm_mday, 1297 cherokee_dtm_month_name(srv->bogo_now_tm.tm_mon), 1298 srv->bogo_now_tm.tm_year + 1900, 1299 srv->bogo_now_tm.tm_hour, 1300 srv->bogo_now_tm.tm_min, 1301 srv->bogo_now_tm.tm_sec, 1302 sign, offset); 1294 cherokee_buffer_clean (&srv->bogo_now_strgmt); 1295 { 1296 size_t szlen = 0; 1297 char bufstr[DTM_SIZE_GMTTM_STR + 2]; 1298 1299 szlen = cherokee_dtm_gmttm2str (bufstr, sizeof(bufstr), 1300 &srv->bogo_now_tmgmt); 1301 cherokee_buffer_add (&srv->bogo_now_strgmt, bufstr, szlen); 1302 } 1303 1304 /* NOTE: a local time string should have {+-}timezone_offset (hours) 1305 * added to date-time GMT string. 1306 */ 1303 1307 1304 1308 CHEROKEE_RWLOCK_UNLOCK (&srv->bogo_now_mutex); /* 2.- release */ cherokee/trunk/cherokee/thread.c
r910 r946 89 89 /* Update struct tm 90 90 */ 91 memcpy (&thd->bogo_now_tm, &srv->bogo_now_tm, sizeof(struct tm)); 91 memcpy (&thd->bogo_now_tmgmt, &srv->bogo_now_tmgmt, sizeof(struct tm)); 92 memcpy (&thd->bogo_now_tmloc, &srv->bogo_now_tmloc, sizeof(struct tm)); 92 93 93 94 /* Update cherokee_buffer_t 94 95 */ 95 cherokee_buffer_clean (&thd->bogo_now_str ing);96 cherokee_buffer_add_buffer (&thd->bogo_now_str ing, &srv->bogo_now_string);96 cherokee_buffer_clean (&thd->bogo_now_strgmt); 97 cherokee_buffer_add_buffer (&thd->bogo_now_strgmt, &srv->bogo_now_strgmt); 97 98 98 99 } … … 256 257 */ 257 258 n->bogo_now = 0; 258 memset (&n->bogo_now_tm , 0, sizeof (struct tm));259 cherokee_buffer_init (&n->bogo_now_str ing);259 memset (&n->bogo_now_tmgmt, 0, sizeof (struct tm)); 260 cherokee_buffer_init (&n->bogo_now_strgmt); 260 261 261 262 /* Temporary buffer used by utility functions … … 1355 1356 cherokee_list_t *i, *tmp; 1356 1357 1357 cherokee_buffer_mrproper (&thd->bogo_now_str ing);1358 cherokee_buffer_mrproper (&thd->bogo_now_strgmt); 1358 1359 cherokee_buffer_mrproper (&thd->tmp_buf1); 1359 1360 cherokee_buffer_mrproper (&thd->tmp_buf2); cherokee/trunk/cherokee/thread.h
r852 r946 65 65 66 66 time_t bogo_now; 67 struct tm bogo_now_tm; 68 cherokee_buffer_t bogo_now_string; 67 struct tm bogo_now_tmgmt; 68 struct tm bogo_now_tmloc; 69 cherokee_buffer_t bogo_now_strgmt; 69 70 70 71 cherokee_buffer_t tmp_buf1;