diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-05-19 16:01:39 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-05-19 16:01:39 +0200 |
commit | 1100a9d1fa38fbd931c7acfacdf1f2fa1d26627e (patch) | |
tree | f831187562580d3c0198f6ebc934e518f4ddd35d | |
parent | 6c4136e347b2053bd2fe849dc2ca7c2e7e4ada45 (diff) |
[GPRS] NS: Never respond to STATUS with STATUS to prevent loops!
-rw-r--r-- | openbsc/src/gprs/gprs_ns.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/openbsc/src/gprs/gprs_ns.c b/openbsc/src/gprs/gprs_ns.c index 9d0766c6..04d17b8e 100644 --- a/openbsc/src/gprs/gprs_ns.c +++ b/openbsc/src/gprs/gprs_ns.c @@ -657,6 +657,12 @@ int gprs_ns_rcvmsg(struct gprs_ns_inst *nsi, struct msgb *msg, if (!nsvc) { struct tlv_parsed tp; uint16_t nsei; + if (nsh->pdu_type == NS_PDUT_STATUS) { + LOGP(DNS, LOGL_INFO, "Ignoring NS STATUS from %s:%u " + "for non-existing NS-VC\n", + inet_ntoa(saddr->sin_addr), ntohs(saddr->sin_port)); + return 0; + } /* Only the RESET procedure creates a new NSVC */ if (nsh->pdu_type != NS_PDUT_RESET) { /* Since we have no NSVC, we have to use a fake */ |