bsc_nat_fsm: fix sccp_sap_get_peer_addr_in
Fix the logic to not always return src->local_sccp_addr. What we need to know is the peer's address. Related: SYS#5560 Change-Id: I0055c0fafe672db5ce7a616d94c8964e8d58968f
This commit is contained in:
parent
9acbb0b790
commit
f2fe7d626a
|
@ -69,15 +69,15 @@ static struct bsc_nat_ss7_inst *ss7_inst_dest(struct bsc_nat_ss7_inst *src)
|
||||||
return g_bsc_nat->cn;
|
return g_bsc_nat->cn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For connection-oriented messages, figure out which side is the BSCNAT,
|
/* For connection-oriented messages, figure out which side is not the BSCNAT,
|
||||||
* either the called_addr or calling_addr. */
|
* either the called_addr or calling_addr. */
|
||||||
static int sccp_sap_get_peer_addr_in(struct bsc_nat_ss7_inst *src, struct osmo_sccp_addr **peer_addr_in,
|
static int sccp_sap_get_peer_addr_in(struct bsc_nat_ss7_inst *src, struct osmo_sccp_addr **peer_addr_in,
|
||||||
struct osmo_sccp_addr *called_addr, struct osmo_sccp_addr *calling_addr)
|
struct osmo_sccp_addr *called_addr, struct osmo_sccp_addr *calling_addr)
|
||||||
{
|
{
|
||||||
if (osmo_sccp_addr_ri_cmp(&src->local_sccp_addr, called_addr) == 0) {
|
if (osmo_sccp_addr_ri_cmp(&src->local_sccp_addr, called_addr) != 0) {
|
||||||
*peer_addr_in = called_addr;
|
*peer_addr_in = called_addr;
|
||||||
return 0;
|
return 0;
|
||||||
} else if (osmo_sccp_addr_ri_cmp(&src->local_sccp_addr, calling_addr) == 0) {
|
} else if (osmo_sccp_addr_ri_cmp(&src->local_sccp_addr, calling_addr) != 0) {
|
||||||
*peer_addr_in = calling_addr;
|
*peer_addr_in = calling_addr;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue