Changeset 1766
- Timestamp:
- 08/07/08 17:13:47 (4 months ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/cherokee/connection.c (modified) (1 diff)
- cherokee/trunk/cherokee/handler_error_nn.c (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_error_nn.h (modified) (1 diff)
- cherokee/trunk/qa/048-NN.py (modified) (2 diffs)
- cherokee/trunk/qa/049-NN-broken.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r1763 r1766 1 1 2008-08-07 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 3 * cherokee/handler_error_nn.c, cherokee/handler_error_nn.h, 4 qa/049-NN-broken.py, qa/048-NN.py: Fixes the NN support and adapts 5 the QA test to the new behavior (it is error handler now). 2 6 3 7 * cherokee/connection.c (cherokee_connection_parse_header): Adds a cherokee/trunk/cherokee/connection.c
r1763 r1766 372 372 if ((entry != NULL) && (entry->handler_new_func != NULL)) { 373 373 ret = entry->handler_new_func ((void **) &conn->handler, conn, entry->handler_properties); 374 if (ret == ret_ok) goto out; 374 if (ret == ret_ok) 375 goto out; 375 376 } 376 377 cherokee/trunk/cherokee/handler_error_nn.c
r1734 r1766 133 133 134 134 135 ret_t 136 cherokee_handler_error_nn_new (cherokee_handler_t **hdl, 137 cherokee_connection_t *conn, 138 cherokee_module_props_t *props) 135 static ret_t 136 error_nn_init (cherokee_handler_error_t *hdl) 139 137 { 140 ret_t ret; 138 ret_t ret; 139 cherokee_connection_t *conn = HANDLER_CONN(hdl); 141 140 142 141 cherokee_buffer_clean (&conn->redirect); … … 145 144 if (unlikely (ret != ret_ok)) { 146 145 conn->error_code = http_not_found; 147 return cherokee_handler_error_new (hdl, conn, props);146 return ret_error; 148 147 } 149 148 150 cherokee_buffer_swap_buffers (&conn->request, &conn->redirect); 151 cherokee_buffer_clean (&conn->redirect); 152 153 return ret_eagain; 149 conn->error_code = http_moved_temporarily; 150 return ret_error; 154 151 } 155 152 153 static ret_t 154 error_nn_add_headers (cherokee_handler_error_t *hdl, cherokee_buffer_t *buffer) 155 { 156 UNUSED(hdl); 157 UNUSED(buffer); 158 159 return ret_ok; 160 } 161 162 static ret_t 163 error_nn_step (cherokee_handler_error_t *hdl, cherokee_buffer_t *buffer) 164 { 165 UNUSED(hdl); 166 UNUSED(buffer); 167 168 return ret_eof; 169 } 170 171 static ret_t 172 error_nn_free (cherokee_handler_error_t *hdl) 173 { 174 UNUSED(hdl); 175 176 return ret_ok; 177 } 178 179 180 ret_t 181 cherokee_handler_error_nn_new (cherokee_handler_t **hdl, 182 cherokee_connection_t *conn, 183 cherokee_module_props_t *props) 184 { 185 CHEROKEE_NEW_STRUCT (n, handler_error_nn); 186 187 cherokee_handler_init_base (HANDLER(n), conn, HANDLER_PROPS(props), PLUGIN_INFO_HANDLER_PTR(error_nn)); 188 HANDLER(n)->support = hsupport_error | hsupport_length; 189 190 MODULE(n)->init = (handler_func_init_t) error_nn_init; 191 MODULE(n)->free = (module_func_free_t) error_nn_free; 192 HANDLER(n)->step = (handler_func_step_t) error_nn_step; 193 HANDLER(n)->add_headers = (handler_func_add_headers_t) error_nn_add_headers; 194 195 *hdl = HANDLER(n); 196 return ret_ok; 197 } 198 199 cherokee/trunk/cherokee/handler_error_nn.h
r1734 r1766 31 31 #include "plugin_loader.h" 32 32 33 typedef struct { 34 cherokee_handler_t handler; 35 } cherokee_handler_error_nn_t; 36 33 37 /* Library init function 34 38 */ cherokee/trunk/qa/048-NN.py
r1738 r1766 3 3 MAGIC = "Sesamo" 4 4 CONTENT = "This is the content of " + MAGIC 5 HOST = "nn1" 5 6 6 7 CONF = """ 7 vserver!1!rule!480!match = directory 8 vserver!1!rule!480!match!directory = /nn1 9 vserver!1!rule!480!handler = nn 10 """ 8 vserver!480!nick = %s 9 vserver!480!document_root = %s 10 vserver!480!rule!1!match = default 11 vserver!480!rule!1!handler = file 12 vserver!480!error_handler = error_nn 13 """ 11 14 12 15 class Test (TestBase): … … 15 18 self.name = "NN" 16 19 17 self.request = "GET / nn1/Xesano HTTP/1.0\r\n"18 self.conf = CONF19 self.expected_error = 20020 self. expected_content= CONTENT21 self. forbidden_content = "Location: "20 self.request = "GET /Xesano HTTP/1.1\r\n" + \ 21 "Host: %s\r\n" %(HOST) 22 self.expected_error = 302 23 self.forbidden_content = CONTENT 24 self.expected_content = "Location: /"+MAGIC 22 25 23 26 def Prepare (self, www): 24 self.Mkdir (www, "nn1") 25 self.WriteFile (www, "nn1/name") 26 self.WriteFile (www, "nn1/"+MAGIC, 0444, CONTENT) 27 self.WriteFile (www, "nn1/ABCD") 28 self.WriteFile (www, "nn1/alobbs") 27 d = self.Mkdir (www, "nn1_root") 28 29 self.WriteFile (d, "name") 30 self.WriteFile (d, MAGIC, 0444, CONTENT) 31 self.WriteFile (d, "ABCD") 32 self.WriteFile (d, "alobbs") 33 34 self.conf = CONF % (HOST, d) cherokee/trunk/qa/049-NN-broken.py
r1738 r1766 1 1 from base import * 2 2 3 HOST = "nn2" 4 3 5 CONF = """ 4 vserver!1!rule!490!match = directory 5 vserver!1!rule!490!match!directory = /missing 6 vserver!1!rule!490!handler = nn 6 vserver!490!nick = %s 7 vserver!490!document_root = %s 8 vserver!490!rule!1!match = default 9 vserver!490!rule!1!handler = file 10 vserver!490!error_handler = error_nn 7 11 """ 8 12 … … 12 16 self.name = "Broken NN" 13 17 14 self.request = "GET /missing/ HTTP/1.0\r\n"15 self.conf = CONF16 self.expected_error = 40418 self.request = "GET /missing HTTP/1.1\r\n" + \ 19 "Host: %s\r\n" % (HOST) 20 self.expected_error = 404 17 21 22 def Prepare (self, www): 23 d = self.Mkdir (www, "nn2_root") 24 self.conf = CONF % (HOST, d)