nat: When having a proper close down, or a short read close the connection
For now close the connection when having a short read. This might
be due a network issue (loss of segment) or similiar. As we are not
handling these issues well, let us close the connection.
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 6b29d16..d5ed751 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -383,13 +383,12 @@
struct ipaccess_head *hh;
if (!msg) {
- if (error == 0) {
+ if (error == 0)
LOGP(DNAT, LOGL_FATAL, "The connection the MSC was lost, exiting\n");
- bsc_msc_lost(msc_con);
- return -1;
- }
+ else
+ LOGP(DNAT, LOGL_ERROR, "Failed to parse ip access message: %d\n", error);
- LOGP(DNAT, LOGL_ERROR, "Failed to parse ip access message: %d\n", error);
+ bsc_msc_lost(msc_con);
return -1;
}
@@ -600,12 +599,12 @@
struct msgb *msg = ipaccess_read_msg(bfd, &error);
if (!msg) {
- if (error == 0) {
+ if (error == 0)
LOGP(DNAT, LOGL_ERROR, "The connection to the BSC was lost. Cleaning it\n");
- remove_bsc_connection(bsc);
- } else {
+ else
LOGP(DNAT, LOGL_ERROR, "Failed to parse ip access message: %d\n", error);
- }
+
+ remove_bsc_connection(bsc);
return -1;
}