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.
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;
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;
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) {
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);
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]) {
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);
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;
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 {
/**
* 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)); \
\
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)); \
\
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); \
\
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); \
\
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) { \
\
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); \
\
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); \
\
// 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;
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;
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.
// 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);
}
}
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;
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;
}
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;
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;
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;
}
} // 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;
}
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;
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;
}
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.