ms: Do not retrieve MS with IMSI 000 from the storage

The IMSI '000' is used as default value for an incoming BSSGP
message's IMSI IE. This can lead to the retrieval of the wrong MS
object from the storage.

This commit changes the get_ms method to skip the IMSI search if such
an IMSI is passed as selector.

Note that changing the default value in the BSSGP code does not help
here.

Sponsored-by: On-Waves ehf
diff --git a/src/gprs_ms_storage.cpp b/src/gprs_ms_storage.cpp
index 515ed75..36f9b6b 100644
--- a/src/gprs_ms_storage.cpp
+++ b/src/gprs_ms_storage.cpp
@@ -24,6 +24,8 @@
 #include "tbf.h"
 #include "gprs_debug.h"
 
+#define GPRS_UNDEFINED_IMSI "000"
+
 GprsMsStorage::GprsMsStorage(BTS *bts) :
 	m_bts(bts)
 {
@@ -69,7 +71,7 @@
 
 	/* not found by TLLI */
 
-	if (imsi && imsi[0]) {
+	if (imsi && imsi[0] && strcmp(imsi, GPRS_UNDEFINED_IMSI) != 0) {
 		llist_for_each(pos, &m_list) {
 			ms = pos->entry();
 			if (strcmp(imsi, ms->imsi()) == 0)