From 8db2ee4260b4e2355c9ef7a15683644d80c5a2f9 Mon Sep 17 00:00:00 2001 From: Alexey Khromov Date: Sun, 23 Mar 2025 20:21:50 +0300 Subject: [PATCH] confread diag --- source/bforce/conf_get.c | 16 ++- source/bforce/nodelist.c | 14 ++- source/bforce/prot_binkp.c | 1 + source/include/confread.h | 234 ++++++++++++++++++------------------- 4 files changed, 139 insertions(+), 126 deletions(-) diff --git a/source/bforce/conf_get.c b/source/bforce/conf_get.c index 2974e1a..a41f3c2 100644 --- a/source/bforce/conf_get.c +++ b/source/bforce/conf_get.c @@ -19,11 +19,15 @@ s_cval_entry *conf_first(bforce_config_keyword keyword) { s_cval_entry *ptrl; + + DEB((D_CONFIG, "conf_first entry nr %d",(int16_t)keyword)); for( ptrl = bforce_config[keyword].data; ptrl; ptrl = ptrl->next ) - if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) + if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) { + DEB((D_CONFIG, "conf_first ptrl found")); return ptrl; - + } + DEB((D_CONFIG, "conf_first ptrl not found")); return NULL; } @@ -32,9 +36,11 @@ s_cval_entry *conf_next(s_cval_entry *ptrl) ASSERT(ptrl); for( ptrl = ptrl->next; ptrl; ptrl = ptrl->next ) - if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) + if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) { + DEB((D_CONFIG, "conf_next ptrl found")); return ptrl; - + } + DEB((D_CONFIG, "conf_next ptrl not found")); return NULL; } @@ -91,7 +97,7 @@ long conf_number(bforce_config_keyword keyword) s_override *conf_override(bforce_config_keyword keyword, s_faddr addr) { s_cval_entry *ptrl; - + DEB((D_CONFIG, "conf_override entry")); for( ptrl = conf_first(keyword); ptrl; ptrl = conf_next(ptrl) ) if( !ftn_addrcomp(ptrl->d.override.addr, addr) ) return &ptrl->d.override; diff --git a/source/bforce/nodelist.c b/source/bforce/nodelist.c index e686a1c..82c1853 100644 --- a/source/bforce/nodelist.c +++ b/source/bforce/nodelist.c @@ -56,14 +56,20 @@ int nodelist_checkflag(const char *nodeflags, const char *flag) const char *searchbase = nodeflags; char *q; - while( p = strstr(searchbase, flag) ) + DEB((D_NODELIST, "nodelist: checking flag \"%s\" in flags \"%s\"", flag, nodeflags)); + + while( p = strcasestr(searchbase, flag) ) // p - found flag { - if( p == searchbase || *(p-1) == ',' ) + if( (p == searchbase) || (p != searchbase && *(p-1) == ',') ) { - if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) ) + if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) ) { + DEB((D_NODELIST, "nodelist: found flag %s", flag)); return 0; - if( (strchrnul(p, ':') - p) == strlen(flag) ) + } + if( (strchrnul(p, ':') - p) == strlen(flag) ) { + DEB((D_NODELIST, "nodelist: found flag %s", flag)); return 0; + } } searchbase = p + 1; // avoid finding again the same diff --git a/source/bforce/prot_binkp.c b/source/bforce/prot_binkp.c index b8bf28d..eb5f138 100644 --- a/source/bforce/prot_binkp.c +++ b/source/bforce/prot_binkp.c @@ -721,6 +721,7 @@ case BPMSG_ADR: /* List of addresses */ for(i = 0; i < state.n_remoteaddr; i++) { ovr.sFlags = ""; override_get (&ovr, state.remoteaddrs[i].addr, 0); + DEB((D_24554, "got adr overrides")); if (nodelist_checkflag (ovr.sFlags, "NR")==0) { strcat (bstate->extracmd+1, " NR"); break; diff --git a/source/include/confread.h b/source/include/confread.h index 48457af..e99f360 100644 --- a/source/include/confread.h +++ b/source/include/confread.h @@ -141,8 +141,8 @@ typedef struct override { char *sPhone; char *sFlags; s_timevec worktime; - s_timevec freqtime; - char *run; + s_timevec freqtime; + char *run; struct override *hidden; /* Hidden lines list */ } s_override; @@ -159,130 +159,130 @@ typedef struct filebox { } s_filebox; typedef enum { - cf_address, - cf_amiga_outbound_directory, - cf_binkp_timeout, - cf_daemon_circle, - cf_daemon_circle_crash, - cf_daemon_circle_direct, - cf_daemon_circle_immed, - cf_daemon_circle_modem, - cf_daemon_circle_normal, - cf_daemon_circle_rescan, - cf_daemon_maxclients_modem, - cf_daemon_maxclients_tcpip, - cf_daemon_pid_file, - cf_delay_files_recv, - cf_delay_files_send, - cf_disable_aka_matching, - cf_domain, - cf_emsi_FR_time, - cf_emsi_OH_time, - cf_emsi_slave_sends_nak, - cf_emsi_send_tz, - cf_emsi_send_time, - cf_filebox, - cf_filebox_directory, - cf_flags, - cf_flo_translate, - cf_freq_alias_list, - cf_freq_dir_list, - cf_freq_ignore_masks, - cf_freq_limit_number, - cf_freq_limit_size, - cf_freq_limit_time, - cf_freq_min_speed, - cf_freq_srif_command, - cf_incnet_flag, - cf_incarc_flag, - cf_inctic_flag, - cf_incfile_flag, - cf_hide_our_aka, - cf_history_file, - cf_hydra_options, - cf_hydra_mincps_recv, - cf_hydra_mincps_send, - cf_hydra_tx_window, - cf_hydra_rx_window, - cf_inbound_directory, - cf_location, - cf_log_file, - cf_log_file_daemon, - cf_max_speed, - cf_maxtries, - cf_maxtries_nodial, - cf_maxtries_noansw, - cf_maxtries_noconn, - cf_maxtries_hshake, - cf_maxtries_sessions, - cf_min_cps_recv, - cf_min_cps_send, - cf_min_cps_time, - cf_min_free_space, - cf_min_speed_in, - cf_min_speed_out, - cf_mode_netmail, - cf_mode_arcmail, - cf_mode_request, - cf_mode_ticfile, - cf_mode_default, - cf_modem_can_send_break, - cf_modem_dial_prefix, - cf_modem_dial_suffix, - cf_modem_dial_response, - cf_modem_hangup_command, - cf_modem_port, - cf_modem_reset_command, - cf_modem_stat_command, - cf_nodelist, - cf_nodelist_directory, - cf_nodial_flag, - cf_override, - cf_options, - cf_outbound_directory, - cf_password, - cf_phone, - cf_phone_translate, - cf_proto_order, - cf_recode_file_in, - cf_recode_file_out, - cf_recode_intro_in, - cf_recv_buffer_size, - cf_rescan_delay, - cf_run_after_handshake, - cf_run_after_session, - cf_run_before_session, - cf_session_limit_in, - cf_session_limit_out, - cf_skip_files_recv, - cf_status_directory, - cf_system_name, - cf_sysop_name, - cf_uucp_lock_directory, - cf_wait_carrier_in, - cf_wait_carrier_out, - cf_zmodem_mincps_recv, - cf_zmodem_mincps_send, - cf_zmodem_send_dummy_pkt, - cf_zmodem_skip_by_pos, - cf_zmodem_start_block_size, - cf_zmodem_tx_window, - cf_nomail_flag, - cf_bind_ip, - cf_recieved_to_lower, + cf_address, // 0 + cf_amiga_outbound_directory, // 1 + cf_binkp_timeout, // 2 + cf_daemon_circle, // 3 + cf_daemon_circle_crash, // 4 + cf_daemon_circle_direct, // 5 + cf_daemon_circle_immed, // 6 + cf_daemon_circle_modem, // 7 + cf_daemon_circle_normal, // 8 + cf_daemon_circle_rescan, // 9 + cf_daemon_maxclients_modem, // 10 + cf_daemon_maxclients_tcpip, // 11 + cf_daemon_pid_file, // 12 + cf_delay_files_recv, // 13 + cf_delay_files_send, // 14 + cf_disable_aka_matching, // 15 + cf_domain, // 16 + cf_emsi_FR_time, // 17 + cf_emsi_OH_time, // 18 + cf_emsi_slave_sends_nak, // 19 + cf_emsi_send_tz, // 20 + cf_emsi_send_time, // 21 + cf_filebox, // 22 + cf_filebox_directory, // 23 + cf_flags, // 24 + cf_flo_translate, // 25 + cf_freq_alias_list, // 26 + cf_freq_dir_list, // 27 + cf_freq_ignore_masks, // 28 + cf_freq_limit_number, // 29 + cf_freq_limit_size, // 30 + cf_freq_limit_time, // 31 + cf_freq_min_speed, // 32 + cf_freq_srif_command, // 33 + cf_incnet_flag, // 34 + cf_incarc_flag, // 35 + cf_inctic_flag, // 36 + cf_incfile_flag, // 37 + cf_hide_our_aka, // 38 + cf_history_file, // 39 + cf_hydra_options, // 40 + cf_hydra_mincps_recv, // 41 + cf_hydra_mincps_send, // 42 + cf_hydra_tx_window, // 43 + cf_hydra_rx_window, // 44 + cf_inbound_directory, // 45 + cf_location, // 46 + cf_log_file, // 47 + cf_log_file_daemon, // 48 + cf_max_speed, // 49 + cf_maxtries, // 50 + cf_maxtries_nodial, // 51 + cf_maxtries_noansw, // 52 + cf_maxtries_noconn, // 53 + cf_maxtries_hshake, // 54 + cf_maxtries_sessions, // 55 + cf_min_cps_recv, // 56 + cf_min_cps_send, // 57 + cf_min_cps_time, // 58 + cf_min_free_space, // 59 + cf_min_speed_in, // 60 + cf_min_speed_out, // 61 + cf_mode_netmail, // 62 + cf_mode_arcmail, // 63 + cf_mode_request, // 64 + cf_mode_ticfile, // 65 + cf_mode_default, // 66 + cf_modem_can_send_break, // 67 + cf_modem_dial_prefix, // 68 + cf_modem_dial_suffix, // 69 + cf_modem_dial_response, // 70 + cf_modem_hangup_command, // 71 + cf_modem_port, // 72 + cf_modem_reset_command, // 73 + cf_modem_stat_command, // 74 + cf_nodelist, // 75 + cf_nodelist_directory, // 76 + cf_nodial_flag, // 77 + cf_override, // 78 + cf_options, // 79 + cf_outbound_directory, // 80 + cf_password, // 81 + cf_phone, // 82 + cf_phone_translate, // 83 + cf_proto_order, // 84 + cf_recode_file_in, // 85 + cf_recode_file_out, // 86 + cf_recode_intro_in, // 87 + cf_recv_buffer_size, // 88 + cf_rescan_delay, // 89 + cf_run_after_handshake, // 90 + cf_run_after_session, // 91 + cf_run_before_session, // 92 + cf_session_limit_in, // 93 + cf_session_limit_out, // 94 + cf_skip_files_recv, // 95 + cf_status_directory, // 96 + cf_system_name, // 97 + cf_sysop_name, // 98 + cf_uucp_lock_directory, // 99 + cf_wait_carrier_in, // 100 + cf_wait_carrier_out, // 101 + cf_zmodem_mincps_recv, // 102 + cf_zmodem_mincps_send, // 103 + cf_zmodem_send_dummy_pkt, // 104 + cf_zmodem_skip_by_pos, // 105 + cf_zmodem_start_block_size, // 106 + cf_zmodem_tx_window, // 107 + cf_nomail_flag, // 108 + cf_bind_ip, // 109 + cf_recieved_to_lower, // 110 #ifdef USE_SYSLOG cf_syslog_facility, #endif #ifdef DEBUG - cf_debug_file, - cf_debug_level, + cf_debug_file, // 111 + cf_debug_level, // 112 #endif - cf_split_inbound, + cf_split_inbound, // 113 #ifdef NETSPOOL cf_netspool_host, cf_netspool_port, #endif - cf_fidodnszone, + cf_fidodnszone, // 114 BFORCE_NUMBER_OF_KEYWORDS } bforce_config_keyword;