Review at  https://gerrit.osmocom.org/2655

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

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


  git pull ssh://gerrit.osmocom.org:29418/openggsn refs/changes/55/2655/1

diff --git a/gtp/gtp.c b/gtp/gtp.c
index ade746a..b45fbe4 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;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie07f1e4246eb178838b7df21946a08a1f60f2084
Gerrit-PatchSet: 1
Gerrit-Project: openggsn
Gerrit-Branch: master
Gerrit-Owner: Max <[email protected]>

Reply via email to