From 3c49f4ce3f4a3dc17a9530339bb21b214d8677be Mon Sep 17 00:00:00 2001 From: dernasherbrezon Date: Mon, 6 Jan 2025 20:59:44 +0000 Subject: [PATCH] close socket immediately without waiting for timeout --- src/tcp_server.c | 4 ++-- test/hackrf_lib_mock.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tcp_server.c b/src/tcp_server.c index 2289203..398b430 100644 --- a/src/tcp_server.c +++ b/src/tcp_server.c @@ -331,7 +331,7 @@ void handle_new_client(int client_socket, tcp_server *server) { fprintf(stderr, "<3>[%d] requested out of band frequency: %d\n", server->client_counter, config->band_freq); pthread_mutex_unlock(&server->mutex); // this will shutdown the thread - close(tcp_node->config->client_socket); + shutdown(tcp_node->config->client_socket, SHUT_RDWR); // this one will close any remaning resources tcp_node_final_cleanup(tcp_node); return; @@ -408,7 +408,7 @@ static void *acceptor_worker(void *arg) { struct linked_list_tcp_node *cur_node = server->tcp_nodes; while (cur_node != NULL) { struct linked_list_tcp_node *next = cur_node->next; - close(cur_node->config->client_socket); + shutdown(cur_node->config->client_socket, SHUT_RDWR); uint32_t node_id = cur_node->config->id; while (cur_node->config->is_running) { pthread_cond_wait(&server->terminated_condition, &server->mutex); diff --git a/test/hackrf_lib_mock.c b/test/hackrf_lib_mock.c index d9d31fb..0ec1bff 100644 --- a/test/hackrf_lib_mock.c +++ b/test/hackrf_lib_mock.c @@ -40,7 +40,7 @@ static void* hackrf_worker(void* ctx) { hackrf_transfer transfer = { .rx_ctx = ctx, .device = NULL, - .buffer = hackrf_mock.buffer, + .buffer = (uint8_t *)hackrf_mock.buffer, .buffer_length = hackrf_mock.len}; hackrf_mock.callback(&transfer); hackrf_mock.buffer = NULL; @@ -64,7 +64,7 @@ const char* hackrf_error_name(enum hackrf_error errcode) { return "unknown"; } int hackrf_version_string_read(hackrf_device* device, char* version, uint8_t length) { - snprintf(version, length, "test\0"); + snprintf(version, length, "test"); return 0; } int hackrf_usb_api_version_read(hackrf_device* device, uint16_t* version) {