From d508ffc81b0bd0cdc34029fe88b8d38faa5416d6 Mon Sep 17 00:00:00 2001 From: Max <51083570+DRdrProfessor@users.noreply.github.com> Date: Wed, 14 Dec 2022 22:28:52 +0100 Subject: [PATCH] Small fixes. --- src/exp_list.c | 2 +- src/main.c | 25 ++++++++++++++++--------- src/sockets/client.c | 17 +++++++++++++++-- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/exp_list.c b/src/exp_list.c index d77981c..c754be8 100644 --- a/src/exp_list.c +++ b/src/exp_list.c @@ -46,7 +46,7 @@ void print_list_items() { for (int i = 0; i < list_index_count; i++) { - PRINT_LINE("%i. %s", i, list[i].name); + PRINT_LINE("%i. [%s]", i, list[i].name); } } struct exp_data* get_from_list(int index) diff --git a/src/main.c b/src/main.c index df9baf1..b8e3698 100644 --- a/src/main.c +++ b/src/main.c @@ -8,18 +8,25 @@ int checkarg(int argc, char* argv[]); int handleoptions(); -static void sig_handler(); +void app_cleanup(); int main(int argc, char *argv[]) { + signal(SIGINT, app_cleanup); list_add("Socket server", "sock:server", start_server); list_add("Socket client", "sock:client", clientstart); + int result; + printf(" _____ \n / ____| \n | | _____ ___ __ \n | | / _ \\ \\/ / '_ \\ \n | |___| __/> <| |_) |\n \\_____\\___/_/\\_\\ .__/ \n | | \n |_| \n"); - signal(SIGINT, sig_handler); - int argresult = checkarg(argc, argv); - if (argresult == 0) // If checkarg returns 0 that means it succesfully handled the argruments. - return argresult; - return handleoptions(); // If the app does not get args we will display a small options menu. + + // Check for argruments and if we can use them. + result = checkarg(argc, argv); + if (result == 0) + return result; + // If the app does not get args we will display a small options menu. + result = handleoptions(); + app_cleanup(); + return result; } int checkarg(int argc, char* argv[]) { @@ -56,13 +63,13 @@ int handleoptions() return -1; } - PRINT_LINE("Option: %s choosen", data->name); + PRINT_LINE("Option: [%s] chosen", data->name); return data->func_ptr != NULL ? data->func_ptr(NULL) : -1; } -// Handle the signal to exit the app! -static void sig_handler() +// Clean and exit the app. +void app_cleanup() { clear_list(); // Clear the exp list. exit(0); diff --git a/src/sockets/client.c b/src/sockets/client.c index 47edd56..21ee25a 100644 --- a/src/sockets/client.c +++ b/src/sockets/client.c @@ -9,6 +9,8 @@ #include "sockets.h" +void print_help(); + int clientstart() { int client_sockfd = socket(AF_INET, SOCK_STREAM, 0); @@ -48,7 +50,18 @@ int clientstart() for (;;) { char c = getchar(); - if (c == 'q') - return 0; + switch (c) + { + case 'q': + return 0; + case 'h': + print_help(); + break; + } } } +void print_help() +{ + PRINT_LINE("Usage:"); + PRINT_LINE("send "); +}