Log GTP-U endpoints update

* make gtp_ntoa() public after renaming it to sgsn_gtp_ntoa() to avoid
  confusion with libgtp functions
* use it to log GTP-U endpoints address updates

Change-Id: I96d0f3a63cce338471cc39cc33fd44c39cd2aa73
Related: SYS#3610
diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c
index d11ecce..147e001 100644
--- a/src/gprs/gprs_gmm.c
+++ b/src/gprs/gprs_gmm.c
@@ -120,6 +120,8 @@
 {
 	struct sgsn_pdp_ctx *pdp;
 	llist_for_each_entry(pdp, &mm_ctx->pdp_list, list) {
+		LOGMMCTXP(LOGL_INFO, mm_ctx, "Changing GTP-U endpoints %s -> %s\n",
+			  sgsn_gtp_ntoa(&pdp->lib->gsnlu), inet_ntoa(sgsn->cfg.gtp_listenaddr.sin_addr));
 		sgsn_pdp_upd_gtp_u(pdp,
 				   &sgsn->cfg.gtp_listenaddr.sin_addr,
 				   sizeof(sgsn->cfg.gtp_listenaddr.sin_addr));
diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c
index faac69b..496bd68 100644
--- a/src/gprs/sgsn_vty.c
+++ b/src/gprs/sgsn_vty.c
@@ -425,7 +425,7 @@
 	{ 0, NULL }
 };
 
-static char *gtp_ntoa(struct ul16_t *ul)
+char *sgsn_gtp_ntoa(struct ul16_t *ul)
 {
 	if (ul->l == 4) {
 		struct in_addr *ia = (struct in_addr *) ul;
@@ -450,13 +450,13 @@
 			gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l),
 			VTY_NEWLINE);
 		vty_out(vty, "%s  GTP Local Control(%s / TEIC: 0x%08x) ", pfx,
-			gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own);
+			sgsn_gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own);
 		vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
-			gtp_ntoa(&pdp->lib->gsnlu), pdp->lib->teid_own, VTY_NEWLINE);
+			sgsn_gtp_ntoa(&pdp->lib->gsnlu), pdp->lib->teid_own, VTY_NEWLINE);
 		vty_out(vty, "%s  GTP Remote Control(%s / TEIC: 0x%08x) ", pfx,
-			gtp_ntoa(&pdp->lib->gsnrc), pdp->lib->teic_gn);
+			sgsn_gtp_ntoa(&pdp->lib->gsnrc), pdp->lib->teic_gn);
 		vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
-			gtp_ntoa(&pdp->lib->gsnru), pdp->lib->teid_gn, VTY_NEWLINE);
+			sgsn_gtp_ntoa(&pdp->lib->gsnru), pdp->lib->teid_gn, VTY_NEWLINE);
 	}
 
 	vty_out_rate_ctr_group(vty, " ", pdp->ctrg);