From bc9e939a4cdb160c22809cd3b66dba67b8a6472a Mon Sep 17 00:00:00 2001 From: Christian Mauderer Date: Thu, 4 Aug 2016 13:20:04 +0200 Subject: pf: Add configuration via rc.conf. --- testsuite/rcconf02/test_main.c | 43 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'testsuite/rcconf02') diff --git a/testsuite/rcconf02/test_main.c b/testsuite/rcconf02/test_main.c index 735e5554..498621f2 100644 --- a/testsuite/rcconf02/test_main.c +++ b/testsuite/rcconf02/test_main.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -122,7 +123,39 @@ static const char* rc_conf_text = \ "\n" \ "ftpd_enable=\"YES\"\n" \ "ftpd_options=\"-v -p 21 -C 10 -P 150 -L -I 10 -R /\"\n" \ - "n"; + "\n" \ + "pf_enable=\"YES\"\n" \ + "pf_rules=\"/etc/mypf.conf\"\n" \ + "pf_flags=\"-q -z\"\n" \ + "\n"; + +static const char* pf_conf_text = "pass all\n"; +static const char* pf_os_text = "# empty\n"; + +static void +prepare_files(void) +{ + size_t len; + size_t written; + int fd; + int rv; + + len = strlen(pf_conf_text); + fd = open("/etc/mypf.conf", O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO); + assert(fd != -1); + written = write(fd, pf_conf_text, len); + assert(written == len); + rv = close(fd); + assert(rv == 0); + + len = strlen(pf_os_text); + fd = open("/etc/pf.os", O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO); + assert(fd != -1); + written = write(fd, pf_os_text, len); + assert(written == len); + rv = close(fd); + assert(rv == 0); +} static void test_rc_conf_script(void) @@ -133,6 +166,9 @@ test_rc_conf_script(void) const char* netstat_args[] = { "netstat", "-rn", NULL }; + const char* pfctl_args[] = { + "pfctl", "-s", "rules", NULL + }; printf("--------------- rc.conf -----------------\n"); printf(rc_conf_text); @@ -144,6 +180,8 @@ test_rc_conf_script(void) rtems_bsd_command_ifconfig(1, (char**) ifconfg_args); printf("-------------- NETSTAT ------------------\n"); rtems_bsd_command_netstat(2, (char**) netstat_args); + printf("-------------- PFCTL --------------------\n"); + rtems_bsd_command_pfctl(RTEMS_BSD_ARGC(pfctl_args), (char **) pfctl_args); printf("-----------------------------------------\n"); } @@ -181,6 +219,7 @@ shell(void) static void test_main(void) { + prepare_files(); test_rc_conf_script(); shell(); exit(0); @@ -201,6 +240,7 @@ test_main(void) &rtems_shell_NETSTAT_Command, \ &rtems_shell_IFCONFIG_Command, \ &rtems_shell_TCPDUMP_Command, \ + &rtems_shell_PFCTL_Command, \ &rtems_shell_SYSCTL_Command #define CONFIGURE_SHELL_COMMAND_CPUUSE @@ -229,6 +269,7 @@ test_main(void) #define RTEMS_BSD_CONFIG_SERVICE_TELNETD #define RTEMS_BSD_CONFIG_TELNETD_STACK_SIZE (16 * 1024) #define RTEMS_BSD_CONFIG_SERVICE_FTPD +#define RTEMS_BSD_CONFIG_FIREWALL_PF #define CONFIGURE_MAXIMUM_DRIVERS 32 -- cgit v1.2.3