diff options
| -rw-r--r-- | src/net.c | 7 | ||||
| -rw-r--r-- | tests/units/net-query.lua | 25 |
2 files changed, 29 insertions, 3 deletions
@@ -565,6 +565,7 @@ int _request(lua_State* L, struct request_state* state){ char* request = calloc(cont_len + header->len + strlen(host) + strlen(path) + 512, sizeof * request);
sprintf(request, "%s %s HTTP/1.1\r\nHost: %s\r\nConnection: Close%s\r\n\r\n%s", action, path, host, header->c, cont);
+
str_free(header);
int s = _request_write(state, request, strlen(request));
@@ -597,7 +598,7 @@ int _request(lua_State* L, struct request_state* state){ parray_t* owo = NULL;
//handle errors
- int err = parse_header(a->c, header_eof - a->c, &owo);
+ int err = parse_header(a->c, header_eof - a->c + 2, &owo);
assert(err == 0);
for(int i = 0; i != owo->len; i++){
@@ -669,7 +670,7 @@ void path_parse(struct net_path_t* path, str* raw){ str** reading = &path->path;
- for(int i = 0; i <= raw->len; i++){
+ for(int i = 0; i <= raw->len - 1; i++){
if(raw->len - i > 1){
switch(raw->c[i]){
case '&':
@@ -720,7 +721,7 @@ void* handle_client(void *_arg){ parray_t* table;
//checks for a valid header
- int val = parse_header(buffer, header_eof, &table);
+ int val = parse_header(buffer, header_eof + 2, &table);
if(val == -2) net_error(client_fd, 414);
diff --git a/tests/units/net-query.lua b/tests/units/net-query.lua new file mode 100644 index 0000000..4115172 --- /dev/null +++ b/tests/units/net-query.lua @@ -0,0 +1,25 @@ +PORT = 5552 +local a = 255 +local b = 992 + +local net = llby.thread.async(function(tres) + local c = 943 + llby.net.listen(function(server) + server:GET("/", function(res, req) + res:send(tostring(tonumber(req.query.t1) * a + tonumber(req.query.t2) * b + tonumber(req.query.t3) * c)) + end) + end, PORT) +end) + +local t1 = 293 +local t2 = 928 +local t3 = 777 + +--should wait for the server to start +os.execute("sleep 0.1") + +local s = llby.net.request(string.format("localhost:%i/?t1=%i&t2=%i&t3=%i", PORT, t1, t2, t3)) +local num = s.content:read() + +net:close() +return tonumber(num) == (t1 * a + t2 * b + t3 * 943) |
