]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/ipforward_sysctl.c
Merge pull request #11146 from NicolasDichtel/master
[mirror_frr.git] / zebra / ipforward_sysctl.c
index 9fa6366411f81cdc61a8a847136ab4ffe6d83a87..0015018f945de88c6a505d35b481a865472ec264 100644 (file)
 
 #include <zebra.h>
 
-#if !defined(GNU_LINUX) && !defined(SUNOS_5)
+#if !defined(GNU_LINUX)
 
 #include "privs.h"
 #include "zebra/ipforward.h"
+#include "zebra/zebra_errors.h"
 
 #include "log.h"
 #include "lib_errors.h"
@@ -40,9 +41,10 @@ int ipforward(void)
        size_t len;
        int ipforwarding = 0;
 
-       len = sizeof ipforwarding;
+       len = sizeof(ipforwarding);
        if (sysctl(mib, MIB_SIZ, &ipforwarding, &len, 0, 0) < 0) {
-               zlog_warn("Can't get ipforwarding value");
+               flog_err_sys(EC_LIB_SYSTEM_CALL,
+                            "Can't get ipforwarding value");
                return -1;
        }
        return ipforwarding;
@@ -53,10 +55,11 @@ int ipforward_on(void)
        size_t len;
        int ipforwarding = 1;
 
-       len = sizeof ipforwarding;
-       frr_elevate_privs(&zserv_privs) {
+       len = sizeof(ipforwarding);
+       frr_with_privs(&zserv_privs) {
                if (sysctl(mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0) {
-                       zlog_warn("Can't set ipforwarding on");
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "Can't set ipforwarding on");
                        return -1;
                }
        }
@@ -68,10 +71,11 @@ int ipforward_off(void)
        size_t len;
        int ipforwarding = 0;
 
-       len = sizeof ipforwarding;
-       frr_elevate_privs(&zserv_privs) {
+       len = sizeof(ipforwarding);
+       frr_with_privs(&zserv_privs) {
                if (sysctl(mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0) {
-                       zlog_warn("Can't set ipforwarding on");
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "Can't set ipforwarding on");
                        return -1;
                }
        }
@@ -92,10 +96,11 @@ int ipforward_ipv6(void)
        size_t len;
        int ip6forwarding = 0;
 
-       len = sizeof ip6forwarding;
-       frr_elevate_privs(&zserv_privs) {
+       len = sizeof(ip6forwarding);
+       frr_with_privs(&zserv_privs) {
                if (sysctl(mib_ipv6, MIB_SIZ, &ip6forwarding, &len, 0, 0) < 0) {
-                       zlog_warn("can't get ip6forwarding value");
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "can't get ip6forwarding value");
                        return -1;
                }
        }
@@ -107,10 +112,12 @@ int ipforward_ipv6_on(void)
        size_t len;
        int ip6forwarding = 1;
 
-       len = sizeof ip6forwarding;
-       frr_elevate_privs(&zserv_privs) {
-               if (sysctl(mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0) {
-                       zlog_warn("can't get ip6forwarding value");
+       len = sizeof(ip6forwarding);
+       frr_with_privs(&zserv_privs) {
+               if (sysctl(mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len)
+                   < 0) {
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "can't get ip6forwarding value");
                        return -1;
                }
        }
@@ -122,14 +129,16 @@ int ipforward_ipv6_off(void)
        size_t len;
        int ip6forwarding = 0;
 
-       len = sizeof ip6forwarding;
-       frr_elevate_privs(&zserv_privs) {
-               if (sysctl(mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0) {
-                       zlog_warn("can't get ip6forwarding value");
+       len = sizeof(ip6forwarding);
+       frr_with_privs(&zserv_privs) {
+               if (sysctl(mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len)
+                   < 0) {
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "can't get ip6forwarding value");
                        return -1;
                }
        }
        return ip6forwarding;
 }
 
-#endif /* !defined(GNU_LINUX) && !defined(SUNOS_5) */
+#endif /* !defined(GNU_LINUX) */