summaryrefslogtreecommitdiffstats
path: root/zebra/ipforward_solaris.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/ipforward_solaris.c')
-rw-r--r--zebra/ipforward_solaris.c179
1 files changed, 86 insertions, 93 deletions
diff --git a/zebra/ipforward_solaris.c b/zebra/ipforward_solaris.c
index 8eccfe133..88a3bb79b 100644
--- a/zebra/ipforward_solaris.c
+++ b/zebra/ipforward_solaris.c
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with GNU Zebra; see the file COPYING. If not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
+ * 02111-1307, USA.
*/
#include <zebra.h>
@@ -47,117 +47,110 @@ extern struct zebra_privs_t zserv_privs;
** name of the parameter being referenced.
*/
-static int
-solaris_nd(const int cmd, const char* parameter, const int value)
+static int solaris_nd(const int cmd, const char *parameter, const int value)
{
#define ND_BUFFER_SIZE 1024
- int fd;
- char nd_buf[ND_BUFFER_SIZE];
- struct strioctl strioctl;
- const char* device = IP_DEV_NAME;
- int retval;
- memset(nd_buf, '\0', ND_BUFFER_SIZE);
- /*
- ** ND_SET takes a NULL delimited list of strings further terminated
- ** buy a NULL. ND_GET returns a list in a similar layout, although
- ** here we only use the first result.
- */
- if (cmd == ND_SET)
- snprintf(nd_buf, ND_BUFFER_SIZE, "%s%c%d%c", parameter, '\0', value,'\0');
- else if (cmd == ND_GET)
- snprintf(nd_buf, ND_BUFFER_SIZE, "%s", parameter);
- else {
- zlog_err("internal error - inappropriate command given to "
- "solaris_nd()%s:%d", __FILE__, __LINE__);
- return -1;
- }
+ int fd;
+ char nd_buf[ND_BUFFER_SIZE];
+ struct strioctl strioctl;
+ const char *device = IP_DEV_NAME;
+ int retval;
+ memset(nd_buf, '\0', ND_BUFFER_SIZE);
+ /*
+ ** ND_SET takes a NULL delimited list of strings further terminated
+ ** buy a NULL. ND_GET returns a list in a similar layout, although
+ ** here we only use the first result.
+ */
+ if (cmd == ND_SET)
+ snprintf(nd_buf, ND_BUFFER_SIZE, "%s%c%d%c", parameter, '\0',
+ value, '\0');
+ else if (cmd == ND_GET)
+ snprintf(nd_buf, ND_BUFFER_SIZE, "%s", parameter);
+ else {
+ zlog_err(
+ "internal error - inappropriate command given to "
+ "solaris_nd()%s:%d",
+ __FILE__, __LINE__);
+ return -1;
+ }
- strioctl.ic_cmd = cmd;
- strioctl.ic_timout = 0;
- strioctl.ic_len = ND_BUFFER_SIZE;
- strioctl.ic_dp = nd_buf;
-
- if ( zserv_privs.change (ZPRIVS_RAISE) )
- zlog_err ("solaris_nd: Can't raise privileges");
- if ((fd = open (device, O_RDWR)) < 0)
- {
- zlog_warn("failed to open device %s - %s", device, safe_strerror(errno));
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
- return -1;
- }
- if (ioctl (fd, I_STR, &strioctl) < 0)
- {
- int save_errno = errno;
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
- close (fd);
- zlog_warn("ioctl I_STR failed on device %s - %s",
- device, safe_strerror(save_errno));
- return -1;
- }
- close(fd);
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
-
- if (cmd == ND_GET)
- {
- errno = 0;
- retval = atoi(nd_buf);
- if (errno)
- {
- zlog_warn("failed to convert returned value to integer - %s",
- safe_strerror(errno));
- retval = -1;
- }
- }
- else
- {
- retval = 0;
- }
- return retval;
+ strioctl.ic_cmd = cmd;
+ strioctl.ic_timout = 0;
+ strioctl.ic_len = ND_BUFFER_SIZE;
+ strioctl.ic_dp = nd_buf;
+
+ if (zserv_privs.change(ZPRIVS_RAISE))
+ zlog_err("solaris_nd: Can't raise privileges");
+ if ((fd = open(device, O_RDWR)) < 0) {
+ zlog_warn("failed to open device %s - %s", device,
+ safe_strerror(errno));
+ if (zserv_privs.change(ZPRIVS_LOWER))
+ zlog_err("solaris_nd: Can't lower privileges");
+ return -1;
+ }
+ if (ioctl(fd, I_STR, &strioctl) < 0) {
+ int save_errno = errno;
+ if (zserv_privs.change(ZPRIVS_LOWER))
+ zlog_err("solaris_nd: Can't lower privileges");
+ close(fd);
+ zlog_warn("ioctl I_STR failed on device %s - %s", device,
+ safe_strerror(save_errno));
+ return -1;
+ }
+ close(fd);
+ if (zserv_privs.change(ZPRIVS_LOWER))
+ zlog_err("solaris_nd: Can't lower privileges");
+
+ if (cmd == ND_GET) {
+ errno = 0;
+ retval = atoi(nd_buf);
+ if (errno) {
+ zlog_warn(
+ "failed to convert returned value to integer - %s",
+ safe_strerror(errno));
+ retval = -1;
+ }
+ } else {
+ retval = 0;
+ }
+ return retval;
}
-static int
-solaris_nd_set(const char* parameter, const int value) {
- return solaris_nd(ND_SET, parameter, value);
+static int solaris_nd_set(const char *parameter, const int value)
+{
+ return solaris_nd(ND_SET, parameter, value);
}
-static int
-solaris_nd_get(const char* parameter) {
- return solaris_nd(ND_GET, parameter, 0);
+static int solaris_nd_get(const char *parameter)
+{
+ return solaris_nd(ND_GET, parameter, 0);
}
-int
-ipforward(void)
+int ipforward(void)
{
- return solaris_nd_get("ip_forwarding");
+ return solaris_nd_get("ip_forwarding");
}
-int
-ipforward_on (void)
+int ipforward_on(void)
{
- (void) solaris_nd_set("ip_forwarding", 1);
- return ipforward();
+ (void)solaris_nd_set("ip_forwarding", 1);
+ return ipforward();
}
-int
-ipforward_off (void)
+int ipforward_off(void)
{
- (void) solaris_nd_set("ip_forwarding", 0);
- return ipforward();
+ (void)solaris_nd_set("ip_forwarding", 0);
+ return ipforward();
}
int ipforward_ipv6(void)
{
- return solaris_nd_get("ip6_forwarding");
+ return solaris_nd_get("ip6_forwarding");
}
-int
-ipforward_ipv6_on (void)
+int ipforward_ipv6_on(void)
{
- (void) solaris_nd_set("ip6_forwarding", 1);
- return ipforward_ipv6();
+ (void)solaris_nd_set("ip6_forwarding", 1);
+ return ipforward_ipv6();
}
-int
-ipforward_ipv6_off (void)
+int ipforward_ipv6_off(void)
{
- (void) solaris_nd_set("ip6_forwarding", 0);
- return ipforward_ipv6();
+ (void)solaris_nd_set("ip6_forwarding", 0);
+ return ipforward_ipv6();
}