Fix binkp overrides

This commit is contained in:
Alexey Khromov 2025-03-22 21:52:08 +03:00
parent 7fb8e32a9b
commit deaa8140f5
2 changed files with 16 additions and 10 deletions

View File

@ -717,6 +717,7 @@ case BPMSG_ADR: /* List of addresses */
bstate->extraislast = false; bstate->extraislast = false;
sprintf(bstate->extracmd+1,"OPT MB CRYPT"); sprintf(bstate->extracmd+1,"OPT MB CRYPT");
s_override ovr; s_override ovr;
DEB((D_24554, "process adr overrides"));
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);
@ -725,6 +726,7 @@ case BPMSG_ADR: /* List of addresses */
break; break;
} }
} }
DEB((D_24554, "process adr overrides"));
} }
// further use extracmd only for errors // further use extracmd only for errors
@ -1217,13 +1219,15 @@ void binkp_process_ADR(char *buffer)
{ {
s_faddr addr; s_faddr addr;
char *p, *q; char *p, *q;
DEB((D_24554, "process ADR: %s", buffer));
for( p = string_token(buffer, &q, NULL, 0); p; p = string_token(NULL, &q, NULL, 0) ) for( p = string_token(buffer, &q, NULL, 0); p; p = string_token(NULL, &q, NULL, 0) )
{ {
if( ftn_addrparse(&addr, p, FALSE) ) if( ftn_addrparse(&addr, p, FALSE) )
log("BinkP got unparsable address \"%s\"", string_printable(p)); log("BinkP got unparsable address \"%s\"", string_printable(p));
else else {
session_addrs_add(&state.remoteaddrs, &state.n_remoteaddr, addr); session_addrs_add(&state.remoteaddrs, &state.n_remoteaddr, addr);
DEB((D_24554, "process ADR complete"));
}
} }
} }

View File

@ -135,15 +135,17 @@ int override_get(s_override *dest, s_faddr addr, int line)
{ {
s_override *p; s_override *p;
int curline = 0; int curline = 0;
p = conf_override(cf_override, addr); p = conf_override(cf_override, addr);
curline = 0; curline = 0;
if (line > 0)
{
while( p && curline < line ) while( p && curline < line )
{ {
p = p->hidden; p = p->hidden;
++curline; ++curline;
} }
}
if( p && curline == line ) if( p && curline == line )
{ {