Browse Source

Suppress output of commands

pull/946/head
Max Lv 8 years ago
parent
commit
c35b143282
1 changed files with 19 additions and 13 deletions
  1. 32
      src/acl.c

32
src/acl.c

@ -94,20 +94,18 @@ static char *firewalld6_add_rule = "firewall-cmd --direct --passthrough ipv6
static char *firewalld6_remove_rule = "firewall-cmd --direct --passthrough ipv6 -D %s -d %s -j DROP"; static char *firewalld6_remove_rule = "firewall-cmd --direct --passthrough ipv6 -D %s -d %s -j DROP";
static int static int
run_cmd(const char *cmd)
run_cmd(const char *cmdstring)
{ {
pid_t pid; pid_t pid;
int status = 0; int status = 0;
char cmdstring[256];
if (cmd == NULL)
if (cmdstring == NULL)
return -1; return -1;
sprintf(cmdstring, "%s &> /dev/null", cmd);
if ((pid = fork()) < 0) { if ((pid = fork()) < 0) {
status = -1; status = -1;
} else if (pid == 0) { } else if (pid == 0) {
fclose(stdout);
execl("/bin/sh", "sh", "-c", cmdstring, (char *)0); execl("/bin/sh", "sh", "-c", cmdstring, (char *)0);
_exit(127); _exit(127);
} }
@ -115,6 +113,14 @@ run_cmd(const char *cmd)
return status; return status;
} }
static int
quiet_system(const char *cmd)
{
FILE *fp;
fp = popen(cmd, "r");
return pclose(fp);
}
static int static int
init_firewall() init_firewall()
{ {
@ -140,14 +146,14 @@ init_firewall()
if (mode == FIREWALLD_MODE) { if (mode == FIREWALLD_MODE) {
sprintf(cli, firewalld6_init_chain, chain_name, chain_name, chain_name); sprintf(cli, firewalld6_init_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
sprintf(cli, firewalld_init_chain, chain_name, chain_name, chain_name); sprintf(cli, firewalld_init_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
} else if (mode == IPTABLES_MODE) { } else if (mode == IPTABLES_MODE) {
sprintf(cli, ip6tables_init_chain, chain_name, chain_name, chain_name); sprintf(cli, ip6tables_init_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
sprintf(cli, iptables_init_chain, chain_name, chain_name, chain_name); sprintf(cli, iptables_init_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
} }
return ret; return ret;
@ -164,14 +170,14 @@ reset_firewall()
if (mode == IPTABLES_MODE) { if (mode == IPTABLES_MODE) {
sprintf(cli, ip6tables_remove_chain, chain_name, chain_name, chain_name); sprintf(cli, ip6tables_remove_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
sprintf(cli, iptables_remove_chain, chain_name, chain_name, chain_name); sprintf(cli, iptables_remove_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
} else if (mode == FIREWALLD_MODE) { } else if (mode == FIREWALLD_MODE) {
sprintf(cli, firewalld6_remove_chain, chain_name, chain_name, chain_name); sprintf(cli, firewalld6_remove_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
sprintf(cli, firewalld_remove_chain, chain_name, chain_name, chain_name); sprintf(cli, firewalld_remove_chain, chain_name, chain_name, chain_name);
ret |= system(cli);
ret |= quiet_system(cli);
} }
return ret; return ret;

Loading…
Cancel
Save