Fixed flag creation, added flags inctic_flag incfile_flag
This commit is contained in:
parent
5ef2b09861
commit
46312ebc1b
2
CHANGES
2
CHANGES
@ -266,3 +266,5 @@ Alexey Khromov (zx@zxalexis.ru)
|
|||||||
+ Daemon mode - fixed working time for tcp nodes (CM)
|
+ Daemon mode - fixed working time for tcp nodes (CM)
|
||||||
+ Fixed some x64 errors in comparisons to integers
|
+ Fixed some x64 errors in comparisons to integers
|
||||||
+ Added systemd and xinetd service files to contrib folder
|
+ Added systemd and xinetd service files to contrib folder
|
||||||
|
+ Fixed flag files creation
|
||||||
|
+ Added flags for TIC files (inctic_flag) and files (incfile_flag)
|
||||||
|
@ -100,6 +100,8 @@ s_conf_entry bforce_config[BFORCE_NUMBER_OF_KEYWORDS+1] = {
|
|||||||
CONF_KEY(freq_srif_command, CT_STRING),
|
CONF_KEY(freq_srif_command, CT_STRING),
|
||||||
CONF_KEY(incnet_flag, CT_STRING),
|
CONF_KEY(incnet_flag, CT_STRING),
|
||||||
CONF_KEY(incarc_flag, CT_STRING),
|
CONF_KEY(incarc_flag, CT_STRING),
|
||||||
|
CONF_KEY(inctic_flag, CT_STRING),
|
||||||
|
CONF_KEY(incfile_flag, CT_STRING),
|
||||||
CONF_KEY(hide_our_aka, CT_ADDRESS),
|
CONF_KEY(hide_our_aka, CT_ADDRESS),
|
||||||
CONF_KEY(history_file, CT_STRING),
|
CONF_KEY(history_file, CT_STRING),
|
||||||
CONF_KEY(hydra_options, CT_OPTIONS),
|
CONF_KEY(hydra_options, CT_OPTIONS),
|
||||||
|
@ -1050,13 +1050,13 @@ int daemon_run(const char *confname, const char *incname, bool quit)
|
|||||||
|
|
||||||
if( max_tcpip > 0 )
|
if( max_tcpip > 0 )
|
||||||
{
|
{
|
||||||
DEB((D_INFO,"daemon: daemon_tcpip_queue"));
|
DEB((D_DAEMON,"daemon: daemon_tcpip_queue"));
|
||||||
daemon_queue_do(&daemon_queues[TCPIP_QUEUE]);
|
daemon_queue_do(&daemon_queues[TCPIP_QUEUE]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( max_modem > 0 )
|
if( max_modem > 0 )
|
||||||
{
|
{
|
||||||
DEB((D_INFO,"daemon: daemon_modem_queue"));
|
DEB((D_DAEMON,"daemon: daemon_modem_queue"));
|
||||||
daemon_queue_do(&daemon_queues[MODEM_QUEUE]);
|
daemon_queue_do(&daemon_queues[MODEM_QUEUE]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ int out_filetype(const char *fname)
|
|||||||
else
|
else
|
||||||
p_nam = fname;
|
p_nam = fname;
|
||||||
|
|
||||||
|
DEB((D_EVENT, "outb_fsqueue: getting type of file %s", p_nam));
|
||||||
/*
|
/*
|
||||||
* Get file name extension
|
* Get file name extension
|
||||||
*/
|
*/
|
||||||
@ -39,12 +40,19 @@ int out_filetype(const char *fname)
|
|||||||
|
|
||||||
for( i = 0; outtab[i].ext; i++ )
|
for( i = 0; outtab[i].ext; i++ )
|
||||||
if( strcasemask(p_ext, outtab[i].ext) == 0 )
|
if( strcasemask(p_ext, outtab[i].ext) == 0 )
|
||||||
|
{
|
||||||
|
DEB((D_EVENT, "outb_fsqueue: got type %d from outtab ext %s", outtab[i].type, p_ext ));
|
||||||
return outtab[i].type;
|
return outtab[i].type;
|
||||||
|
}
|
||||||
|
|
||||||
for( i = 0; exttab[i].ext; i++ )
|
for( i = 0; exttab[i].ext; i++ )
|
||||||
if( strcasemask(p_ext, exttab[i].ext) == 0 )
|
if( strcasemask(p_ext, exttab[i].ext) == 0 )
|
||||||
|
{
|
||||||
|
DEB((D_EVENT, "outb_fsqueue: got type %d from exttab ext %s", exttab[i].type, p_ext ));
|
||||||
return exttab[i].type;
|
return exttab[i].type;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEB((D_EVENT, "outb_fsqueue: got type UNKNOWN", exttab[i].type, p_ext ));
|
||||||
return TYPE_UNKNOWN;
|
return TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1052,7 +1052,7 @@ case BINKP_BLK_DATA:
|
|||||||
|
|
||||||
if( n < 0 ) {
|
if( n < 0 ) {
|
||||||
log("error writing local file");
|
log("error writing local file");
|
||||||
if( n == -2 ) {
|
if( n == (long int)-2 ) {
|
||||||
bstate->extracmd[0] = BPMSG_GOT;
|
bstate->extracmd[0] = BPMSG_GOT;
|
||||||
sprintf(bstate->extracmd+1, "%s %ld %ld", bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
sprintf(bstate->extracmd+1, "%s %ld %ld", bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
||||||
(long)bstate->pi->recv->mod_time);
|
(long)bstate->pi->recv->mod_time);
|
||||||
@ -1081,28 +1081,33 @@ case BINKP_BLK_DATA:
|
|||||||
p_rx_fclose(bstate->pi);
|
p_rx_fclose(bstate->pi);
|
||||||
PROTO_ERROR("extra data for file")
|
PROTO_ERROR("extra data for file")
|
||||||
}
|
}
|
||||||
else if( bstate->pi->recv->bytes_received == bstate->pi->recv->bytes_total ) {
|
else if( bstate->pi->recv->bytes_received == bstate->pi->recv->bytes_total )
|
||||||
DEB((D_24554, "receive completed"));
|
{
|
||||||
bstate->frs = frs_nothing;
|
DEB((D_24554, "receive completed"));
|
||||||
bstate->pi->recv->status = FSTAT_SUCCESS;
|
bstate->frs = frs_nothing;
|
||||||
if( !p_rx_fclose(bstate->pi) ) {
|
bstate->pi->recv->status = FSTAT_SUCCESS;
|
||||||
bstate->extracmd[0] = BPMSG_GOT;
|
if( !p_rx_fclose(bstate->pi) )
|
||||||
sprintf(bstate->extracmd+1, "%s %ld %ld",
|
{
|
||||||
bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
bstate->extracmd[0] = BPMSG_GOT;
|
||||||
(long)bstate->pi->recv->mod_time);
|
sprintf(bstate->extracmd+1, "%s %ld %ld",
|
||||||
bstate->extraislast = false;
|
bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
||||||
return 1;
|
(long)bstate->pi->recv->mod_time);
|
||||||
}
|
bstate->extraislast = false;
|
||||||
else {
|
return 1;
|
||||||
DEB((D_24554, "some error committing file"));
|
}
|
||||||
bstate->extracmd[0] = BPMSG_SKIP;
|
else
|
||||||
sprintf(bstate->extracmd+1, "%s %ld %ld",
|
{
|
||||||
bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
DEB((D_24554, "some error committing file"));
|
||||||
(long)bstate->pi->recv->mod_time);
|
bstate->extracmd[0] = BPMSG_SKIP;
|
||||||
bstate->extraislast = false;
|
sprintf(bstate->extracmd+1, "%s %ld %ld",
|
||||||
return 1;
|
bstate->pi->recv->net_name, (long)bstate->pi->recv->bytes_total,
|
||||||
}
|
(long)bstate->pi->recv->mod_time);
|
||||||
} else {
|
bstate->extraislast = false;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
DEB((D_24554, "data block accepted"));
|
DEB((D_24554, "data block accepted"));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -415,6 +415,7 @@ int p_tx_rewind(s_protinfo *pi, size_t pos)
|
|||||||
|
|
||||||
void prot_traffic_update(s_traffic *traf, size_t size, int xtime, int type)
|
void prot_traffic_update(s_traffic *traf, size_t size, int xtime, int type)
|
||||||
{
|
{
|
||||||
|
DEB((D_EVENT, "prot_common: Adding type %d with size %ld to stats", type, size));
|
||||||
if( type & TYPE_REQANSW )
|
if( type & TYPE_REQANSW )
|
||||||
{
|
{
|
||||||
traf->freqed_size += size;
|
traf->freqed_size += size;
|
||||||
@ -433,6 +434,10 @@ void prot_traffic_update(s_traffic *traf, size_t size, int xtime, int type)
|
|||||||
traf->arcmail_time += xtime;
|
traf->arcmail_time += xtime;
|
||||||
traf->arcmail_num++;
|
traf->arcmail_num++;
|
||||||
}
|
}
|
||||||
|
else if( type & TYPE_TICFILE )
|
||||||
|
{
|
||||||
|
traf->ticfile_num++;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
traf->files_size += size;
|
traf->files_size += size;
|
||||||
|
@ -656,7 +656,7 @@ int call_system(s_faddr addr, const s_bforce_opts *opts)
|
|||||||
{
|
{
|
||||||
log("bad phone, excluding modem");
|
log("bad phone, excluding modem");
|
||||||
call_mayuse &= ~CALL_MODEM;
|
call_mayuse &= ~CALL_MODEM;
|
||||||
if( !(call_mustuse & CALL_MODEM) )
|
if( !(call_mayuse) )
|
||||||
{
|
{
|
||||||
errmsg = "don't know phone number";
|
errmsg = "don't know phone number";
|
||||||
gotoexit(BFERR_PHONE_UNKNOWN);
|
gotoexit(BFERR_PHONE_UNKNOWN);
|
||||||
@ -690,7 +690,7 @@ int call_system(s_faddr addr, const s_bforce_opts *opts)
|
|||||||
{
|
{
|
||||||
call_mayuse &= ~CALL_MODEM;
|
call_mayuse &= ~CALL_MODEM;
|
||||||
log("bad worktime, excluding modem");
|
log("bad worktime, excluding modem");
|
||||||
if( !(call_mustuse & CALL_MODEM) )
|
if( !(call_mayuse) )
|
||||||
{
|
{
|
||||||
errmsg = "not works now, try later";
|
errmsg = "not works now, try later";
|
||||||
gotoexit(BFERR_NOTWORKING);
|
gotoexit(BFERR_NOTWORKING);
|
||||||
@ -783,7 +783,7 @@ int call_system(s_faddr addr, const s_bforce_opts *opts)
|
|||||||
DEB((D_EVENT, "bad host or proto -> exclude IP, mayuse=%d", call_mayuse));
|
DEB((D_EVENT, "bad host or proto -> exclude IP, mayuse=%d", call_mayuse));
|
||||||
|
|
||||||
// If we had ONLY tcpip command - go out with error
|
// If we had ONLY tcpip command - go out with error
|
||||||
if( !(call_mustuse & CALL_TCPIP_ANY) )
|
if( !(call_mayuse) )
|
||||||
{
|
{
|
||||||
errmsg = "Aborting, don't know host name";
|
errmsg = "Aborting, don't know host name";
|
||||||
gotoexit(BFERR_PHONE_UNKNOWN);
|
gotoexit(BFERR_PHONE_UNKNOWN);
|
||||||
|
@ -897,11 +897,20 @@ int session(void)
|
|||||||
p_log_txrxstat(&pi);
|
p_log_txrxstat(&pi);
|
||||||
|
|
||||||
|
|
||||||
|
// Protocol info - real info from protocol
|
||||||
|
DEB((D_EVENT,"sess_main: Pi stats> Net: %d, Arc: %d, Fil: %d, Tic: %d",
|
||||||
|
pi.traffic_rcvd.netmail_num, pi.traffic_rcvd.arcmail_num,
|
||||||
|
pi.traffic_rcvd.files_num, pi.traffic_rcvd.ticfile_num));
|
||||||
|
|
||||||
|
// Session info - HANDSHAKE info for traffic
|
||||||
|
DEB((D_EVENT,"sess_main: Sess stats> Net: %d, Arc: %d, Fil: %d, Tic: %d",
|
||||||
|
state.traff_recv.netmail_num, state.traff_recv.arcmail_num,
|
||||||
|
state.traff_recv.files_num, state.traff_recv.ticfile_num));
|
||||||
/*
|
/*
|
||||||
* Raise flags if session incoming traffic was not empty
|
* Raise flags if session incoming traffic was not empty
|
||||||
*/
|
*/
|
||||||
if ( (p = conf_string(cf_incnet_flag)) )
|
if ( (p = conf_string(cf_incnet_flag)) )
|
||||||
if (state.traff_recv.netmail_size > 0) {
|
if (pi.traffic_rcvd.netmail_size > 0) {
|
||||||
DEB((D_EVENT, "Incoming netmail > 0, raising flag"));
|
DEB((D_EVENT, "Incoming netmail > 0, raising flag"));
|
||||||
log("Raising flag for netmail in %s", p);
|
log("Raising flag for netmail in %s", p);
|
||||||
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
|
||||||
@ -915,7 +924,7 @@ int session(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( (p = conf_string(cf_incarc_flag)) )
|
if ( (p = conf_string(cf_incarc_flag)) )
|
||||||
if (state.traff_recv.arcmail_size > 0) {
|
if (pi.traffic_rcvd.arcmail_size > 0) {
|
||||||
DEB((D_EVENT, "Incoming arcmail > 0, raising flag"));
|
DEB((D_EVENT, "Incoming arcmail > 0, raising flag"));
|
||||||
log("Raising flag for arcmail in %s", p);
|
log("Raising flag for arcmail in %s", p);
|
||||||
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
@ -928,6 +937,33 @@ int session(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( (p = conf_string(cf_inctic_flag)) )
|
||||||
|
if (pi.traffic_rcvd.ticfile_num > 0) {
|
||||||
|
DEB((D_EVENT, "Incoming TIC files > 0, raising flag"));
|
||||||
|
log("Raising flag for TIC in %s", p);
|
||||||
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
|
if (fd == -1) {
|
||||||
|
DEB((D_EVENT, "Error raising ticfiles flag"));
|
||||||
|
log("Error creating flag for ticfiles in %s", p);
|
||||||
|
} else {
|
||||||
|
/* all ok - closing file */
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( (p = conf_string(cf_incfile_flag)) )
|
||||||
|
if (pi.traffic_rcvd.files_size > 0) {
|
||||||
|
DEB((D_EVENT, "Incoming FILES > 0, raising flag"));
|
||||||
|
log("Raising flag for files in %s", p);
|
||||||
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
|
if (fd == -1) {
|
||||||
|
DEB((D_EVENT, "Error raising files flag"));
|
||||||
|
log("Error creating flag for files in %s", p);
|
||||||
|
} else {
|
||||||
|
/* all ok - closing file */
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Save session traffic before deiniting
|
* Save session traffic before deiniting
|
||||||
*/
|
*/
|
||||||
|
@ -195,6 +195,8 @@ typedef enum {
|
|||||||
cf_freq_srif_command,
|
cf_freq_srif_command,
|
||||||
cf_incnet_flag,
|
cf_incnet_flag,
|
||||||
cf_incarc_flag,
|
cf_incarc_flag,
|
||||||
|
cf_inctic_flag,
|
||||||
|
cf_incfile_flag,
|
||||||
cf_hide_our_aka,
|
cf_hide_our_aka,
|
||||||
cf_history_file,
|
cf_history_file,
|
||||||
cf_hydra_options,
|
cf_hydra_options,
|
||||||
|
@ -44,6 +44,7 @@ typedef struct traffic {
|
|||||||
int freqed_num;
|
int freqed_num;
|
||||||
int freqed_time;
|
int freqed_time;
|
||||||
size_t freqed_size;
|
size_t freqed_size;
|
||||||
|
int ticfile_num;
|
||||||
} s_traffic;
|
} s_traffic;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user