Minor tweaks to firewall rules processing and external command execution code.
git-svn-id: file:///home/mbr/svn/fwknop/trunk@212 510a4753-2344-4c79-9c09-4d669213fbeb
This commit is contained in:
+10
-4
@@ -153,7 +153,8 @@ run_extcmd(char *cmd, char *so_buf, char *se_buf, size_t so_buf_sz, size_t se_bu
|
||||
/* Select error - so kill the child and bail.
|
||||
*/
|
||||
kill(pid, SIGTERM);
|
||||
return(EXTCMD_SELECT_ERROR);
|
||||
retval |= EXTCMD_SELECT_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
if(selval == 0)
|
||||
@@ -161,14 +162,15 @@ run_extcmd(char *cmd, char *so_buf, char *se_buf, size_t so_buf_sz, size_t se_bu
|
||||
/* Timeout - so kill the child and bail
|
||||
*/
|
||||
kill(pid, SIGTERM);
|
||||
return(retval | EXTCMD_EXECUTION_TIMEOUT);
|
||||
retval |= EXTCMD_EXECUTION_TIMEOUT;
|
||||
break;
|
||||
}
|
||||
|
||||
/* The stdout pipe...
|
||||
*/
|
||||
bytes_read = read(so[0], so_read_buf, IO_READ_BUF_LEN);
|
||||
if(so_buf_remaining > 0)
|
||||
{
|
||||
bytes_read = read(so[0], so_read_buf, IO_READ_BUF_LEN);
|
||||
if(bytes_read > 0)
|
||||
{
|
||||
/* We have data, so process it...
|
||||
@@ -203,12 +205,14 @@ run_extcmd(char *cmd, char *so_buf, char *se_buf, size_t so_buf_sz, size_t se_bu
|
||||
so_buf_remaining = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
||||
/* The stderr pipe...
|
||||
*/
|
||||
bytes_read = read(se[0], se_read_buf, IO_READ_BUF_LEN);
|
||||
if(se_buf_remaining > 0)
|
||||
{
|
||||
bytes_read = read(se[0], se_read_buf, IO_READ_BUF_LEN);
|
||||
if(bytes_read > 0)
|
||||
{
|
||||
/* We have data, so process it...
|
||||
@@ -243,6 +247,8 @@ run_extcmd(char *cmd, char *so_buf, char *se_buf, size_t so_buf_sz, size_t se_bu
|
||||
se_buf_remaining = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
close(so[0]);
|
||||
|
||||
@@ -113,9 +113,6 @@ jump_rule_exists(int chain_num)
|
||||
|
||||
if(sscanf(line_buf, "%i %s ", &num, target) == 2)
|
||||
{
|
||||
//printf("GOT MATCH: '%s' - (pos=%i, target=%s)\n",
|
||||
// line_buf, num, target);
|
||||
|
||||
if(strcmp(target, fwc.chain[chain_num].to_chain) == 0)
|
||||
{
|
||||
pos = num;
|
||||
@@ -157,7 +154,6 @@ delete_all_chains(void)
|
||||
);
|
||||
|
||||
//printf("CMD: '%s'\n", cmd_buf);
|
||||
//system(cmd_buf);
|
||||
res = run_extcmd(cmd_buf, NULL, err, 0, 256, &status);
|
||||
/* Expect full success on this */
|
||||
if(! EXTCMD_IS_SUCCESS(res))
|
||||
@@ -177,7 +173,6 @@ delete_all_chains(void)
|
||||
);
|
||||
|
||||
//printf("CMD: '%s'\n", cmd_buf);
|
||||
//system(cmd_buf);
|
||||
res = run_extcmd(cmd_buf, NULL, err, 0, 256, &status);
|
||||
/* Expect full success on this */
|
||||
if(! EXTCMD_IS_SUCCESS(res))
|
||||
@@ -209,7 +204,6 @@ create_fw_chains(void)
|
||||
);
|
||||
|
||||
//printf("CMD: '%s'\n", cmd_buf);
|
||||
//res = system(cmd_buf);
|
||||
res = run_extcmd(cmd_buf, NULL, err, 0, 256, &status);
|
||||
/* Expect full success on this */
|
||||
if(! EXTCMD_IS_SUCCESS(res))
|
||||
@@ -229,7 +223,6 @@ create_fw_chains(void)
|
||||
);
|
||||
|
||||
//printf("CMD: '%s'\n", cmd_buf);
|
||||
//res = system(cmd_buf);
|
||||
res = run_extcmd(cmd_buf, NULL, err, 0, 256, &status);
|
||||
/* Expect full success on this */
|
||||
if(! EXTCMD_IS_SUCCESS(res))
|
||||
|
||||
Reference in New Issue
Block a user