nat: Use the DCC region for number rewriting and increase debug output
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
index 3bc602e..54fc573 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
@@ -44,14 +44,14 @@
 	struct nat_rewrite_rule *rule;
 
 	if (!trie) {
-		LOGP(DNAT, LOGL_ERROR,
+		LOGP(DCC, LOGL_ERROR,
 			"Asked to do a table lookup but no table.\n");
 		return NULL;
 	}
 
 	rule = nat_rewrite_lookup(trie, number);
 	if (!rule) {
-		LOGP(DNAT, LOGL_DEBUG,
+		LOGP(DCC, LOGL_DEBUG,
 			"Couldn't find a prefix rule for %s\n", number);
 		return NULL;
 	}
@@ -100,12 +100,17 @@
 	char int_number[sizeof(called->number) + 2];
 	char *number = called->number;
 
-	if (llist_empty(&nat->num_rewr))
+	if (llist_empty(&nat->num_rewr)) {
+		LOGP(DCC, LOGL_DEBUG, "Rewrite rules empty.\n");
 		return NULL;
+	}
 
 	/* only ISDN plan */
-	if (called->plan != 1)
+	if (called->plan != 1) {
+		LOGP(DCC, LOGL_DEBUG, "Called plan is not 1 it was %d\n",
+			called->plan);
 		return NULL;
+	}
 
 	/* international, prepend */
 	if (called->type == 1) {
@@ -130,6 +135,8 @@
 			called->type = 0;
 		strncpy(called->number, chosen_number, sizeof(called->number));
 	}
+
+	called->number[sizeof(called->number) - 1] = '\0';
 }
 
 /**
@@ -161,28 +168,37 @@
 			    TLVP_VAL(&tp, GSM48_IE_CALLED_BCD) - 1);
 
 	/* check if it looks international and stop */
+	LOGP(DCC, LOGL_DEBUG,
+		"Pre-Rewrite for IMSI(%s) Plan(%d) Type(%d) Number(%s)\n",
+		imsi, called.plan, called.type, called.number);
 	new_number_pre = rewrite_isdn_number(nat, &nat->num_rewr, msg, imsi, &called);
 
 	if (!new_number_pre) {
-		LOGP(DNAT, LOGL_DEBUG, "No IMSI match found, returning message.\n");
+		LOGP(DCC, LOGL_DEBUG, "No IMSI(%s) match found, returning message.\n",
+			imsi);
 		return NULL;
 	}
 
 	if (strlen(new_number_pre) > sizeof(called.number)) {
-		LOGP(DNAT, LOGL_ERROR, "Number is too long for structure.\n");
+		LOGP(DCC, LOGL_ERROR, "Number %s is too long for structure.\n",
+				new_number_pre);
 		talloc_free(new_number_pre);
 		return NULL;
 	}
 	update_called_number(&called, new_number_pre);
 
 	/* another run through the re-write engine with other rules */
+	LOGP(DCC, LOGL_DEBUG,
+		"Post-Rewrite for IMSI(%s) Plan(%d) Type(%d) Number(%s)\n",
+		imsi, called.plan, called.type, called.number);
 	new_number_post = rewrite_isdn_number(nat, &nat->num_rewr_post, msg,
 					imsi, &called);
 	chosen_number = new_number_post ? new_number_post : new_number_pre;
 
 
 	if (strlen(chosen_number) > sizeof(called.number)) {
-		LOGP(DNAT, LOGL_ERROR, "Number is too long for structure.\n");
+		LOGP(DCC, LOGL_ERROR, "Number %s is too long for structure.\n",
+			chosen_number);
 		talloc_free(new_number_pre);
 		talloc_free(new_number_post);
 		return NULL;
@@ -196,7 +212,7 @@
 
 	out = msgb_alloc_headroom(4096, 128, "changed-setup");
 	if (!out) {
-		LOGP(DNAT, LOGL_ERROR, "Failed to allocate.\n");
+		LOGP(DCC, LOGL_ERROR, "Failed to allocate.\n");
 		talloc_free(new_number_pre);
 		talloc_free(new_number_post);
 		return NULL;
@@ -213,6 +229,9 @@
 
 	/* create the new number */
 	update_called_number(&called, chosen_number);
+	LOGP(DCC, LOGL_DEBUG,
+		"Chosen number for IMSI(%s) is Plan(%d) Type(%d) Number(%s)\n",
+		imsi, called.plan, called.type, called.number);
 	gsm48_encode_called(out, &called);
 
 	/* copy thre rest */