From 544b18a03be8d02a4d47b98a2ca183193b69e2f7 Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Thu, 16 Nov 2017 17:40:20 +0100 Subject: [PATCH] [nozzle] cleanup and document nozzle_get_mtu Signed-off-by: Fabio M. Di Nitto --- libnozzle/libnozzle.c | 23 ++++++++++++++++++----- libnozzle/libnozzle.h | 11 +++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/libnozzle/libnozzle.c b/libnozzle/libnozzle.c index a96899d0e..8b68f0767 100644 --- a/libnozzle/libnozzle.c +++ b/libnozzle/libnozzle.c @@ -276,18 +276,21 @@ static void _close_cfg(void) static int _get_mtu(const nozzle_t nozzle) { - int err; + int err = 0, savederrno = 0; memset(&nozzle->ifr, 0, sizeof(struct ifreq)); strncpy(nozzle->ifname, nozzle->nozzlename, IFNAMSIZ); err = ioctl(lib_cfg.sockfd, SIOCGIFMTU, &nozzle->ifr); - if (err) + if (err) { + savederrno = errno; goto out_clean; + } err = nozzle->ifr.ifr_mtu; out_clean: + errno = savederrno; return err; } @@ -620,9 +623,18 @@ int nozzle_close(nozzle_t nozzle, char **error_down, char **error_postdown) int nozzle_get_mtu(const nozzle_t nozzle) { - int err; + int err = 0, savederrno = 0; - pthread_mutex_lock(&lib_mutex); + if (!nozzle) { + errno = EINVAL; + return -1; + } + + savederrno = pthread_mutex_lock(&lib_mutex); + if (savederrno) { + errno = savederrno; + return -1; + } if (!_check(nozzle)) { errno = EINVAL; @@ -631,10 +643,11 @@ int nozzle_get_mtu(const nozzle_t nozzle) } err = _get_mtu(nozzle); + savederrno = errno; out_clean: pthread_mutex_unlock(&lib_mutex); - + savederrno = errno; return err; } diff --git a/libnozzle/libnozzle.h b/libnozzle/libnozzle.h index 9629200c6..02465696f 100644 --- a/libnozzle/libnozzle.h +++ b/libnozzle/libnozzle.h @@ -194,6 +194,17 @@ int nozzle_del_ip(nozzle_t nozzle, const char *ip_addr, const char *prefix, char int nozzle_get_ips(const nozzle_t nozzle, char **ip_addr_list, int *entries); +/** + * nozzle_get_mtu + * @brief retrive mtu on a given nozzle interface + * + * nozzle - pointer to the nozzle struct + * + * @return + * MTU on success + * -1 on error and errno is set. + */ + int nozzle_get_mtu(const nozzle_t nozzle); int nozzle_set_mtu(nozzle_t nozzle, const int mtu); int nozzle_reset_mtu(nozzle_t nozzle);