nat: Fix the filter when searching for a identity response
The filter code will return < 0 for error, 0 for unknown
subscriber, 1 for subscriber checked. Use the same if construct
as for the CR message. This should fix passing LU when it
starts with a TMSI of a different network.
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 2c08518..838e8f9 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -791,14 +791,14 @@
con = patch_sccp_src_ref_to_msc(msg, parsed, bsc);
if (con) {
filter = bsc_nat_filter_dt(bsc, msg, con, parsed);
- if (filter == 0) {
- con_bsc = con->bsc;
- con_msc = con->msc_con;
- con_filter = con->con_local;
- } else {
+ if (filter < 0) {
bsc_send_con_release(bsc, con);
con = NULL;
goto exit2;
+ } else {
+ con_bsc = con->bsc;
+ con_msc = con->msc_con;
+ con_filter = con->con_local;
}
}
break;