]> git.proxmox.com Git - mirror_kronosnet.git/commitdiff
[nozzle] cleanup and document nozzle_(re)set_mac
authorFabio M. Di Nitto <fdinitto@redhat.com>
Mon, 20 Nov 2017 05:26:01 +0000 (06:26 +0100)
committerFabio M. Di Nitto <fdinitto@redhat.com>
Tue, 18 Dec 2018 04:55:08 +0000 (05:55 +0100)
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
libnozzle/libnozzle.c
libnozzle/libnozzle.h

index fefb04002e5e4558e795ff3291f5c08ea354dce4..1a4423d0d20cec47e75dc9a2fe118b6416753521 100644 (file)
@@ -752,11 +752,20 @@ out_clean:
 
 int nozzle_set_mac(nozzle_t nozzle, const char *ether_addr)
 {
-       int err;
+       int err = 0, savederrno = 0;
 
-       pthread_mutex_lock(&lib_mutex);
+       if ((!nozzle) || (!ether_addr)) {
+               errno = EINVAL;
+               return -1;
+       }
 
-       if ((!_check(nozzle)) || (!ether_addr)) {
+       savederrno = pthread_mutex_lock(&lib_mutex);
+       if (savederrno) {
+               errno = savederrno;
+               return -1;
+       }
+
+       if (!_check(nozzle)) {
                errno = EINVAL;
                err = -1;
                goto out_clean;
@@ -766,26 +775,32 @@ int nozzle_set_mac(nozzle_t nozzle, const char *ether_addr)
        strncpy(nozzle->ifname, nozzle->nozzlename, IFNAMSIZ);
 #ifdef KNET_LINUX
        err = ioctl(lib_cfg.sockfd, SIOCGIFHWADDR, &nozzle->ifr);
-       if (err)
+       if (err) {
+               savederrno = errno;
                goto out_clean;
+       }
 
        memmove(nozzle->ifr.ifr_hwaddr.sa_data, ether_aton(ether_addr), ETH_ALEN);
 
        err = ioctl(lib_cfg.sockfd, SIOCSIFHWADDR, &nozzle->ifr);
+       savederrno = errno;
 #endif
 #ifdef KNET_BSD
        err = ioctl(lib_cfg.sockfd, SIOCGIFADDR, &nozzle->ifr);
-       if (err)
+       if (err) {
+               savederrno = errno;
                goto out_clean;
+       }
 
        memmove(nozzle->ifr.ifr_addr.sa_data, ether_aton(ether_addr), ETHER_ADDR_LEN);
        nozzle->ifr.ifr_addr.sa_len = ETHER_ADDR_LEN;
 
        err = ioctl(lib_cfg.sockfd, SIOCSIFLLADDR, &nozzle->ifr);
+       savederrno = errno;
 #endif
 out_clean:
        pthread_mutex_unlock(&lib_mutex);
-
+       errno = savederrno;
        return err;
 }
 
index 5f75cb064e0bf8f882e207e57b16931afef061db..813ca25dce2d0d53ac6852aad9d05b4a2d5889d0 100644 (file)
@@ -261,7 +261,33 @@ int nozzle_reset_mtu(nozzle_t nozzle, char **error_string);
  */
 
 int nozzle_get_mac(const nozzle_t nozzle, char **ether_addr);
+
+/**
+ * nozzle_set_mac
+ * @brief set mac address on a given nozzle interface
+ *
+ * nozzle - pointer to the nozzle struct
+ *
+ * ether_addr - pointers to string containing the new mac address.
+ *
+ * @return
+ * 0 on success.
+ * -1 on error and errno is set.
+ */
+
 int nozzle_set_mac(nozzle_t nozzle, const char *ether_addr);
+
+/**
+ * nozzle_reset_mac
+ * @brief reset mac address on a given nozzle interface to system default
+ *
+ * nozzle - pointer to the nozzle struct
+ *
+ * @return
+ * 0 on success.
+ * -1 on error and errno is set.
+ */
+
 int nozzle_reset_mac(nozzle_t nozzle);
 
 nozzle_t nozzle_find(char *dev, size_t dev_size);