confread diag

This commit is contained in:
Alexey Khromov 2025-03-23 20:21:50 +03:00
parent 25081b1bae
commit 8db2ee4260
4 changed files with 139 additions and 126 deletions

View File

@ -20,10 +20,14 @@ s_cval_entry *conf_first(bforce_config_keyword keyword)
{ {
s_cval_entry *ptrl; s_cval_entry *ptrl;
for( ptrl = bforce_config[keyword].data; ptrl; ptrl = ptrl->next ) DEB((D_CONFIG, "conf_first entry nr %d",(int16_t)keyword));
if( !ptrl->expr.expr || eventexpr(&ptrl->expr) )
return ptrl;
for( ptrl = bforce_config[keyword].data; ptrl; ptrl = ptrl->next )
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; return NULL;
} }
@ -32,9 +36,11 @@ s_cval_entry *conf_next(s_cval_entry *ptrl)
ASSERT(ptrl); ASSERT(ptrl);
for( ptrl = ptrl->next; ptrl; ptrl = ptrl->next ) 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; return ptrl;
}
DEB((D_CONFIG, "conf_next ptrl not found"));
return NULL; 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_override *conf_override(bforce_config_keyword keyword, s_faddr addr)
{ {
s_cval_entry *ptrl; s_cval_entry *ptrl;
DEB((D_CONFIG, "conf_override entry"));
for( ptrl = conf_first(keyword); ptrl; ptrl = conf_next(ptrl) ) for( ptrl = conf_first(keyword); ptrl; ptrl = conf_next(ptrl) )
if( !ftn_addrcomp(ptrl->d.override.addr, addr) ) if( !ftn_addrcomp(ptrl->d.override.addr, addr) )
return &ptrl->d.override; return &ptrl->d.override;

View File

@ -56,14 +56,20 @@ int nodelist_checkflag(const char *nodeflags, const char *flag)
const char *searchbase = nodeflags; const char *searchbase = nodeflags;
char *q; 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; return 0;
if( (strchrnul(p, ':') - p) == strlen(flag) ) }
if( (strchrnul(p, ':') - p) == strlen(flag) ) {
DEB((D_NODELIST, "nodelist: found flag %s", flag));
return 0; return 0;
}
} }
searchbase = p + 1; // avoid finding again the same searchbase = p + 1; // avoid finding again the same

View File

