[MERGED] openggsn[master]: libgtp: improve error logging and propagation

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Jun 9 08:53:11 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: libgtp: improve error logging and propagation
......................................................................


libgtp: improve error logging and propagation

* propagate error code from gtp_new() to caller instead of always
  returning -1
* on socket-related failures log explicitly which kind of socket caused
  error
* log expected GTP version for unexpected packets

Change-Id: Ie07f1e4246eb178838b7df21946a08a1f60f2084
related: SYS#3610
---
M gtp/gtp.c
1 file changed, 13 insertions(+), 13 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/gtp/gtp.c b/gtp/gtp.c
index ade746a..801664d 100644
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -730,9 +730,9 @@
 	if (((*gsn)->fd0 = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
 		(*gsn)->err_socket++;
 		LOGP(DLGTP, LOGL_ERROR,
-			"socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
+		     "GTPv0 socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
 			AF_INET, SOCK_DGRAM, 0, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	memset(&addr, 0, sizeof(addr));
@@ -748,16 +748,16 @@
 		LOGP_WITH_ADDR(DLGTP, LOGL_ERROR, addr,
 			       "bind(fd0=%d) failed: Error = %s\n",
 			       (*gsn)->fd0, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	/* Create GTP version 1 control plane socket */
 	if (((*gsn)->fd1c = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
 		(*gsn)->err_socket++;
 		LOGP(DLGTP, LOGL_ERROR,
-			"socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
+		     "GTPv1 control plane socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
 			AF_INET, SOCK_DGRAM, 0, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	memset(&addr, 0, sizeof(addr));
@@ -773,16 +773,16 @@
 		LOGP_WITH_ADDR(DLGTP, LOGL_ERROR, addr,
 				"bind(fd1c=%d) failed: Error = %s\n",
 				(*gsn)->fd1c, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	/* Create GTP version 1 user plane socket */
 	if (((*gsn)->fd1u = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
 		(*gsn)->err_socket++;
 		LOGP(DLGTP, LOGL_ERROR,
-			"socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
+		     "GTPv1 user plane socket(domain=%d, type=%d, protocol=%d) failed: Error = %s\n",
 			AF_INET, SOCK_DGRAM, 0, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	memset(&addr, 0, sizeof(addr));
@@ -798,7 +798,7 @@
 		LOGP_WITH_ADDR(DLGTP, LOGL_ERROR, addr,
 			"bind(fd1u=%d) failed: Error = %s\n",
 			(*gsn)->fd1u, strerror(errno));
-		return -1;
+		return -errno;
 	}
 
 	return 0;
@@ -2730,7 +2730,7 @@
 			gsn->unexpect++;
 			GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
 				    status,
-				    "Unexpected GTP Signalling Message\n");
+				    "Unexpected GTPv0 Signalling Message\n");
 			continue;	/* Silently discard 29.60: 11.1.4 */
 		}
 
@@ -2741,7 +2741,7 @@
 			gsn->unexpect++;
 			GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
 				    status,
-				    "Unexpected GTP Signalling Message\n");
+				    "Unexpected GTPv0 Signalling Message\n");
 			continue;	/* Silently discard 29.60: 11.1.4 */
 		}
 
@@ -2905,7 +2905,7 @@
 			gsn->unexpect++;
 			GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
 				    status,
-				    "Unexpected GTP Signalling Message\n");
+				    "Unexpected GTPv1 Signalling Message\n");
 			continue;	/* Silently discard 29.60: 11.1.4 */
 		}
 
@@ -2916,7 +2916,7 @@
 			gsn->unexpect++;
 			GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
 				    status,
-				    "Unexpected GTP Signalling Message\n");
+				    "Unexpected GTPv1 Signalling Message\n");
 			continue;	/* Silently discard 29.60: 11.1.4 */
 		}
 

-- 
To view, visit https://gerrit.osmocom.org/2655
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie07f1e4246eb178838b7df21946a08a1f60f2084
Gerrit-PatchSet: 3
Gerrit-Project: openggsn
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list