Esempio n. 1
0
int
ipforward_on (void)
{
  FILE *fp;
  
  if ( zserv_privs.change(ZPRIVS_RAISE) )
  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno) );

  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;
  }

  fprintf (fp, "1\n");

  fclose (fp);

  if ( zserv_privs.change(ZPRIVS_LOWER) )
    zlog_err ("Can't lower privileges, %s", safe_strerror (errno));

  return ipforward ();
}
Esempio n. 2
0
int
ipforward_off ()
{
    FILE *fp;

    fp = fopen (proc_ipv4_forwarding, "w");

    if (fp == NULL)
        return -1;

    fprintf (fp, "0\n");

    fclose (fp);

    return ipforward ();
}