} else { $action = $service . "/DNAT"; $proto = ""; $port = ""; } $source = $_POST['source']; $destination = $_POST['destination']; if ($src_ip) { $source = $source . ':' . $src_ip; } if ($dest_port) { $destination = $destination . ":" . $dest_ip . ":" . $dest_port; } else { $destination = $destination . ":" . $dest_ip; } addRule($action, $source, $destination, $proto, $port); if (!isXMLRPCError()) { $n = new NotifyWidgetSuccess(_T("Rule added.")); handleServicesModule($n, array("shorewall" => _T("Firewall"))); header("Location: " . urlStrRedirect("shorewall/shorewall/" . $page)); exit; } else { new NotifyWidgetFailure(_T("Failed to add the rule.")); } } } else { new NotifyWidgetFailure(_T("Service must be specified.")); } } if (isset($_POST['brestart'])) { redirectTo(urlStrRedirect("shorewall/shorewall/restart_service", array("page" => $page)));
} else { $sources[] = $_POST['source']; } # Destination $destinations = array(); if ($_POST['destination'] == "all") { foreach (getShorewallZones($dst) as $zone) { $destinations[] = $zone; } } else { $destinations[] = $_POST['destination']; } # Add rules foreach ($sources as $src) { foreach ($destinations as $dst) { addRule($action, $src, $dst, $proto, $port); } } if (!isXMLRPCError()) { $n = new NotifyWidgetSuccess(_T("Rule added.")); handleServicesModule($n, array("shorewall" => _T("Firewall"))); redirectTo(urlStrRedirect("shorewall/shorewall/" . $page)); } else { new NotifyWidgetFailure(_T("Failed to add the rule.")); } } } else { new NotifyWidgetFailure(_T("Service must be specified.")); } } if (isset($_POST['brestart'])) {
if (fromPOST('destination') == "all") { foreach (getShorewallZones($dst) as $zone) { $destinations[] = $zone; } } else { $destinations[] = fromPOST('destination'); } if ($_POST['destination_ip']) { foreach ($destinations as $k => $v) { $destinations[$k] = $v . ":" . fromPOST('destination_ip'); } } # Add rules foreach ($sources as $final_src) { foreach ($destinations as $final_dst) { addRule($action, $final_src, $final_dst, $proto, $port); } } if (!isXMLRPCError()) { $n = new NotifyWidgetSuccess(_T("Rule added.")); handleServicesModule($n, array("shorewall" => _T("Firewall"))); redirectTo(urlStrRedirect("shorewall/shorewall/" . $page)); } else { $errorStatus = false; new NotifyWidgetFailure(_T("Failed to add the rule.")); } } else { new NotifyWidgetFailure(_T("Service must be specified.")); } } if (fromPOST('brestart')) {
} else { $action = $_POST['decision']; $proto = $_POST['proto']; $port = $_POST['port']; } } else { $action = $service . "/" . $_POST['decision']; $proto = ""; $port = ""; } if ($_POST['source'] == "all") { foreach (getShorewallZones($src) as $zone) { addRule($action, $zone, $dst, $proto, $port); } } else { addRule($action, $_POST['source'], $dst, $proto, $port); } if (!isXMLRPCError()) { $n = new NotifyWidgetSuccess(_T("Rule added.")); handleServicesModule($n, array("shorewall" => _T("Firewall"))); header("Location: " . urlStrRedirect("shorewall/shorewall/" . $page)); exit; } else { new NotifyWidgetFailure(_T("Failed to add the rule.")); } } } else { new NotifyWidgetFailure(_T("Service must be specified.")); } } // Display policy form