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