Closing connection if no keep alive
This commit is contained in:
		| @@ -16,7 +16,6 @@ | |||||||
| #include "../server.h" | #include "../server.h" | ||||||
|  |  | ||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <openssl/err.h> |  | ||||||
| #include <arpa/inet.h> | #include <arpa/inet.h> | ||||||
|  |  | ||||||
| static int request_handler(client_ctx_t *ctx); | static int request_handler(client_ctx_t *ctx); | ||||||
| @@ -27,6 +26,7 @@ void request_handler_func(client_ctx_t *ctx) { | |||||||
|     switch (request_handler(ctx)) { |     switch (request_handler(ctx)) { | ||||||
|         case 0: |         case 0: | ||||||
|             respond(ctx); |             respond(ctx); | ||||||
|  |             request_complete(ctx); | ||||||
|             handle_request(ctx); |             handle_request(ctx); | ||||||
|             break; |             break; | ||||||
|         case 1: |         case 1: | ||||||
|   | |||||||
| @@ -56,7 +56,11 @@ static int handle_request_cb(client_ctx_t *ctx) { | |||||||
| } | } | ||||||
|  |  | ||||||
| int handle_request(client_ctx_t *ctx) { | int handle_request(client_ctx_t *ctx) { | ||||||
|     return async(ctx->socket.socket, POLLIN, 0, (void (*)(void *)) handle_request_cb, ctx, (void (*)(void *)) tcp_close, ctx); |     if (ctx->c_keep_alive && ctx->s_keep_alive) { | ||||||
|  |         return async(ctx->socket.socket, POLLIN, 0, (void (*)(void *)) handle_request_cb, ctx, (void (*)(void *)) tcp_close, ctx); | ||||||
|  |     } else { | ||||||
|  |         return tcp_close(ctx); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| int local_handle(client_ctx_t *ctx) { | int local_handle(client_ctx_t *ctx) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user