diff options
author | Leonard Herve <leonard.herve@yahoo.fr> | 2009-08-11 15:45:26 -0300 |
---|---|---|
committer | Everton Marques <everton.marques@gmail.com> | 2009-10-02 10:44:30 -0300 |
commit | 40b0f20733365209141491e3c45ebaf63979d835 (patch) | |
tree | f8eee75eb1e43e94acf826699d3e8bc51672a9d1 /pimd/pim_mroute.c | |
parent | f1bad8260c8c9942057c569b2a1a687a92b54862 (diff) | |
download | quagga-40b0f20733365209141491e3c45ebaf63979d835.tar.bz2 quagga-40b0f20733365209141491e3c45ebaf63979d835.tar.xz |
[pim] pim commands added to vtysh
Diffstat (limited to 'pimd/pim_mroute.c')
-rw-r--r-- | pimd/pim_mroute.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index f021abaa..48213b0b 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -22,6 +22,7 @@ #include <zebra.h> #include "log.h" +#include "privs.h" #include "pimd.h" #include "pim_mroute.h" @@ -30,6 +31,9 @@ #include "pim_iface.h" #include "pim_macro.h" +/* GLOBAL VARS */ +extern struct zebra_privs_t pimd_privs; + static void mroute_read_on(void); static int pim_mroute_set(int fd, int enable) @@ -259,7 +263,16 @@ int pim_mroute_socket_enable() if (PIM_MROUTE_IS_ENABLED) return -1; + if ( pimd_privs.change (ZPRIVS_RAISE) ) + zlog_err ("pim_mroute_socket_enable: could not raise privs, %s", + safe_strerror (errno) ); + fd = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP); + + if ( pimd_privs.change (ZPRIVS_LOWER) ) + zlog_err ("pim_mroute_socket_enable: could not lower privs, %s", + safe_strerror (errno) ); + if (fd < 0) { zlog_warn("Could not create mroute socket: errno=%d: %s", errno, strerror(errno)); |