diff options
Diffstat (limited to 'zebra/ipforward_proc.c')
| -rw-r--r-- | zebra/ipforward_proc.c | 213 | 
1 files changed, 105 insertions, 108 deletions
diff --git a/zebra/ipforward_proc.c b/zebra/ipforward_proc.c index 200c50c0ad..c3dcdda55f 100644 --- a/zebra/ipforward_proc.c +++ b/zebra/ipforward_proc.c @@ -30,169 +30,166 @@ extern struct zebra_privs_t zserv_privs;  char proc_net_snmp[] = "/proc/net/snmp"; -static void -dropline (FILE *fp) +static void dropline(FILE *fp)  { -  int c; +	int c; -  while ((c = getc (fp)) != '\n') -    ; +	while ((c = getc(fp)) != '\n') +		;  } -int -ipforward (void) +int ipforward(void)  { -  FILE *fp; -  int ipforwarding = 0; -  char buf[10]; - -  fp = fopen (proc_net_snmp, "r"); - -  if (fp == NULL) -    return -1; - -  /* We don't care about the first line. */ -  dropline (fp); -   -  /* Get ip_statistics.IpForwarding :  -     1 => ip forwarding enabled  -     2 => ip forwarding off. */ -  if (fgets (buf, 6, fp)) -    sscanf (buf, "Ip: %d", &ipforwarding); - -  fclose(fp); -   -  if (ipforwarding == 1) -    return 1; - -  return 0; +	FILE *fp; +	int ipforwarding = 0; +	char buf[10]; + +	fp = fopen(proc_net_snmp, "r"); + +	if (fp == NULL) +		return -1; + +	/* We don't care about the first line. */ +	dropline(fp); + +	/* Get ip_statistics.IpForwarding : +	   1 => ip forwarding enabled +	   2 => ip forwarding off. */ +	if (fgets(buf, 6, fp)) +		sscanf(buf, "Ip: %d", &ipforwarding); + +	fclose(fp); + +	if (ipforwarding == 1) +		return 1; + +	return 0;  }  /* char proc_ipv4_forwarding[] = "/proc/sys/net/ipv4/conf/all/forwarding"; */  char proc_ipv4_forwarding[] = "/proc/sys/net/ipv4/ip_forward"; -int -ipforward_on (void) +int ipforward_on(void)  { -  FILE *fp; -   -  if ( zserv_privs.change(ZPRIVS_RAISE) ) -  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno) ); +	FILE *fp; + +	if (zserv_privs.change(ZPRIVS_RAISE)) +		zlog_err("Can't raise privileges, %s", safe_strerror(errno)); -  fp = fopen (proc_ipv4_forwarding, "w"); +	fp = fopen(proc_ipv4_forwarding, "w"); -  if (fp == NULL) { -    if ( zserv_privs.change(ZPRIVS_LOWER) ) -      zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); -    return -1; -  } +	if (fp == NULL) { +		if (zserv_privs.change(ZPRIVS_LOWER)) +			zlog_err("Can't lower privileges, %s", +				 safe_strerror(errno)); +		return -1; +	} -  fprintf (fp, "1\n"); +	fprintf(fp, "1\n"); -  fclose (fp); +	fclose(fp); -  if ( zserv_privs.change(ZPRIVS_LOWER) ) -    zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_LOWER)) +		zlog_err("Can't lower privileges, %s", safe_strerror(errno)); -  return ipforward (); +	return ipforward();  } -int -ipforward_off (void) +int ipforward_off(void)  { -  FILE *fp; +	FILE *fp; -  if ( zserv_privs.change(ZPRIVS_RAISE) ) -  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_RAISE)) +		zlog_err("Can't raise privileges, %s", safe_strerror(errno)); -  fp = fopen (proc_ipv4_forwarding, "w"); +	fp = fopen(proc_ipv4_forwarding, "w"); -  if (fp == NULL) { -    if ( zserv_privs.change(ZPRIVS_LOWER) ) -      zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); -    return -1; -  } +	if (fp == NULL) { +		if (zserv_privs.change(ZPRIVS_LOWER)) +			zlog_err("Can't lower privileges, %s", +				 safe_strerror(errno)); +		return -1; +	} -  fprintf (fp, "0\n"); +	fprintf(fp, "0\n"); -  fclose (fp); +	fclose(fp); -  if ( zserv_privs.change(ZPRIVS_LOWER) ) -    zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_LOWER)) +		zlog_err("Can't lower privileges, %s", safe_strerror(errno)); -  return ipforward (); +	return ipforward();  }  char proc_ipv6_forwarding[] = "/proc/sys/net/ipv6/conf/all/forwarding"; -int -ipforward_ipv6 (void) +int ipforward_ipv6(void)  { -  FILE *fp; -  char buf[5]; -  int ipforwarding = 0; +	FILE *fp; +	char buf[5]; +	int ipforwarding = 0; -  fp = fopen (proc_ipv6_forwarding, "r"); +	fp = fopen(proc_ipv6_forwarding, "r"); -  if (fp == NULL) -    return -1; +	if (fp == NULL) +		return -1; -  if (fgets (buf, 2, fp)) -    sscanf (buf, "%d", &ipforwarding); +	if (fgets(buf, 2, fp)) +		sscanf(buf, "%d", &ipforwarding); -  fclose (fp); -  return ipforwarding; +	fclose(fp); +	return ipforwarding;  } -int -ipforward_ipv6_on (void) +int ipforward_ipv6_on(void)  { -  FILE *fp; +	FILE *fp; -  if ( zserv_privs.change(ZPRIVS_RAISE) ) -       zlog_err ("Can't raise privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_RAISE)) +		zlog_err("Can't raise privileges, %s", safe_strerror(errno)); -  fp = fopen (proc_ipv6_forwarding, "w"); +	fp = fopen(proc_ipv6_forwarding, "w"); -  if (fp == NULL) { -    if ( zserv_privs.change(ZPRIVS_LOWER) ) -      zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); -    return -1; -  } +	if (fp == NULL) { +		if (zserv_privs.change(ZPRIVS_LOWER)) +			zlog_err("Can't lower privileges, %s", +				 safe_strerror(errno)); +		return -1; +	} -  fprintf (fp, "1\n"); +	fprintf(fp, "1\n"); -  fclose (fp); +	fclose(fp); -  if ( zserv_privs.change(ZPRIVS_LOWER) ) -    zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_LOWER)) +		zlog_err("Can't lower privileges, %s", safe_strerror(errno)); -  return ipforward_ipv6 (); +	return ipforward_ipv6();  } -int -ipforward_ipv6_off (void) +int ipforward_ipv6_off(void)  { -  FILE *fp; +	FILE *fp; -  if ( zserv_privs.change(ZPRIVS_RAISE) ) -       zlog_err ("Can't raise privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_RAISE)) +		zlog_err("Can't raise privileges, %s", safe_strerror(errno)); -  fp = fopen (proc_ipv6_forwarding, "w"); +	fp = fopen(proc_ipv6_forwarding, "w"); -  if (fp == NULL) { -    if ( zserv_privs.change(ZPRIVS_LOWER) ) -      zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); -    return -1; -  } +	if (fp == NULL) { +		if (zserv_privs.change(ZPRIVS_LOWER)) +			zlog_err("Can't lower privileges, %s", +				 safe_strerror(errno)); +		return -1; +	} -  fprintf (fp, "0\n"); +	fprintf(fp, "0\n"); -  fclose (fp); +	fclose(fp); -  if ( zserv_privs.change(ZPRIVS_LOWER) ) -    zlog_err ("Can't lower privileges, %s", safe_strerror (errno)); +	if (zserv_privs.change(ZPRIVS_LOWER)) +		zlog_err("Can't lower privileges, %s", safe_strerror(errno)); -  return ipforward_ipv6 (); +	return ipforward_ipv6();  }  | 
