|
Lines 1818-1823
Link Here
|
| 1818 |
} |
1818 |
} |
| 1819 |
break; |
1819 |
break; |
| 1820 |
|
1820 |
|
|
|
1821 |
case IP_FW_GETRULE: |
| 1822 |
error = sooptcopyin(sopt, &frwl, sizeof frwl, sizeof frwl); |
| 1823 |
if (error) |
| 1824 |
break; |
| 1825 |
for (fcp = LIST_FIRST(&ip_fw_chain); |
| 1826 |
fcp && fcp->rule && fcp->rule->fw_number != frwl.fw_number; |
| 1827 |
fcp = LIST_NEXT(fcp, chain)) |
| 1828 |
; /* nothing */ |
| 1829 |
|
| 1830 |
if (!(fcp || fcp->rule)) { |
| 1831 |
error = EINVAL; |
| 1832 |
break; |
| 1833 |
} |
| 1834 |
memcpy(&frwl, fcp->rule, sizeof frwl); |
| 1835 |
error = sooptcopyout(sopt, &frwl, sizeof frwl); |
| 1836 |
break; |
| 1837 |
|
| 1821 |
default: |
1838 |
default: |
| 1822 |
printf("ip_fw_ctl invalid option %d\n", sopt->sopt_name); |
1839 |
printf("ip_fw_ctl invalid option %d\n", sopt->sopt_name); |
| 1823 |
error = EINVAL ; |
1840 |
error = EINVAL ; |