From 4b0692f1d2c1cf11c151997d268ed8b487e03479 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Wed, 30 Apr 2025 21:50:28 -0500 Subject: [PATCH] Update: Some macros and documentation. I am starting to get back to working on TacocaT. This addresses a single `@todo` regarding adding documentation and also renames several of the related macros. --- .../c/program/kevux/tools/tacocat/main/common.c | 26 ++++++------- .../kevux/tools/tacocat/main/common/define.h | 44 ++++++++++++---------- .../c/program/kevux/tools/tacocat/main/receive.c | 22 +++++------ sources/c/program/kevux/tools/tacocat/main/send.c | 20 +++++----- 4 files changed, 59 insertions(+), 53 deletions(-) diff --git a/sources/c/program/kevux/tools/tacocat/main/common.c b/sources/c/program/kevux/tools/tacocat/main/common.c index af50bb5..b604762 100644 --- a/sources/c/program/kevux/tools/tacocat/main/common.c +++ b/sources/c/program/kevux/tools/tacocat/main/common.c @@ -282,10 +282,10 @@ extern "C" { total = main->program.parameters.array[parameters[i]].values.used / 2; main->setting.state.status = f_memory_array_increase_by(total, sizeof(f_poll_t), (void **) &polls[i]->array, &polls[i]->used, &polls[i]->size); - macro_setting_load_handle_send_receive_error_continue_1(f_memory_array_increase_by); + macro_kt_tacocat_handle_load_send_receive_error_continue_1(f_memory_array_increase_by); main->setting.state.status = f_memory_array_increase_by(total, sizeof(kt_tacocat_socket_set_t), (void **) &sets[i]->array, &sets[i]->used, &sets[i]->size); - macro_setting_load_handle_send_receive_error_continue_1(f_memory_array_increase_by); + macro_kt_tacocat_handle_load_send_receive_error_continue_1(f_memory_array_increase_by); if (F_status_is_error_not(main->setting.state.status)) { main->setting.state.status = F_okay; @@ -332,18 +332,18 @@ extern "C" { main->setting.state.status = f_memory_array_increase_by(main->program.parameters.arguments.array[index].used + 1, sizeof(f_char_t), (void **) &sets[i]->array[j].network.string, &sets[i]->array[j].network.used, &sets[i]->array[j].network.size); - macro_setting_load_handle_send_receive_error_continue_2(f_memory_array_increase_by); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_memory_array_increase_by); main->setting.state.status = f_string_dynamic_append_nulless(main->program.parameters.arguments.array[index], &sets[i]->array[j].network); - macro_setting_load_handle_send_receive_error_continue_2(f_string_dynamic_append_nulless); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_string_dynamic_append_nulless); sets[i]->array[j].network.string[sets[i]->array[j].network.used] = 0; if (is_receive[i]) { main->setting.state.status = f_file_exists(sets[i]->array[j].network, F_true); - macro_setting_load_handle_send_receive_error_continue_2(f_string_dynamic_append_nulless); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_string_dynamic_append_nulless); } sets[i]->array[j].network.string[sets[i]->array[j].network.used] = 0; @@ -368,7 +368,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { // @todo print error message about bad port number or similar. - macro_setting_load_handle_send_receive_error_continue_2(f_network_is_ip_address); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_network_is_ip_address); } if (main->setting.state.status == F_network_version_four) { @@ -416,17 +416,17 @@ extern "C" { if (host.h_addrtype) { main->setting.state.status = f_string_dynamic_append(address, &sets[i]->array[j].network); - macro_setting_load_handle_send_receive_error_continue_2(f_string_dynamic_append); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_string_dynamic_append); main->setting.state.status = f_network_from_ip_string(address, &family); - macro_setting_load_handle_send_receive_error_continue_2(f_network_from_ip_string); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_network_from_ip_string); } else { main->setting.state.status = f_network_from_ip_name(address, &host); // @todo provide network-specific error messages. - macro_setting_load_handle_send_receive_error_continue_2(f_network_from_ip_name); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_network_from_ip_name); if (main->setting.state.status == F_data_not || !host.h_addr_list || !host.h_addr_list[0]) { main->setting.state.status = F_status_set_error(F_parameter); @@ -445,7 +445,7 @@ extern "C" { main->setting.state.status = f_memory_array_increase_by(INET6_ADDRSTRLEN + 1, sizeof(f_char_t), (void **) &sets[i]->array[j].network.string, &sets[i]->array[j].network.used, &sets[i]->array[j].network.size); - macro_setting_load_handle_send_receive_error_continue_2(f_memory_array_increase_by); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_memory_array_increase_by); // Randomly select one of the addresses when there are more than one. if (host.h_addr_list[1]) { @@ -463,7 +463,7 @@ extern "C" { main->setting.state.status = f_memory_array_increase_by(INET6_ADDRSTRLEN + 1, sizeof(f_char_t), (void **) &sets[i]->array[j].network.string, &sets[i]->array[j].network.used, &sets[i]->array[j].network.size); - macro_setting_load_handle_send_receive_error_continue_2(f_memory_array_increase_by); + macro_kt_tacocat_handle_load_send_receive_error_continue_2(f_memory_array_increase_by); main->setting.state.status = f_network_to_ip_string(family, &sets[i]->array[j].network); @@ -543,7 +543,7 @@ extern "C" { main->setting.state.status = f_file_open(sets[i]->array[j].name, file_modes[i], &sets[i]->array[j].file); if (F_status_is_error(main->setting.state.status)) { - macro_setting_load_handle_send_receive_error_file_continue_1(f_file_open, sets[i]->array[j].name, f_file_operation_open_s, fll_error_file_type_file_e); + macro_kt_tacocat_handle_load_send_receive_error_file_continue_1(f_file_open, sets[i]->array[j].name, f_file_operation_open_s, fll_error_file_type_file_e); if (F_status_is_error_not(failed)) { failed = main->setting.state.status; @@ -554,7 +554,7 @@ extern "C" { else { main->setting.state.status = f_file_close(&sets[i]->array[j].file); - macro_setting_load_handle_send_receive_error_file_continue_1(f_file_open, sets[i]->array[j].name, f_file_operation_close_s, fll_error_file_type_file_e); + macro_kt_tacocat_handle_load_send_receive_error_file_continue_1(f_file_open, sets[i]->array[j].name, f_file_operation_close_s, fll_error_file_type_file_e); } } else { diff --git a/sources/c/program/kevux/tools/tacocat/main/common/define.h b/sources/c/program/kevux/tools/tacocat/main/common/define.h index f65372b..4fb39ef 100644 --- a/sources/c/program/kevux/tools/tacocat/main/common/define.h +++ b/sources/c/program/kevux/tools/tacocat/main/common/define.h @@ -108,27 +108,33 @@ extern "C" { /** * The program macros. * - * macro_setting_load_handle_send_receive_error_continue_1: - * Intended to be used to simplify the code in kt_tacocat_setting_load_send_receive() and make it more readable. + * These macros are intended to simplify repetitive parts of the code to improve readability. + * + * macro_kt_tacocat_handle_send_process_error_exit_1: + * Similar to macro_kt_tacocat_handle_receive_process_error_exit_1() but calls kt_tacocat_print_error_on_packet_invalid(). + * + * macro_kt_tacocat_handle_load_send_receive_error_continue_1: + * For use in kt_tacocat_setting_load_send_receive(). * This is for the basic error that calls kt_tacocat_print_error() when printing. * - * macro_setting_load_handle_send_receive_error_file_continue_1: - * The same as macro_setting_load_handle_send_receive_error_continue_1() but intended for file errors. + * macro_kt_tacocat_handle_load_send_receive_error_continue_2: + * The same as macro_kt_tacocat_handle_load_send_receive_error_continue_2(), but it also assigned the status to the set at [i][j]. * - * macro_kt_receive_process_handle_error_exit_1: - * Intended to be used for handling an error during the receive process while not processing within step kt_tacocat_socket_step_receive_control_e. - * The parameter id_data and is set to 0 to disable and is otherwise an address pointer. + * macro_kt_tacocat_handle_load_send_receive_error_file_continue_1: + * The same as macro_kt_tacocat_handle_load_send_receive_error_continue_1() but is for file errors. * - * macro_kt_receive_process_begin_handle_error_exit_1: - * Intended to be used for handling an error during the receive process while processing within step kt_tacocat_socket_step_receive_control_e. + * macro_kt_tacocat_handle_receive_process_begin_error_exit_1: + * The same as macro_kt_tacocat_handle_receive_process_error_exit_1() but is for file errors. * - * macro_kt_receive_process_invalid_packet_exit_1: - * Similar to macro_kt_receive_process_handle_error_exit_1() but calls kt_tacocat_print_error_on_packet_invalid(). + * macro_kt_tacocat_handle_receive_process_error_exit_1: + * For use in kt_tacocat_setting_load_send_receive() for the receive process while not processing within step kt_tacocat_socket_step_receive_control_e. + * The parameter id_data and is set to 0 to disable and is otherwise an address pointer. * - * @todo document all macros. + * macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1: + * Similar to macro_kt_tacocat_handle_receive_process_error_exit_1() but calls kt_tacocat_print_error_on_packet_invalid(). */ #ifndef _di_kt_tacocat_macros_d_ - #define macro_setting_load_handle_send_receive_error_continue_1(method) \ + #define macro_kt_tacocat_handle_load_send_receive_error_continue_1(method) \ if (F_status_is_error(main->setting.state.status)) { \ kt_tacocat_print_error(&main->program.error, macro_kt_tacocat_f(method)); \ \ @@ -139,7 +145,7 @@ extern "C" { continue; \ } - #define macro_setting_load_handle_send_receive_error_continue_2(method) \ + #define macro_kt_tacocat_handle_load_send_receive_error_continue_2(method) \ if (F_status_is_error(main->setting.state.status)) { \ kt_tacocat_print_error(&main->program.error, macro_kt_tacocat_f(method)); \ \ @@ -152,7 +158,7 @@ extern "C" { continue; \ } - #define macro_setting_load_handle_send_receive_error_file_continue_1(method, name, operation, type) \ + #define macro_kt_tacocat_handle_load_send_receive_error_file_continue_1(method, name, operation, type) \ if (F_status_is_error(main->setting.state.status)) { \ kt_tacocat_print_error_file(&main->program.error, macro_kt_tacocat_f(method), name, operation, type); \ \ @@ -165,7 +171,7 @@ extern "C" { continue; \ } - #define macro_kt_receive_process_handle_error_exit_1(main, method, network, status, name, step, id_data) \ + #define macro_kt_tacocat_handle_receive_process_error_exit_1(main, method, network, status, name, step, id_data) \ if (F_status_is_error(status)) { \ kt_tacocat_print_error_on(&main->program.error, macro_kt_tacocat_f(method), kt_tacocat_receive_s, network, status, name); \ \ @@ -178,7 +184,7 @@ extern "C" { return F_done_not; \ } - #define macro_kt_receive_process_invalid_packet_exit_1(main, network, name, step, id_data) \ + #define macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1(main, network, name, step, id_data) \ kt_tacocat_print_error_on_packet_invalid(&main->program.error, kt_tacocat_receive_s, network, name); \ \ if (id_data) { \ @@ -189,7 +195,7 @@ extern "C" { \ return F_done_not; - #define macro_kt_receive_process_begin_handle_error_exit_1(main, method, network, status, name, step) \ + #define macro_kt_tacocat_handle_receive_process_begin_error_exit_1(main, method, network, status, name, step) \ if (F_status_is_error(status)) { \ kt_tacocat_print_error_on(&main->program.error, macro_kt_tacocat_f(method), kt_tacocat_receive_s, network, status, name); \ \ @@ -198,7 +204,7 @@ extern "C" { return; \ } - #define macro_kt_send_process_handle_error_exit_1(main, method, on, network, status, name, step) \ + #define macro_kt_tacocat_handle_send_process_error_exit_1(main, method, on, network, status, name, step) \ if (F_status_is_error(status)) { \ kt_tacocat_print_error_on(&main->program.error, macro_kt_tacocat_f(method), on, network, status, name); \ \ diff --git a/sources/c/program/kevux/tools/tacocat/main/receive.c b/sources/c/program/kevux/tools/tacocat/main/receive.c index ad58d5c..1227ac5 100644 --- a/sources/c/program/kevux/tools/tacocat/main/receive.c +++ b/sources/c/program/kevux/tools/tacocat/main/receive.c @@ -153,7 +153,7 @@ extern "C" { // Make sure the buffer is large enough for payload processing block reads. set->status = f_memory_array_increase_by(set->socket.size_read, sizeof(f_char_t), (void **) &set->buffer.string, &set->buffer.used, &set->buffer.size); - macro_kt_receive_process_handle_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step, set->socket.id_data); set->retry = 0; set->buffer.used = 0; @@ -164,7 +164,7 @@ extern "C" { size_t length_read = 0; set->status = f_socket_read_stream(&set->socket, 0, (void *) (set->buffer.string + set->buffer.used), &length_read); - macro_kt_receive_process_handle_error_exit_1(main, f_socket_read_stream, set->network, set->status, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_error_exit_1(main, f_socket_read_stream, set->network, set->status, set->name, set->step, set->socket.id_data); if (length_read) { set->retry = 0; @@ -269,7 +269,7 @@ extern "C" { if (set->step == kt_tacocat_socket_step_receive_check_e) { if (set->parts.used) { if (set->abstruses.array[1].value.type != f_abstruse_unsigned_e) { - macro_kt_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); } // @todo determine type of packet and process. @@ -278,28 +278,28 @@ extern "C" { // The packet should only be a 'file' type for the first packet. if (set->abstruses.array[1].value.type != f_abstruse_unsigned_e || set->abstruses.array[1].value.is.a_unsigned != kt_tacocat_packet_type_file_d) { - macro_kt_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); } if (set->abstruses.array[4].value.type == f_abstruse_unsigned_e) { set->parts.used = 0; set->status = f_memory_array_increase_by(set->abstruses.array[4].value.is.a_unsigned, sizeof(f_number_unsigned_t), (void **) &set->parts.array, &set->parts.used, &set->parts.size); - macro_kt_receive_process_handle_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step, set->socket.id_data); memset(set->parts.array, 0, sizeof(f_number_unsigned_t)); set->parts.used = set->abstruses.array[4].value.is.a_unsigned; } else { - macro_kt_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); } if (set->abstruses.array[3].value.type == f_abstruse_unsigned_e) { set->part = set->abstruses.array[3].value.is.a_unsigned; } else { - macro_kt_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); + macro_kt_tacocat_handle_receive_process_invalid_packet_exit_1(main, set->network, set->name, set->step, set->socket.id_data); } } @@ -378,10 +378,10 @@ extern "C" { set->status = f_socket_accept(&set->socket); // The socket failed to accept and so there is no data socket id to close. - macro_kt_receive_process_begin_handle_error_exit_1(main, f_socket_accept, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_receive_process_begin_error_exit_1(main, f_socket_accept, set->network, set->status, set->name, set->step); set->status = f_memory_array_increase_by(kt_tacocat_packet_peek_d + 1, sizeof(f_char_t), (void **) &set->buffer.string, &set->buffer.used, &set->buffer.size); - macro_kt_receive_process_begin_handle_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_receive_process_begin_error_exit_1(main, f_memory_array_increase_by, set->network, set->status, set->name, set->step); set->socket.size_read = kt_tacocat_packet_peek_d; @@ -389,7 +389,7 @@ extern "C" { set->socket.size_read = size_read; - macro_kt_receive_process_begin_handle_error_exit_1(main, f_socket_read_stream, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_receive_process_begin_error_exit_1(main, f_socket_read_stream, set->network, set->status, set->name, set->step); set->buffer.used += length_read; @@ -433,7 +433,7 @@ extern "C" { } set->status = f_fss_simple_packet_decode_range(set->buffer, &set->packet); - macro_kt_receive_process_begin_handle_error_exit_1(main, f_fss_simple_packet_decode_range, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_receive_process_begin_error_exit_1(main, f_fss_simple_packet_decode_range, set->network, set->status, set->name, set->step); if (set->status == F_packet_too_small || set->packet.size < kt_tacocat_packet_minimum_d || set->packet.size > main->setting.max_buffer) { set->buffer.used = 0; diff --git a/sources/c/program/kevux/tools/tacocat/main/send.c b/sources/c/program/kevux/tools/tacocat/main/send.c index ce6f2bd..cdb602e 100644 --- a/sources/c/program/kevux/tools/tacocat/main/send.c +++ b/sources/c/program/kevux/tools/tacocat/main/send.c @@ -97,7 +97,7 @@ extern "C" { kt_tacocat_send_process_initialize(main, set); if (F_status_is_error(set->status)) { - macro_kt_send_process_handle_error_exit_1(main, kt_tacocat_send_process_initialize, kt_tacocat_send_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, kt_tacocat_send_process_initialize, kt_tacocat_send_s, set->network, set->status, set->name, set->step); } set->step = kt_tacocat_socket_step_send_size_e; @@ -202,13 +202,13 @@ extern "C" { set->status = state_local.status; - macro_kt_send_process_handle_error_exit_1(main, fl_fss_payload_header_map, kt_tacocat_send_build_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, fl_fss_payload_header_map, kt_tacocat_send_build_s, set->network, set->status, set->name, set->step); set->write_state.cache->used = 0; set->status = f_random_array_shuffle(0, set->headers.used, sizeof(f_string_map_t), set->write_state.cache, (void *) set->headers.array); - macro_kt_send_process_handle_error_exit_1(main, f_random_array_shuffle, kt_tacocat_send_build_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_random_array_shuffle, kt_tacocat_send_build_s, set->network, set->status, set->name, set->step); set->step = kt_tacocat_socket_step_send_header_e; } @@ -260,7 +260,7 @@ extern "C" { } // for } - macro_kt_send_process_handle_error_exit_1(main, f_string_dynamic_append_nulless, kt_tacocat_send_combine_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_string_dynamic_append_nulless, kt_tacocat_send_combine_s, set->network, set->status, set->name, set->step); set->step = kt_tacocat_socket_step_send_file_e; } @@ -274,21 +274,21 @@ extern "C" { set->status = f_string_dynamic_append(f_fss_payload_object_end_s, &set->buffer); } - macro_kt_send_process_handle_error_exit_1(main, f_string_dynamic_append, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_string_dynamic_append, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); // Always reset the seek position in case a retry happened after the file block is read. { off_t seeked = 0; set->status = f_file_seek(set->file, SEEK_SET, set->size_done, &seeked); - macro_kt_send_process_handle_error_exit_1(main, f_file_seek, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_file_seek, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); } set->status = f_file_read_block(set->file, &set->buffer); - macro_kt_send_process_handle_error_exit_1(main, f_file_read_block, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_file_read_block, kt_tacocat_send_file_s, set->network, set->status, set->name, set->step); set->status = f_string_dynamic_terminate_after(&set->buffer); - macro_kt_send_process_handle_error_exit_1(main, f_string_dynamic_terminate_after, kt_tacocat_send_combine_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_string_dynamic_terminate_after, kt_tacocat_send_combine_s, set->network, set->status, set->name, set->step); set->retry = 0; set->step = kt_tacocat_socket_step_send_check_e; @@ -313,7 +313,7 @@ extern "C" { set->buffer.used = original; - macro_kt_send_process_handle_error_exit_1(main, f_fss_simple_packet_encode, kt_tacocat_send_payload_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_fss_simple_packet_encode, kt_tacocat_send_payload_s, set->network, set->status, set->name, set->step); set->step = kt_tacocat_socket_step_send_packet_e; } @@ -330,7 +330,7 @@ extern "C" { set->socket.size_write = original; - macro_kt_send_process_handle_error_exit_1(main, f_socket_write_stream, kt_tacocat_send_payload_s, set->network, set->status, set->name, set->step); + macro_kt_tacocat_handle_send_process_error_exit_1(main, f_socket_write_stream, kt_tacocat_send_payload_s, set->network, set->status, set->name, set->step); } // @todo handle case when written < set->buffer.used, of which each pass. The entire buffer must be sent. May need another variable for say, set->size_process. -- 1.8.3.1