diff options
-rw-r--r-- | plop.c | 3 | ||||
-rw-r--r-- | request.c | 9 | ||||
-rw-r--r-- | request.h | 2 |
3 files changed, 8 insertions, 6 deletions
@@ -111,9 +111,8 @@ int handle_client(lua_State * L, struct pollfd * pfd, struct request ** request, // TODO: Remove debug information or move to logging printf( - "(%.*s) [%.*s] %.*s\n", + "(%.*s) %.*s\n", (*request)->version.length, (*request)->data + (*request)->version.start, - (*request)->method.length, (*request)->data + (*request)->method.start, (*request)->path.length, (*request)->data + (*request)->path.start); for (int h = 0; h < (*request)->headerc; ++h) @@ -160,15 +160,18 @@ static int read_rest_of_line(struct request * request) /// \return -1 if an error has occured, 0 if too little data available or total number of bytes processed int parse_step_method(struct request * request) { - request->method.length = read_until_char(request, ' '); + request->temp.start = 0; + // TODO: Consider reworking read_* functions to be more aware of word boundaries. + request->temp.length = read_until_char(request, ' '); - if (0 == request->method.length) + if (0 == request->temp.length) { return 0; } - request->step = parse_step_path; + lua_pushlstring(request->lua, request->data + request->temp.start, request->temp.length); + request->step = parse_step_path; return parse_step_path(request); } @@ -22,7 +22,7 @@ struct request int position; lua_State * lua; int reference; - struct span method; + struct span temp; struct span path; struct span version; struct header * headerv; |