Changeset 893
- Timestamp:
- 08/13/07 11:27:14 (1 year ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/cherokee/connection.c (modified) (6 diffs)
- cherokee/trunk/cherokee/server.c (modified) (2 diffs)
- cherokee/trunk/cherokee/win32_misc.c (modified) (2 diffs)
- cherokee/trunk/cherokee/win32_misc.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r892 r893 1 2007-08-13 A.D.F <adefacc@tin.it> 2 3 * cherokee/server.c 4 - added srv->bogo_now to cherokee_win32_shutdown_signalled() 5 call; 6 7 * cherokee/win32_misc.h, 8 cherokee/win32_misc.c 9 - added a formal parameter (time) to 10 cherokee_win32_shutdown_signalled(), in order to execute 11 shutdown test only once a second; 12 13 * cherokee/connection.c 14 - build_response_header(), don't add headers with this version; 15 - moved a cherokee_buffer_ensure_size(header_buffer) 16 near to the other call to cherokee_buffer_ensure_size(buffer); 17 - build_response_header__authenticate(), removed a couple 18 of calls to cherokee_buffer_ensure_addlen() because 19 they are no more needed in that place (buffer is large enough 20 and buffer reallocation already take care to use increments 21 with predefined chunk size). 22 1 23 2007-08-10 A.D.F <adefacc@tin.it> 2 24 cherokee/trunk/cherokee/connection.c
r891 r893 402 402 */ 403 403 if (conn->auth_type & http_auth_basic) { 404 cherokee_buffer_ensure_addlen (buffer, 31 + conn->realm_ref->len + 4);405 404 cherokee_buffer_add_str (buffer, "WWW-Authenticate: Basic realm=\""); 406 405 cherokee_buffer_add_buffer (buffer, conn->realm_ref); … … 415 414 cherokee_thread_t *thread = CONN_THREAD(conn); 416 415 cherokee_buffer_t *new_nonce = THREAD_TMP_BUF1(thread); 417 418 cherokee_buffer_ensure_addlen (buffer,419 32 + conn->realm_ref->len + 4 + 32 + 32);420 416 421 417 /* Realm … … 453 449 switch (conn->header.version) { 454 450 case http_version_09: 455 /* T ODO: remove HTTP headers in this version */456 cherokee_buffer_add_str (buffer, "HTTP/0.9 ");457 break;451 /* There are no HTTP headers in this version. 452 */ 453 return; 458 454 case http_version_10: 459 455 cherokee_buffer_add_str (buffer, "HTTP/1.0 "); … … 535 531 /* Try to get the headers from the handler 536 532 */ 537 cherokee_buffer_ensure_size (&(conn->header_buffer), 384);538 533 ret = cherokee_handler_add_headers (conn->handler, &conn->header_buffer); 539 534 if (unlikely (ret != ret_ok)) { … … 1869 1864 */ 1870 1865 if ((HANDLER_SUPPORT_LENGTH(conn->handler) == 0) && 1871 (HANDLER_SUPPORT_MAYBE_LENGTH(conn->handler) == 0)) { 1866 (HANDLER_SUPPORT_MAYBE_LENGTH(conn->handler) == 0) && 1867 conn->keepalive != 0) { 1872 1868 conn->keepalive = 0; 1873 1869 } 1874 1870 1875 /* Ensure the space for writing 1876 */ 1871 /* Ensure the space for headers and I/O buffer 1872 */ 1873 cherokee_buffer_ensure_size (&conn->header_buffer, 384); 1877 1874 cherokee_buffer_ensure_size (&conn->buffer, DEFAULT_READ_SIZE+1); 1878 1875 … … 1881 1878 1882 1879 1883 ret_t 1880 ret_t 1884 1881 cherokee_connection_log_or_delay (cherokee_connection_t *conn) 1885 1882 { cherokee/trunk/cherokee/server.c
r886 r893 1334 1334 1335 1335 #ifdef _WIN32 1336 if (cherokee_win32_shutdown_signaled( ))1336 if (cherokee_win32_shutdown_signaled(srv->bogo_now)) 1337 1337 srv->wanna_exit = true; 1338 1338 #endif 1339 1339 1340 /* Wanna exit?1340 /* Wanna reinit ? 1341 1341 */ 1342 1342 if (unlikely (srv->wanna_reinit)) { … … 1346 1346 } 1347 1347 1348 /* Wanna exit ? 1349 */ 1348 1350 if (unlikely (srv->wanna_exit)) 1349 1351 return ret_ok; cherokee/trunk/cherokee/win32_misc.c
r862 r893 1023 1023 } 1024 1024 1025 1025 1026 static bool 1026 1027 init_security_attributes_allow_all (struct security_attributes *obj) … … 1052 1053 } 1053 1054 1054 int 1055 cherokee_win32_shutdown_signaled() 1055 1056 /* This function is called by only one task 1057 * and it returns true if the process has to stop / exit. 1058 */ 1059 bool 1060 cherokee_win32_shutdown_signaled(time_t bogo_now) 1056 1061 { 1057 1062 static HANDLE exit_event = NULL; 1063 static time_t bogo_prev = 0; 1058 1064 1059 1065 if (!exit_event) { 1060 1066 exit_event = create_event (EXIT_EVENT_NAME, TRUE, FALSE, FALSE); 1061 1067 if (!exit_event) 1062 return 1; 1063 } 1064 1068 return true; 1069 } 1070 1071 /* If at least one second has not elapsed since last test, 1072 * then return now. 1073 */ 1074 if (bogo_prev == bogo_now) 1075 return false; 1076 1077 bogo_prev = bogo_now; 1078 1079 /* OK, test and return result. 1080 */ 1065 1081 return WaitForSingleObject (exit_event, (DWORD) 0) == WAIT_OBJECT_0; 1066 1082 } 1083 1067 1084 1068 1085 int cherokee/trunk/cherokee/win32_misc.h
r862 r893 31 31 #include <fcntl.h> 32 32 #include <winsock2.h> 33 #include <time.h> 33 34 34 35 #include "buffer.h" … … 45 46 46 47 int cherokee_win32_stat (const char *path, struct stat *buf); 47 int cherokee_win32_shutdown_signaled();48 bool cherokee_win32_shutdown_signaled(time_t bogo_now); 48 49 int cherokee_win32_mkstemp (cherokee_buffer_t *buffer); 49 50