@ -721,6 +721,7 @@ case BPMSG_ADR: /* List of addresses */
for(i = 0; i < state.n_remoteaddr; i++) { for(i = 0; i < state.n_remoteaddr; i++) {
ovr.sFlags = ""; ovr.sFlags = "";
override_get (&ovr, state.remoteaddrs[i].addr, 0); override_get (&ovr, state.remoteaddrs[i].addr, 0);
DEB((D_24554, "got adr overrides"));
if (nodelist_checkflag (ovr.sFlags, "NR")==0) { if (nodelist_checkflag (ovr.sFlags, "NR")==0) {
strcat (bstate->extracmd+1, " NR"); strcat (bstate->extracmd+1, " NR");
break; break;

View File

@ -141,8 +141,8 @@ typedef struct override {
char *sPhone; char *sPhone;
char *sFlags; char *sFlags;
s_timevec worktime; s_timevec worktime;
s_timevec freqtime; s_timevec freqtime;
char *run; char *run;
struct override *hidden; /* Hidden lines list */ struct override *hidden; /* Hidden lines list */
} s_override; } s_override;
@ -159,130 +159,130 @@ typedef struct filebox {
} s_filebox; } s_filebox;
typedef enum { typedef enum {
cf_address, cf_address, // 0
cf_amiga_outbound_directory, cf_amiga_outbound_directory, // 1
cf_binkp_timeout, cf_binkp_timeout, // 2
cf_daemon_circle, cf_daemon_circle, // 3
cf_daemon_circle_crash, cf_daemon_circle_crash, // 4
cf_daemon_circle_direct, cf_daemon_circle_direct, // 5
cf_daemon_circle_immed, cf_daemon_circle_immed, // 6
cf_daemon_circle_modem, cf_daemon_circle_modem, // 7
cf_daemon_circle_normal, cf_daemon_circle_normal, // 8
cf_daemon_circle_rescan, cf_daemon_circle_rescan, // 9
cf_daemon_maxclients_modem, cf_daemon_maxclients_modem, // 10
cf_daemon_maxclients_tcpip, cf_daemon_maxclients_tcpip, // 11
cf_daemon_pid_file, cf_daemon_pid_file, // 12
cf_delay_files_recv, cf_delay_files_recv, // 13
cf_delay_files_send, cf_delay_files_send, // 14
cf_disable_aka_matching, cf_disable_aka_matching, // 15
cf_domain, cf_domain, // 16
cf_emsi_FR_time, cf_emsi_FR_time, // 17
cf_emsi_OH_time, cf_emsi_OH_time, // 18
cf_emsi_slave_sends_nak, cf_emsi_slave_sends_nak, // 19
cf_emsi_send_tz, cf_emsi_send_tz, // 20
cf_emsi_send_time, cf_emsi_send_time, // 21
cf_filebox, cf_filebox, // 22
cf_filebox_directory, cf_filebox_directory, // 23
cf_flags, cf_flags, // 24
cf_flo_translate, cf_flo_translate, // 25
cf_freq_alias_list, cf_freq_alias_list, // 26
cf_freq_dir_list, cf_freq_dir_list, // 27
cf_freq_ignore_masks, cf_freq_ignore_masks, // 28
cf_freq_limit_number, cf_freq_limit_number, // 29
cf_freq_limit_size, cf_freq_limit_size, // 30
cf_freq_limit_time, cf_freq_limit_time, // 31
cf_freq_min_speed, cf_freq_min_speed, // 32
cf_freq_srif_command, cf_freq_srif_command, // 33
cf_incnet_flag, cf_incnet_flag, // 34
cf_incarc_flag, cf_incarc_flag, // 35
cf_inctic_flag, cf_inctic_flag, // 36
cf_incfile_flag, cf_incfile_flag, // 37
cf_hide_our_aka, cf_hide_our_aka, // 38
cf_history_file, cf_history_file, // 39
cf_hydra_options, cf_hydra_options, // 40
cf_hydra_mincps_recv, cf_hydra_mincps_recv, // 41
cf_hydra_mincps_send, cf_hydra_mincps_send, // 42
cf_hydra_tx_window, cf_hydra_tx_window, // 43
cf_hydra_rx_window, cf_hydra_rx_window, // 44
cf_inbound_directory, cf_inbound_directory, // 45
cf_location, cf_location, // 46
cf_log_file, cf_log_file, // 47
cf_log_file_daemon, cf_log_file_daemon, // 48
cf_max_speed, cf_max_speed, // 49
cf_maxtries, cf_maxtries, // 50
cf_maxtries_nodial, cf_maxtries_nodial, // 51
cf_maxtries_noansw, cf_maxtries_noansw, // 52
cf_maxtries_noconn, cf_maxtries_noconn, // 53
cf_maxtries_hshake, cf_maxtries_hshake, // 54
cf_maxtries_sessions, cf_maxtries_sessions, // 55
cf_min_cps_recv, cf_min_cps_recv, // 56
cf_min_cps_send, cf_min_cps_send, // 57
cf_min_cps_time, cf_min_cps_time, // 58
cf_min_free_space, cf_min_free_space, // 59
cf_min_speed_in, cf_min_speed_in, // 60
cf_min_speed_out, cf_min_speed_out, // 61
cf_mode_netmail, cf_mode_netmail, // 62
cf_mode_arcmail, cf_mode_arcmail, // 63
cf_mode_request, cf_mode_request, // 64
cf_mode_ticfile, cf_mode_ticfile, // 65
cf_mode_default, cf_mode_default, // 66
cf_modem_can_send_break, cf_modem_can_send_break, // 67
cf_modem_dial_prefix, cf_modem_dial_prefix, // 68
cf_modem_dial_suffix, cf_modem_dial_suffix, // 69
cf_modem_dial_response, cf_modem_dial_response, // 70
cf_modem_hangup_command, cf_modem_hangup_command, // 71
cf_modem_port, cf_modem_port, // 72
cf_modem_reset_command, cf_modem_reset_command, // 73
cf_modem_stat_command, cf_modem_stat_command, // 74
cf_nodelist, cf_nodelist, // 75
cf_nodelist_directory, cf_nodelist_directory, // 76
cf_nodial_flag, cf_nodial_flag, // 77
cf_override, cf_override, // 78
cf_options, cf_options, // 79
cf_outbound_directory, cf_outbound_directory, // 80
cf_password, cf_password, // 81
cf_phone, cf_phone, // 82
cf_phone_translate, cf_phone_translate, // 83
cf_proto_order, cf_proto_order, // 84
cf_recode_file_in, cf_recode_file_in, // 85
cf_recode_file_out, cf_recode_file_out, // 86
cf_recode_intro_in, cf_recode_intro_in, // 87
cf_recv_buffer_size, cf_recv_buffer_size, // 88
cf_rescan_delay, cf_rescan_delay, // 89
cf_run_after_handshake, cf_run_after_handshake, // 90
cf_run_after_session, cf_run_after_session, // 91
cf_run_before_session, cf_run_before_session, // 92
cf_session_limit_in, cf_session_limit_in, // 93
cf_session_limit_out, cf_session_limit_out, // 94
cf_skip_files_recv, cf_skip_files_recv, // 95
cf_status_directory, cf_status_directory, // 96
cf_system_name, cf_system_name, // 97
cf_sysop_name, cf_sysop_name, // 98
cf_uucp_lock_directory, cf_uucp_lock_directory, // 99
cf_wait_carrier_in, cf_wait_carrier_in, // 100
cf_wait_carrier_out, cf_wait_carrier_out, // 101
cf_zmodem_mincps_recv, cf_zmodem_mincps_recv, // 102
cf_zmodem_mincps_send, cf_zmodem_mincps_send, // 103
cf_zmodem_send_dummy_pkt, cf_zmodem_send_dummy_pkt, // 104
cf_zmodem_skip_by_pos, cf_zmodem_skip_by_pos, // 105
cf_zmodem_start_block_size, cf_zmodem_start_block_size, // 106
cf_zmodem_tx_window, cf_zmodem_tx_window, // 107
cf_nomail_flag, cf_nomail_flag, // 108
cf_bind_ip, cf_bind_ip, // 109
cf_recieved_to_lower, cf_recieved_to_lower, // 110
#ifdef USE_SYSLOG #ifdef USE_SYSLOG
cf_syslog_facility, cf_syslog_facility,
#endif #endif
#ifdef DEBUG #ifdef DEBUG
cf_debug_file, cf_debug_file, // 111
cf_debug_level, cf_debug_level, // 112
#endif #endif
cf_split_inbound, cf_split_inbound, // 113
#ifdef NETSPOOL #ifdef NETSPOOL
cf_netspool_host, cf_netspool_host,
cf_netspool_port, cf_netspool_port,
#endif #endif
cf_fidodnszone, cf_fidodnszone, // 114
BFORCE_NUMBER_OF_KEYWORDS BFORCE_NUMBER_OF_KEYWORDS
} bforce_config_keyword; } bforce_config_keyword;