summaryrefslogtreecommitdiffstats
path: root/usr/local
diff options
context:
space:
mode:
Diffstat (limited to 'usr/local')
-rwxr-xr-xusr/local/bin/ping_hosts.sh4
-rw-r--r--usr/local/share/locale/en/LC_MESSAGES/pfSense.pot2
-rw-r--r--usr/local/share/locale/ja/LC_MESSAGES/pfSense.po2
-rw-r--r--usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po2
-rw-r--r--usr/local/share/locale/tr/LC_MESSAGES/pfSense.po2
-rw-r--r--usr/local/www/diag_confbak.php2
-rw-r--r--usr/local/www/diag_ipsec.php169
-rw-r--r--usr/local/www/diag_logs_filter.php4
-rw-r--r--usr/local/www/diag_logs_ipsec.php42
-rw-r--r--usr/local/www/diag_nanobsd.php5
-rw-r--r--usr/local/www/diag_states_summary.php20
-rw-r--r--usr/local/www/filebrowser/browser.php57
-rwxr-xr-xusr/local/www/firewall_aliases_edit.php4
-rwxr-xr-xusr/local/www/firewall_aliases_import.php93
-rw-r--r--usr/local/www/firewall_nat_out.php4
-rw-r--r--usr/local/www/firewall_virtual_ip_edit.php19
-rw-r--r--usr/local/www/interfaces.php4
-rw-r--r--usr/local/www/interfaces_assign.php432
-rw-r--r--usr/local/www/javascript/jquery.js4
-rw-r--r--usr/local/www/javascript/row_toggle.js39
-rw-r--r--usr/local/www/services_igmpproxy_edit.php4
-rwxr-xr-xusr/local/www/status.php2
-rw-r--r--usr/local/www/status_interfaces.php110
-rw-r--r--usr/local/www/themes/code-red/all.css7
-rw-r--r--usr/local/www/themes/metallic/all.css8
-rw-r--r--usr/local/www/themes/nervecenter/all.css7
-rw-r--r--usr/local/www/themes/pfsense_ng/all.css7
-rw-r--r--usr/local/www/themes/pfsense_ng_fs/all.css7
-rw-r--r--usr/local/www/themes/the_wall/all.css7
-rw-r--r--usr/local/www/vpn_ipsec.php650
-rw-r--r--usr/local/www/vpn_ipsec_phase2.php2
-rw-r--r--usr/local/www/widgets/widgets/gateways.widget.php46
-rw-r--r--usr/local/www/widgets/widgets/interfaces.widget.php36
-rw-r--r--usr/local/www/widgets/widgets/ipsec.widget.php29
-rw-r--r--usr/local/www/widgets/widgets/traffic_graphs.widget.php16
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_dedicated.xml480
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_multi_all.xml448
-rwxr-xr-xusr/local/www/xmlrpc.php8
38 files changed, 1852 insertions, 932 deletions
diff --git a/usr/local/bin/ping_hosts.sh b/usr/local/bin/ping_hosts.sh
index 30782b8..7126c99 100755
--- a/usr/local/bin/ping_hosts.sh
+++ b/usr/local/bin/ping_hosts.sh
@@ -85,23 +85,23 @@ for TOPING in $PINGHOSTS ; do
# Host is up
if [ "$PREVIOUSSTATUS" != "UP" ]; then
# Service restored
+ echo "UP" > /var/db/pingstatus/$DSTIP
if [ "$SERVICERESTOREDSCRIPT" != "" ]; then
echo "$DSTIP is UP, previous state was DOWN .. Running $SERVICERESTOREDSCRIPT"
echo "$DSTIP is UP, previous state was DOWN .. Running $SERVICERESTOREDSCRIPT" | logger -p daemon.info -i -t PingMonitor
sh -c $SERVICERESTOREDSCRIPT
fi
- echo "UP" > /var/db/pingstatus/$DSTIP
fi
else
# Host is down
if [ "$PREVIOUSSTATUS" != "DOWN" ]; then
# Service is down
+ echo "DOWN" > /var/db/pingstatus/$DSTIP
if [ "$FAILURESCRIPT" != "" ]; then
echo "$DSTIP is DOWN, previous state was UP .. Running $FAILURESCRIPT"
echo "$DSTIP is DOWN, previous state was UP .. Running $FAILURESCRIPT" | logger -p daemon.info -i -t PingMonitor
sh -c $FAILURESCRIPT
fi
- echo "DOWN" > /var/db/pingstatus/$DSTIP
fi
fi
echo "Checking ping time $DSTIP"
diff --git a/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot b/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
index a49e8f6..6c078b4 100644
--- a/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
+++ b/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
@@ -35128,7 +35128,7 @@ msgstr ""
#: usr/local/www/services_igmpproxy_edit.php:213
msgid ""
"Defines the TTL threshold for the network interface. Packets with a "
-"lower TTL than the threshols value will be ignored. This setting is "
+"lower TTL than the threshold value will be ignored. This setting is "
"optional, and by default the threshold is 1."
msgstr ""
diff --git a/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po b/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
index 21d02f3..2160422 100644
--- a/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
+++ b/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
@@ -35138,7 +35138,7 @@ msgstr "しきい値"
#: usr/local/www/services_igmpproxy_edit.php:213
msgid ""
"Defines the TTL threshold for the network interface. Packets with a "
-"lower TTL than the threshols value will be ignored. This setting is "
+"lower TTL than the threshold value will be ignored. This setting is "
"optional, and by default the threshold is 1."
msgstr "「ネットワーク·インタフェースのTTLしきい値を定義します。持つパケット」 threshols値よりも低いTTLは無視されます。この設定は、 「オプションで、デフォルトでは、しきい値は1です。"
diff --git a/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po b/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
index f3c8b02..0fbea14 100644
--- a/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
+++ b/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
@@ -29655,7 +29655,7 @@ msgstr "Threshold"
#: usr/local/www/services_igmpproxy_edit.php:211
#: usr/local/www/services_igmpproxy_edit.php:213
-msgid "Defines the TTL threshold for the network interface. Packets with a lower TTL than the threshols value will be ignored. This setting is optional, and by default the threshold is 1."
+msgid "Defines the TTL threshold for the network interface. Packets with a lower TTL than the threshold value will be ignored. This setting is optional, and by default the threshold is 1."
msgstr "Define o threshold TTL para a interface de rede. Pacotes com um TTL mais baixo que os valores de thresholds sero ignorados. Essa configurao opcional e, por padro, o threshold 1."
#: usr/local/www/services_igmpproxy_edit.php:218
diff --git a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po b/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
index 37763b2..8c70885 100644
--- a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
+++ b/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
@@ -31167,7 +31167,7 @@ msgstr "Eşik"
#: usr/local/www/services_igmpproxy_edit.php:213
msgid ""
"Defines the TTL threshold for the network interface. Packets with a "
-"lower TTL than the threshols value will be ignored. This setting is "
+"lower TTL than the threshold value will be ignored. This setting is "
"optional, and by default the threshold is 1."
msgstr ""
"Ağ arabiriminin TTL eşiğini tanımlar. Belirtilen eşiğin altında TTLsi olan "
diff --git a/usr/local/www/diag_confbak.php b/usr/local/www/diag_confbak.php
index 5fd6796..4d631a3 100644
--- a/usr/local/www/diag_confbak.php
+++ b/usr/local/www/diag_confbak.php
@@ -210,7 +210,7 @@ include("head.inc");
<?php if (is_array($confvers)): ?>
<tr>
<td colspan="7" class="list">
- <?= gettext("To view the differences between an older configuration and a newer configuration, select the older configuration using the left column of radio options and select the newer configuration in the right colomn, then press the Diff button."); ?>
+ <?= gettext("To view the differences between an older configuration and a newer configuration, select the older configuration using the left column of radio options and select the newer configuration in the right column, then press the Diff button."); ?>
<br /><br />
</td>
</tr>
diff --git a/usr/local/www/diag_ipsec.php b/usr/local/www/diag_ipsec.php
index 33b0c85..1317e51 100644
--- a/usr/local/www/diag_ipsec.php
+++ b/usr/local/www/diag_ipsec.php
@@ -59,20 +59,22 @@ if ($_GET['act'] == 'connect') {
}
} else if ($_GET['act'] == 'ikedisconnect') {
if (ctype_digit($_GET['ikeid'])) {
- mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid']));
+ if (!empty($_GET['ikesaid']) && ctype_digit($_GET['ikesaid']))
+ mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid']) . "[" . escapeshellarg($_GET['ikesaid']) . "]");
+ else
+ mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid']));
}
-} else if ($_GET['act'] == 'disconnect') {
- if (!empty($_GET['user'])) {
- ipsec_disconnect_mobile($_GET['user']);
- sleep(1);
- $savemsg = gettext("Disconnected user") . " " . $_GET['user'];
+} else if ($_GET['act'] == 'childdisconnect') {
+ if (ctype_digit($_GET['ikeid'])) {
+ if (!empty($_GET['ikesaid']) && ctype_digit($_GET['ikesaid']))
+ mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid']) . "{" . escapeshellarg($_GET['ikesaid']) . "}");
}
}
-if (!is_array($config['ipsec']['phase2']))
- $config['ipsec']['phase2'] = array();
+if (!is_array($config['ipsec']['phase1']))
+ $config['ipsec']['phase1'] = array();
-$a_phase2 = &$config['ipsec']['phase2'];
+$a_phase1 = &$config['ipsec']['phase1'];
$status = ipsec_smp_dump_status();
@@ -106,14 +108,19 @@ $status = ipsec_smp_dump_status();
<th class="listhdrr nowrap"><?php echo gettext("Remote ID");?></th>
<th class="listhdrr nowrap"><?php echo gettext("Remote IP");?></th>
<th class="listhdrr nowrap"><?php echo gettext("Role");?></th>
+ <th class="listhdrr nowrap"><?php echo gettext("Reauth");?></th>
<th class="listhdrr nowrap"><?php echo gettext("Status");?></th>
<td class="list nowrap"></td>
</tr>
</thead>
<tbody>
<?php
+ $ipsecconnected = array();
if (is_array($status['query']) && is_array($status['query']['ikesalist']) && is_array($status['query']['ikesalist']['ikesa'])) {
foreach ($status['query']['ikesalist']['ikesa'] as $ikeid => $ikesa) {
+ $con_id = substr($ikesa['peerconfig'], 3);
+ $ipsecconnected[$con_id] = $con_id;
+
if (ipsec_phase1_status($status['query']['ikesalist']['ikesa'], $ikesa['id'])) {
$icon = "pass";
} elseif(!isset($config['ipsec']['enable'])) {
@@ -124,15 +131,18 @@ $status = ipsec_smp_dump_status();
?>
<tr>
<td class="listlr">
- <?php echo "({$ikesa['id']}) " . htmlspecialchars(ipsec_get_descr($ikesa['id']));?>
+ <?php echo htmlspecialchars(ipsec_get_descr($con_id));?>
</td>
<td class="listr">
<?php if (!is_array($ikesa['local']))
echo "Unknown";
else {
- if (!empty($ikesa['local']['identification']))
- echo htmlspecialchars($ikesa['local']['identification']);
- else
+ if (!empty($ikesa['local']['identification'])) {
+ if ($ikesa['local']['identification'] == '%any')
+ echo 'Any identifier';
+ else
+ echo htmlspecialchars($ikesa['local']['identification']);
+ } else
echo 'Unknown';
}
?>
@@ -154,10 +164,17 @@ $status = ipsec_smp_dump_status();
<?php if (!is_array($ikesa['remote']))
echo "Unknown";
else {
- if (!empty($ikesa['remote']['identification']))
- echo htmlspecialchars($ikesa['remote']['identification']);
- else
+ if (!empty($ikesa['remote']['identification'])) {
+ if ($ikesa['remote']['identification'] == '%any')
+ echo 'Any identifier';
+ else
+ echo htmlspecialchars($ikesa['remote']['identification']);
+ } else
echo 'Unknown';
+
+ if (is_array($ikesa['remote']['auth']) && !empty($ikesa['remote']['auth']['identity'])) {
+ echo "<br/> {$ikesa['remote']['auth']['identity']}";
+ }
}
?>
</td>
@@ -178,6 +195,9 @@ $status = ipsec_smp_dump_status();
<?php echo htmlspecialchars($ikesa['role']);?>
</td>
<td class="listr">
+ <?php echo htmlspecialchars($ikesa['reauth']);?>
+ </td>
+ <td class="listr">
<center>
<img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_<?php echo $icon; ?>.gif" title="<?php echo $ikesa['status']; ?>" alt=""/>
<br/><?php echo htmlspecialchars($ikesa['status']);?>
@@ -186,15 +206,18 @@ $status = ipsec_smp_dump_status();
<td >
<?php if ($icon != "pass"): ?>
<center>
- <a href="diag_ipsec.php?act=connect&amp;ikeid=<?php echo $ikesa['id']; ?>">
+ <a href="diag_ipsec.php?act=connect&amp;ikeid=<?php echo $con_id; ?>">
<img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_service_start.gif" alt="Connect VPN" title="Connect VPN" border="0"/>
</a>
</center>
<?php else: ?>
<center>
- <a href="diag_ipsec.php?act=ikedisconnect&amp;ikeid=<?php echo $ikesa['id']; ?>">
+ <a href="diag_ipsec.php?act=ikedisconnect&amp;ikeid=<?php echo $con_id; ?>">
<img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_service_stop.gif" alt="Disconnect VPN" title="Disconnect VPN" border="0"/>
</a>
+ <a href="diag_ipsec.php?act=ikedisconnect&amp;ikeid=<?php echo $con_id; ?>&amp;ikesaid=<?php echo $ikesa['id']; ?>">
+ <img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif" alt="Disconnect VPN Connection" title="Disconnect VPN Connection" border="0"/>
+ </a>
</center>
<?php endif; ?>
</td>
@@ -205,7 +228,7 @@ $status = ipsec_smp_dump_status();
</tr>
<?php if (is_array($ikesa['childsalist'])): ?>
<tr>
- <td class="listrborder" colspan="7">
+ <td class="listrborder" colspan="8">
<div id="btnchildsa-<?=$ikeid;?>">
<input type="button" onclick="show_childsa('childsa-<?=$ikeid;?>','btnchildsa-<?=$ikeid;?>');" value="+" /> - Show child SA entries
</div>
@@ -216,6 +239,9 @@ $status = ipsec_smp_dump_status();
<th class="listhdrr nowrap"><?php echo gettext("Local SPI");?></th>
<th class="listhdrr nowrap"><?php echo gettext("Remote SPI");?></th>
<th class="listhdrr nowrap"><?php echo gettext("Remote subnets");?></th>
+ <th class="listhdrr nowrap"><?php echo gettext("Rekey");?></th>
+ <th class="listhdrr nowrap"><?php echo gettext("Algo");?></th>
+ <th class="listhdrr nowrap"><?php echo gettext("Stats");?></th>
</tr>
</thead>
<tbody>
@@ -227,7 +253,7 @@ $status = ipsec_smp_dump_status();
<td class="listlr nowrap">
<?php if (is_array($childsa['local']) && is_array($childsa['local']['networks']) && is_array($childsa['local']['networks']['network'])) {
foreach ($childsa['local']['networks']['network'] as $lnets) {
- echo htmlspecialchars($lnets) . "<br />";
+ echo htmlspecialchars(ipsec_fixup_network($lnets)) . "<br />";
}
} else
echo "Unknown";
@@ -246,12 +272,41 @@ $status = ipsec_smp_dump_status();
<td class="listr nowrap">
<?php if (is_array($childsa['remote']) && is_array($childsa['remote']['networks']) && is_array($childsa['remote']['networks']['network'])) {
foreach ($childsa['remote']['networks']['network'] as $rnets) {
- echo htmlspecialchars($rnets) . "<br />";
+ echo htmlspecialchars(ipsec_fixup_network($rnets)) . "<br />";
}
} else
echo "Unknown";
?>
</td>
+ <td class="listr nowrap">
+ <?php echo htmlspecialchars($childsa['rekey']); ?>
+ </td>
+ <td class="listr nowrap">
+ <?php
+ echo htmlspecialchars($childsa['encalg']);
+ echo "<br/>";
+ echo htmlspecialchars($childsa['intalg']);
+ echo "<br/>";
+ if (!empty($childsa['esn']))
+ echo htmlspecialchars($childsa['rekey']);
+ ?>
+ </td>
+ <td class="listr nowrap">
+ <?php
+ echo "IPComp: " . htmlspecialchars($childsa['ipcomp']);
+ echo "<br/>";
+ echo "Bytes-In: " . htmlspecialchars($childsa['bytesin']) . "/Packets-In: " . htmlspecialchars($childsa['packetsin']);;
+ echo "<br/>";
+ echo "Bytes-Out: " . htmlspecialchars($childsa['bytesout']) . "/Packets-Out: " . htmlspecialchars($childsa['packetsout']);;
+ ?>
+ </td>
+ <td class="listr nowrap">
+ <center>
+ <a href="diag_ipsec.php?act=childdisconnect&amp;ikeid=<?php echo $con_id; ?>&amp;ikesaid=<?php echo $childsa['reqid']; ?>">
+ <img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif" alt="Disconnect Child SA" title="Disconnect Child SA" border="0"/>
+ </a>
+ </center>
+ </td>
<td class="list nowrap">
&nbsp;
</td>
@@ -263,8 +318,80 @@ $status = ipsec_smp_dump_status();
</td>
</tr>
<?php endif;
+
+ unset($con_id);
}
}
+
+ $rgmap = array();
+ foreach ($a_phase1 as $ph1ent):
+ $rgmap[$ph1ent['remote-gateway']] = $ph1ent['remote-gateway'];
+ if ($ipsecconnected[$ph1ent['ikeid']])
+ continue;
+?>
+ <tr>
+ <td class="listlr">
+ <?php echo htmlspecialchars($ph1ent['descr']);?>
+ </td>
+ <td class="listr">
+ <?php
+ list ($myid_type, $myid_data) = ipsec_find_id($ph1ent, "local");
+ if (empty($myid_data))
+ echo "Unknown";
+ else
+ echo htmlspecialchars($myid_data);
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ $ph1src = ipsec_get_phase1_src($ph1ent);
+ if (empty($ph1src))
+ echo "Unknown";
+ else
+ echo htmlspecialchars($ph1src);
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ list ($peerid_type, $peerid_data) = ipsec_find_id($ph1ent, "peer", $rgmap);
+ if (empty($peerid_data))
+ echo "Unknown";
+ else
+ echo htmlspecialchars($peerid_data);
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ $ph1src = ipsec_get_phase1_dst($ph1ent);
+ if (empty($ph1src))
+ echo "Unknown";
+ else
+ echo htmlspecialchars($ph1src);
+ ?>
+ </td>
+ <td class="listr">
+ </td>
+ <td class="listr">
+ <center>
+ <img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_reject.gif" title="Disconnected" alt=""/>
+ <br/>Disconnected
+ </center>
+ </td>
+ <td >
+ <center>
+ <a href="diag_ipsec.php?act=connect&amp;ikeid=<?php echo $ph1ent['ikeid']; ?>">
+ <img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_service_start.gif" alt="Connect VPN" title="Connect VPN" border="0"/>
+ </a>
+ </center>
+ </td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="">
+ </table>
+ </td>
+ </tr>
+<?php
+ endforeach;
+ unset($ipsecconnected, $phase1, $rgmap);
?>
<tr style="display:none;"><td></td></tr>
</tbody>
diff --git a/usr/local/www/diag_logs_filter.php b/usr/local/www/diag_logs_filter.php
index d12ad43..5595fc6 100644
--- a/usr/local/www/diag_logs_filter.php
+++ b/usr/local/www/diag_logs_filter.php
@@ -91,9 +91,8 @@ if ($filterlogentries_submit) {
$actpass = getGETPOSTsettingvalue('actpass', null);
$actblock = getGETPOSTsettingvalue('actblock', null);
- $actreject = getGETPOSTsettingvalue('actreject', null);
- $filterfieldsarray['act'] = str_replace(" ", " ", trim($actpass . " " . $actblock . " " . $actreject));
+ $filterfieldsarray['act'] = str_replace(" ", " ", trim($actpass . " " . $actblock));
$filterfieldsarray['act'] = $filterfieldsarray['act'] != "" ? $filterfieldsarray['act'] : 'All';
$filterfieldsarray['time'] = getGETPOSTsettingvalue('filterlogentries_time', null);
$filterfieldsarray['interface'] = getGETPOSTsettingvalue('filterlogentries_interfaces', null);
@@ -175,7 +174,6 @@ include("head.inc");
<div align="left">
<input id="actpass" name="actpass" type="checkbox" value="Pass" <?php if (in_arrayi('Pass', $Include_Act)) echo "checked=\"checked\""; ?> /> Pass<br />
<input id="actblock" name="actblock" type="checkbox" value="Block" <?php if (in_arrayi('Block', $Include_Act)) echo "checked=\"checked\""; ?> /> Block<br />
- <input id="actreject" name="actreject" type="checkbox" value="Reject" <?php if (in_arrayi('Reject', $Include_Act)) echo "checked=\"checked\""; ?> /> Reject<br />
</div>
</td>
<td>
diff --git a/usr/local/www/diag_logs_ipsec.php b/usr/local/www/diag_logs_ipsec.php
index 7add782..79b63a9 100644
--- a/usr/local/www/diag_logs_ipsec.php
+++ b/usr/local/www/diag_logs_ipsec.php
@@ -48,37 +48,6 @@ require("ipsec.inc");
$ipsec_logfile = "{$g['varlog_path']}/ipsec.log";
-/* Create array with all IPsec tunnel descriptions */
-$search = array();
-$replace = array();
-if(is_array($config['ipsec']['phase1']))
- foreach($config['ipsec']['phase1'] as $ph1ent) {
- $gateway = ipsec_get_phase1_dst($ph1ent);
- if(!is_ipaddr($gateway))
- continue;
- $search[] = "/(racoon: )(INFO[:].*?)({$gateway}\[[0-9].+\]|{$gateway})(.*)/i";
- $search[] = "/(racoon: )(\[{$gateway}\]|{$gateway})(.*)/i";
- $replace[] = "$1<strong>[{$ph1ent['descr']}]</strong>: $2$3$4";
- $replace[] = "$1<strong>[{$ph1ent['descr']}]</strong>: $2$3$4";
- }
-/* collect all our own ip addresses */
-exec("/sbin/ifconfig | /usr/bin/awk '/inet/ {print $2}'", $ip_address_list);
-foreach($ip_address_list as $address) {
- $search[] = "/(racoon: )(INFO[:].*?)({$address}\[[0-9].+\])/i";
- $search[] = "/(racoon: )(\[{$address}\]|{$address})(.*)/i";
- $replace[] = "$1<strong>[Self]</strong>: $2$3$4";
- $replace[] = "$1<strong>[Self]</strong>: $2$3$4";
-}
-
-$search[] = "/(time up waiting for phase1)/i";
-$search[] = "/(failed to pre-process ph1 packet)/i";
-$search[] = "/(failed to pre-process ph2 packet)/i";
-$search[] = "/(no proposal chosen)/i";
-$replace[] = "$1 <strong>[Remote Side not responding]</strong>";
-$replace[] = "$1 <strong>[Check Phase 1 settings, lifetime, algorithm]</strong>";
-$replace[] = "$1 <strong>[Check Phase 2 settings, networks]</strong>";
-$replace[] = "$1 <strong>[Check Phase 2 settings, algorithm]</strong>";
-
$nentries = $config['syslog']['nentries'];
if (!$nentries)
$nentries = 50;
@@ -125,17 +94,6 @@ include("head.inc");
<?php
foreach($ipsec_logarr as $logent){
$logent = htmlspecialchars($logent);
- foreach($search as $string) {
- if(preg_match($string, $logent))
- $match = true;
- }
- if(isset($match)) {
- $logent = preg_replace($search, $replace, $logent);
- } else {
- $searchs = "/(racoon: )([A-Z:].*?)([0-9].+\.[0-9].+.[0-9].+.[0-9].+\[[0-9].+\])(.*)/i";
- $replaces = "$1<strong><font color=\"red\">[".gettext("Unknown Gateway/Dynamic")."]</font></strong>: $2$3$4";
- $logent = preg_replace($searchs, $replaces, $logent);
- }
$logent = preg_split("/\s+/", $logent, 6);
echo "<tr valign=\"top\">\n";
$entry_date_time = htmlspecialchars(join(" ", array_slice($logent, 0, 3)));
diff --git a/usr/local/www/diag_nanobsd.php b/usr/local/www/diag_nanobsd.php
index 2d5998a..61bcfa7 100644
--- a/usr/local/www/diag_nanobsd.php
+++ b/usr/local/www/diag_nanobsd.php
@@ -217,12 +217,11 @@ if ($savemsg)
</select>
<br />
<?=gettext("This will duplicate the bootup slice to the alternate slice. Use this if you would like to duplicate the known good working boot partition to the alternate.");?>
+ <br /><input type='submit' name='duplicateslice' value='<?php echo gettext("Duplicate slice") ?>'>
+ </form>
</td>
</tr>
<tr>
- <td valign="top" class="">&nbsp;</td><td><br /><input type='submit' value='Duplicate slice'></form></td>
- </tr>
- <tr>
<td colspan="2" valign="top" class="">&nbsp;</td>
</tr>
<tr>
diff --git a/usr/local/www/diag_states_summary.php b/usr/local/www/diag_states_summary.php
index 9259912..3c5e297 100644
--- a/usr/local/www/diag_states_summary.php
+++ b/usr/local/www/diag_states_summary.php
@@ -1,7 +1,7 @@
<?php
/*
diag_states_summary.php
- Copyright (C) 2010 Jim Pingle
+ Copyright (C) 2010-2014 Jim Pingle
Portions borrowed from diag_dump_states.php:
Copyright (C) 2005-2009 Scott Ullrich
@@ -64,11 +64,21 @@ $row = 0;
if(count($states) > 0) {
foreach($states as $line) {
$line_split = preg_split("/\s+/", $line);
- $type = array_shift($line_split);
+ $iface = array_shift($line_split);
$proto = array_shift($line_split);
$state = array_pop($line_split);
$info = implode(" ", $line_split);
+ /* Handle NAT cases
+ Replaces an external IP + NAT by the internal IP */
+ if (strpos($info, ') ->') !== FALSE) {
+ /* Outbound NAT */
+ $info = preg_replace('/(\S+) \((\S+)\)/U', "$2", $info);
+ } elseif (strpos($info, ') <-') !== FALSE) {
+ /* Inbound NAT/Port Forward */
+ $info = preg_replace('/(\S+) \((\S+)\)/U', "$1", $info);
+ }
+
/* break up info and extract $srcip and $dstip */
$ends = preg_split("/\<?-\>?/", $info);
@@ -82,7 +92,7 @@ if(count($states) > 0) {
/* Handle IPv6 */
$parts = explode(":", $srcinfo);
- $partcount = count($parts);
+ $partcount = count($parts);
if ($partcount <= 2) {
$srcip = trim($parts[0]);
$srcport = trim($parts[1]);
@@ -91,9 +101,9 @@ if(count($states) > 0) {
$srcip = $matches[1];
$srcport = trim($matches[3]);
}
-
+
$parts = explode(":", $dstinfo);
- $partcount = count($parts);
+ $partcount = count($parts);
if ($partcount <= 2) {
$dstip = trim($parts[0]);
$dstport = trim($parts[1]);
diff --git a/usr/local/www/filebrowser/browser.php b/usr/local/www/filebrowser/browser.php
index 4a456be..d8cbea3 100644
--- a/usr/local/www/filebrowser/browser.php
+++ b/usr/local/www/filebrowser/browser.php
@@ -91,25 +91,44 @@ endforeach;
foreach($files as $file):
$ext = strrchr($file, ".");
- if($ext == ".css" ) $type = "code";
- elseif($ext == ".html") $type = "code";
- elseif($ext == ".xml" ) $type = "code";
- elseif($ext == ".rrd" ) $type = "database";
- elseif($ext == ".gif" ) $type = "image";
- elseif($ext == ".jpg" ) $type = "image";
- elseif($ext == ".png" ) $type = "image";
- elseif($ext == ".js" ) $type = "js";
- elseif($ext == ".pdf" ) $type = "pdf";
- elseif($ext == ".inc" ) $type = "php";
- elseif($ext == ".php" ) $type = "php";
- elseif($ext == ".conf") $type = "system";
- elseif($ext == ".pid" ) $type = "system";
- elseif($ext == ".sh" ) $type = "system";
- elseif($ext == ".bz2" ) $type = "zip";
- elseif($ext == ".gz" ) $type = "zip";
- elseif($ext == ".tgz" ) $type = "zip";
- elseif($ext == ".zip" ) $type = "zip";
- else $type = "generic";
+ switch ($ext) {
+ case ".css":
+ case ".html":
+ case ".xml":
+ $type = "code";
+ break;
+ case ".rrd":
+ $type = "database";
+ break;
+ case ".gif":
+ case ".jpg":
+ case ".png":
+ $type = "image";
+ break;
+ case ".js":
+ $type = "js";
+ break;
+ case ".pdf":
+ $type = "pdf";
+ break;
+ case ".inc":
+ case ".php":
+ $type = "php";
+ break;
+ case ".conf":
+ case ".pid":
+ case ".sh":
+ $type = "system";
+ break;
+ case ".bz2":
+ case ".gz":
+ case ".tgz":
+ case ".zip":
+ $type = "zip";
+ break;
+ default:
+ $type = "generic";
+ }
$fqpn = "{$path}/{$file}";
diff --git a/usr/local/www/firewall_aliases_edit.php b/usr/local/www/firewall_aliases_edit.php
index e3c0471..fc35612 100755
--- a/usr/local/www/firewall_aliases_edit.php
+++ b/usr/local/www/firewall_aliases_edit.php
@@ -294,7 +294,7 @@ if ($_POST) {
preg_match("/urltable/i", alias_get_type($_POST["address{$x}"]))))
$wrongaliases .= " " . $_POST["address{$x}"];
} else if ($_POST['type'] == "port") {
- if (!is_port($_POST["address{$x}"]))
+ if (!is_port($_POST["address{$x}"]) && !is_portrange($_POST["address{$x}"]))
$input_errors[] = $_POST["address{$x}"] . " " . gettext("is not a valid port or alias.");
} else if ($_POST['type'] == "host" || $_POST['type'] == "network") {
if (is_subnet($_POST["address{$x}"]) || (!is_ipaddr($_POST["address{$x}"])
@@ -643,7 +643,7 @@ if (empty($tab)) {
<td valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
<td class="vtable">
<input name="origname" type="hidden" id="origname" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
- <input name="name" type="text" id="name" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
+ <input name="name" type="text" id="name" class="formfld unknown" size="40" maxlength="31" value="<?=htmlspecialchars($pconfig['name']);?>" />
<?php if (isset($id) && $a_aliases[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
diff --git a/usr/local/www/firewall_aliases_import.php b/usr/local/www/firewall_aliases_import.php
index 4151521..c028b3e 100755
--- a/usr/local/www/firewall_aliases_import.php
+++ b/usr/local/www/firewall_aliases_import.php
@@ -57,7 +57,7 @@ $reserved_ifs = get_configured_interface_list(false, true);
$reserved_keywords = array_merge($reserved_keywords, $reserved_ifs, $reserved_table_names);
if (!is_array($config['aliases']['alias']))
- $config['aliases']['alias'] = array();
+ $config['aliases']['alias'] = array();
$a_aliases = &$config['aliases']['alias'];
if($_POST['aliasimport'] <> "") {
@@ -65,7 +65,7 @@ if($_POST['aliasimport'] <> "") {
$reqdfieldsn = array(gettext("Name"),gettext("Aliases"));
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
-
+
if (is_validaliasname($_POST['name']) == false)
$input_errors[] = gettext("The alias name may only consist of the characters") . " a-z, A-Z, 0-9, _.";
@@ -75,17 +75,17 @@ if($_POST['aliasimport'] <> "") {
/* Check for reserved keyword names */
- foreach($reserved_keywords as $rk)
- if ($rk == $_POST['name'])
- $input_errors[] = sprintf(gettext("Cannot use a reserved keyword as alias name %s"), $rk);
-
- /* check for name interface description conflicts */
- foreach($config['interfaces'] as $interface) {
- if($interface['descr'] == $_POST['name']) {
- $input_errors[] = gettext("An interface description with this name already exists.");
- break;
- }
- }
+ foreach($reserved_keywords as $rk)
+ if ($rk == $_POST['name'])
+ $input_errors[] = sprintf(gettext("Cannot use a reserved keyword as alias name %s"), $rk);
+
+ /* check for name interface description conflicts */
+ foreach($config['interfaces'] as $interface) {
+ if($interface['descr'] == $_POST['name']) {
+ $input_errors[] = gettext("An interface description with this name already exists.");
+ break;
+ }
+ }
if ($_POST['aliasimport']) {
$tocheck = explode("\n", $_POST['aliasimport']);
@@ -147,7 +147,7 @@ if($_POST['aliasimport'] <> "") {
if (write_config())
mark_subsystem_dirty('aliases');
pfSenseHeader("firewall_aliases.php");
-
+
exit;
}
}
@@ -163,38 +163,53 @@ include("head.inc");
<div id="inputerrors"></div>
<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="firewall alias import">
<tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Alias Import"); ?></td>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Alias Import"); ?></td>
</tr>
<tr>
- <td valign="top" class="vncellreq"><?=gettext("Alias Name"); ?></td>
- <td class="vtable"> <input name="name" type="text" class="formfld unknown" id="name" size="40" value="<?=htmlspecialchars($_POST['name']);?>" />
- <br /> <span class="vexpl">
- <?=gettext("The name of the alias may only consist of the characters \"a-z, A-Z and 0-9\"."); ?></span></td>
+ <td valign="top" class="vncellreq"><?=gettext("Alias Name"); ?></td>
+ <td class="vtable">
+ <input name="name" type="text" class="formfld unknown" id="name" size="40" maxlength="31" value="<?=htmlspecialchars($_POST['name']);?>" />
+ <br />
+ <span class="vexpl">
+ <?=gettext("The name of the alias may only consist of the characters \"a-z, A-Z and 0-9\"."); ?>
+ </span>
+ </td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
- <td width="78%" class="vtable"> <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($_POST['descr']);?>" />
- <br /> <span class="vexpl"><?=gettext("You may enter a description here " .
- "for your reference (not parsed)"); ?>.</span></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($_POST['descr']);?>" />
+ <br />
+ <span class="vexpl">
+ <?=gettext("You may enter a description here for your reference (not parsed)"); ?>.
+ </span>
+ </td>
</tr>
<tr>
- <td valign="top" class="vncellreq"><?=gettext("Aliases to import"); ?></td>
- <td class="vtable"><textarea name="aliasimport" rows="15" cols="40"><?php echo $_POST['aliasimport']; ?></textarea>
- <br /> <span class="vexpl"><?=gettext("Paste in the aliases to import separated by a carriage return. Common examples are lists of IPs, networks, blacklists, etc."); ?>
- <br /> <?=gettext("The list may contain IP addresses, with or without CIDR prefix, IP ranges, blank lines (ignored) and an optional description after each IP. e.g.:"); ?>
- <br />172.16.1.2
- <br />172.16.0.0/24
- <br />10.11.12.100-10.11.12.200
- <br />192.168.1.254 Home router
- <br />10.20.0.0/16 Office network
- <br />10.40.1.10-10.40.1.19 Managed switches</span></td>
+ <td valign="top" class="vncellreq"><?=gettext("Aliases to import"); ?></td>
+ <td class="vtable">
+ <textarea name="aliasimport" rows="15" cols="40"><?php echo $_POST['aliasimport']; ?></textarea>
+ <br />
+ <span class="vexpl">
+ <?=gettext("Paste in the aliases to import separated by a carriage return. Common examples are lists of IPs, networks, blacklists, etc."); ?>
+ <br />
+ <?=gettext("The list may contain IP addresses, with or without CIDR prefix, IP ranges, blank lines (ignored) and an optional description after each IP. e.g.:"); ?>
+ <br />172.16.1.2
+ <br />172.16.0.0/24
+ <br />10.11.12.100-10.11.12.200
+ <br />192.168.1.254 Home router
+ <br />10.20.0.0/16 Office network
+ <br />10.40.1.10-10.40.1.19 Managed switches
+ </span>
+ </td>
</tr>
<tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input id="submit" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
- <input class="formbtn" type="button" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
- </td></tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input id="submit" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
+ <input class="formbtn" type="button" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
+ </td>
+ </tr>
</table>
@@ -202,7 +217,7 @@ include("head.inc");
</div>
<?php include("fend.inc"); ?>
-
+
<script type="text/javascript">
//<![CDATA[
NiftyCheck();
diff --git a/usr/local/www/firewall_nat_out.php b/usr/local/www/firewall_nat_out.php
index 5f4c66b..7b509dd 100644
--- a/usr/local/www/firewall_nat_out.php
+++ b/usr/local/www/firewall_nat_out.php
@@ -482,7 +482,7 @@ if (is_subsystem_dirty('natconf'))
$i++;
endforeach;
?>
- <tr>
+ <tr valign="top" id="fr<?=$i;?>">
<td class="list" colspan="11"></td>
<td class="list nowrap" valign="middle">
<table border="0" cellspacing="0" cellpadding="1" summary="edit">
@@ -495,7 +495,7 @@ if (is_subsystem_dirty('natconf'))
<?php
else:
?>
- <input name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17;border:0" title="<?=gettext("move selected mappings to end");?>" />
+ <input onmouseover="fr_insline(<?=$i;?>, true)" onmouseout="fr_insline(<?=$i;?>, false)" name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17;border:0" title="<?=gettext("move selected mappings to end");?>" />
<?php
endif;
?>
diff --git a/usr/local/www/firewall_virtual_ip_edit.php b/usr/local/www/firewall_virtual_ip_edit.php
index bf48e12..c33166b 100644
--- a/usr/local/www/firewall_virtual_ip_edit.php
+++ b/usr/local/www/firewall_virtual_ip_edit.php
@@ -113,8 +113,23 @@ if ($_POST) {
if ($_POST['subnet']) {
if (!is_ipaddr($_POST['subnet']))
$input_errors[] = gettext("A valid IP address must be specified.");
- else if (is_ipaddr_configured($_POST['subnet'], "{$_POST['interface']}_vip{$id}"))
- $input_errors[] = gettext("This IP address is being used by another interface or VIP.");
+ else {
+ if (isset($id) && isset($a_vip[$id])) {
+ $ignore_if = $a_vip[$id]['interface'];
+ $ignore_mode = $a_vip[$id]['mode'];
+ } else {
+ $ignore_if = $_POST['interface'];
+ $ignore_mode = $_POST['mode'];
+ }
+
+ if ($ignore_mode == 'carp')
+ $ignore_if .= "_vip{$id}";
+
+ if (is_ipaddr_configured($_POST['subnet'], $ignore_if))
+ $input_errors[] = gettext("This IP address is being used by another interface or VIP.");
+
+ unset($ignore_if, $ignore_mode);
+ }
}
$natiflist = get_configured_interface_with_descr();
diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php
index e1d05c0..6aa0014 100644
--- a/usr/local/www/interfaces.php
+++ b/usr/local/www/interfaces.php
@@ -797,9 +797,7 @@ if ($_POST['apply']) {
$wancfg['if'] = $a_ppps[$pppid]['ports'];
unset($a_ppps[$pppid]);
} else if ($wancfg['ipaddr'] == "dhcp") {
- $pid = find_dhclient_process($wancfg['if']);
- if($pid)
- posix_kill($pid, SIGTERM);
+ kill_dhclient_process($wancfg['if']);
}
if ($wancfg['ipaddrv6'] == "dhcp6") {
$pid = find_dhcp6c_process($wancfg['if']);
diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php
index 42ba60e..a1c9c3e 100644
--- a/usr/local/www/interfaces_assign.php
+++ b/usr/local/www/interfaces_assign.php
@@ -52,6 +52,43 @@ require("vpn.inc");
require("captiveportal.inc");
require_once("rrd.inc");
+function interface_assign_description($portinfo, $portname) {
+ if ($portinfo['isvlan']) {
+ $descr = sprintf(gettext('VLAN %1$s on %2$s'),$portinfo['tag'],$portinfo['if']);
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['iswlclone']) {
+ $descr = $portinfo['cloneif'];
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['isppp']) {
+ $descr = $portinfo['descr'];
+ } elseif ($portinfo['isbridge']) {
+ $descr = strtoupper($portinfo['bridgeif']);
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['isgre']) {
+ $descr = "GRE {$portinfo['remote-addr']}";
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['isgif']) {
+ $descr = "GIF {$portinfo['remote-addr']}";
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['islagg']) {
+ $descr = strtoupper($portinfo['laggif']);
+ if ($portinfo['descr'])
+ $descr .= " (" . $portinfo['descr'] . ")";
+ } elseif ($portinfo['isqinq']) {
+ $descr = $portinfo['descr'];
+ } elseif (substr($portname, 0, 4) == 'ovpn') {
+ $descr = $portname . " (" . $ovpn_descrs[substr($portname, 5)] . ")";
+ } else
+ $descr = $portname . " (" . $portinfo['mac'] . ")";
+
+ return htmlspecialchars($descr);
+}
+
/*
In this file, "port" refers to the physical port name,
while "interface" refers to LAN, WAN, or OPTn.
@@ -153,14 +190,55 @@ if (is_array($config['openvpn'])) {
$ovpn_descrs[$c['vpnid']] = $c['description'];
}
-if ($_POST['apply']) {
+if (isset($_POST['add_x']) && isset($_POST['if_add'])) {
+ /* Be sure this port is not being used */
+ $portused = false;
+ foreach ($config['interfaces'] as $ifname => $ifdata) {
+ if ($ifdata['if'] == $_PORT['if_add']) {
+ $portused = true;
+ break;
+ }
+ }
+
+ if ($portused === false) {
+ /* find next free optional interface number */
+ if(!$config['interfaces']['lan']) {
+ $newifname = gettext("lan");
+ $descr = gettext("LAN");
+ } else {
+ for ($i = 1; $i <= count($config['interfaces']); $i++) {
+ if (!$config['interfaces']["opt{$i}"])
+ break;
+ }
+ $newifname = 'opt' . $i;
+ $descr = "OPT" . $i;
+ }
+
+ $config['interfaces'][$newifname] = array();
+ $config['interfaces'][$newifname]['descr'] = $descr;
+ $config['interfaces'][$newifname]['if'] = $_POST['if_add'];
+ if (preg_match($g['wireless_regex'], $_POST['if_add'])) {
+ $config['interfaces'][$newifname]['wireless'] = array();
+ interface_sync_wireless_clones($config['interfaces'][$newifname], false);
+ }
+
+ uksort($config['interfaces'], "compare_interface_friendly_names");
+
+ /* XXX: Do not remove this. */
+ unlink_if_exists("{$g['tmp_path']}/config.cache");
+
+ write_config();
+
+ $savemsg = gettext("Interface has been added.");
+ }
+
+} else if (isset($_POST['apply'])) {
if (file_exists("/var/run/interface_mismatch_reboot_needed")) {
system_reboot();
$rebootingnow = true;
} else {
write_config();
- $retval = 0;
$retval = filter_configure();
$savemsg = get_std_save_message($retval);
@@ -170,7 +248,7 @@ if ($_POST['apply']) {
$savemsg = $retval;
}
-} else if ($_POST) {
+} else if (isset($_POST['Submit'])) {
unset($input_errors);
@@ -272,108 +350,80 @@ if ($_POST['apply']) {
enable_rrd_graphing();
}
-}
+} else {
+ /* yuck - IE won't send value attributes for image buttons, while Mozilla does - so we use .x/.y to find move button clicks instead... */
+ unset($delbtn);
+ foreach ($_POST as $pn => $pd) {
+ if (preg_match("/del_(.+)_x/", $pn, $matches))
+ $delbtn = $matches[1];
+ }
-if ($_GET['act'] == "del") {
- $id = $_GET['id'];
-
- if (link_interface_to_group($id))
- $input_errors[] = gettext("The interface is part of a group. Please remove it from the group to continue");
- else if (link_interface_to_bridge($id))
- $input_errors[] = gettext("The interface is part of a bridge. Please remove it from the bridge to continue");
- else if (link_interface_to_gre($id))
- $input_errors[] = gettext("The interface is part of a gre tunnel. Please delete the tunnel to continue");
- else if (link_interface_to_gif($id))
- $input_errors[] = gettext("The interface is part of a gif tunnel. Please delete the tunnel to continue");
- else {
- unset($config['interfaces'][$id]['enable']);
- $realid = get_real_interface($id);
- interface_bring_down($id); /* down the interface */
-
- unset($config['interfaces'][$id]); /* delete the specified OPTn or LAN*/
-
- if (is_array($config['dhcpd']) && is_array($config['dhcpd'][$id])) {
- unset($config['dhcpd'][$id]);
- services_dhcpd_configure();
- }
+ if (isset($delbtn)) {
+ $id = $delbtn;
+
+ if (link_interface_to_group($id))
+ $input_errors[] = gettext("The interface is part of a group. Please remove it from the group to continue");
+ else if (link_interface_to_bridge($id))
+ $input_errors[] = gettext("The interface is part of a bridge. Please remove it from the bridge to continue");
+ else if (link_interface_to_gre($id))
+ $input_errors[] = gettext("The interface is part of a gre tunnel. Please delete the tunnel to continue");
+ else if (link_interface_to_gif($id))
+ $input_errors[] = gettext("The interface is part of a gif tunnel. Please delete the tunnel to continue");
+ else {
+ unset($config['interfaces'][$id]['enable']);
+ $realid = get_real_interface($id);
+ interface_bring_down($id); /* down the interface */
+
+ unset($config['interfaces'][$id]); /* delete the specified OPTn or LAN*/
+
+ if (is_array($config['dhcpd']) && is_array($config['dhcpd'][$id])) {
+ unset($config['dhcpd'][$id]);
+ services_dhcpd_configure();
+ }
- if (count($config['filter']['rule']) > 0) {
- foreach ($config['filter']['rule'] as $x => $rule) {
- if($rule['interface'] == $id)
- unset($config['filter']['rule'][$x]);
+ if (count($config['filter']['rule']) > 0) {
+ foreach ($config['filter']['rule'] as $x => $rule) {
+ if($rule['interface'] == $id)
+ unset($config['filter']['rule'][$x]);
+ }
}
- }
- if (is_array($config['nat']['rule']) && count($config['nat']['rule']) > 0) {
- foreach ($config['nat']['rule'] as $x => $rule) {
- if($rule['interface'] == $id)
- unset($config['nat']['rule'][$x]['interface']);
+ if (is_array($config['nat']['rule']) && count($config['nat']['rule']) > 0) {
+ foreach ($config['nat']['rule'] as $x => $rule) {
+ if($rule['interface'] == $id)
+ unset($config['nat']['rule'][$x]['interface']);
+ }
}
- }
- write_config();
-
- /* If we are in firewall/routing mode (not single interface)
- * then ensure that we are not running DHCP on the wan which
- * will make a lot of ISP's unhappy.
- */
- if($config['interfaces']['lan'] && $config['dhcpd']['wan']) {
- unset($config['dhcpd']['wan']);
- }
+ write_config();
- link_interface_to_vlans($realid, "update");
+ /* If we are in firewall/routing mode (not single interface)
+ * then ensure that we are not running DHCP on the wan which
+ * will make a lot of ISP's unhappy.
+ */
+ if($config['interfaces']['lan'] && $config['dhcpd']['wan']) {
+ unset($config['dhcpd']['wan']);
+ }
- $savemsg = gettext("Interface has been deleted.");
- }
-}
+ link_interface_to_vlans($realid, "update");
-if ($_GET['act'] == "add" && (count($config['interfaces']) < count($portlist))) {
- /* find next free optional interface number */
- if(!$config['interfaces']['lan']) {
- $newifname = gettext("lan");
- $descr = gettext("LAN");
- $config['interfaces'][$newifname] = array();
- $config['interfaces'][$newifname]['descr'] = $descr;
- } else {
- for ($i = 1; $i <= count($config['interfaces']); $i++) {
- if (!$config['interfaces']["opt{$i}"])
- break;
+ $savemsg = gettext("Interface has been deleted.");
}
- $newifname = 'opt' . $i;
- $descr = "OPT" . $i;
- $config['interfaces'][$newifname] = array();
- $config['interfaces'][$newifname]['descr'] = $descr;
}
+}
- uksort($config['interfaces'], "compare_interface_friendly_names");
-
- /* Find an unused port for this interface */
- foreach ($portlist as $portname => $portinfo) {
- $portused = false;
- foreach ($config['interfaces'] as $ifname => $ifdata) {
- if ($ifdata['if'] == $portname) {
- $portused = true;
- break;
- }
- }
- if (!$portused) {
- $config['interfaces'][$newifname]['if'] = $portname;
- if (preg_match($g['wireless_regex'], $portname)) {
- $config['interfaces'][$newifname]['wireless'] = array();
- interface_sync_wireless_clones($config['interfaces'][$newifname], false);
- }
+/* Create a list of unused ports */
+$unused_portlist = array();
+foreach ($portlist as $portname => $portinfo) {
+ $portused = false;
+ foreach ($config['interfaces'] as $ifname => $ifdata) {
+ if ($ifdata['if'] == $portname) {
+ $portused = true;
break;
}
}
-
- /* XXX: Do not remove this. */
- mwexec("/bin/rm -f /tmp/config.cache");
-
- write_config();
-
- $savemsg = gettext("Interface has been added.");
-
-} else if ($_GET['act'] == "add")
- $input_errors[] = "No more interfaces available to be assigned.";
+ if ($portused === false)
+ $unused_portlist[$portname] = $portinfo;
+}
include("head.inc");
@@ -384,7 +434,7 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
else
$savemsg = gettext("Reboot is needed. Please apply the settings in order to reboot.");
} else {
- $savemsg = gettext("Interface mismatch detected. Please resolve the mismatch and click Save. The firewall will reboot afterwards.");
+ $savemsg = gettext("Interface mismatch detected. Please resolve the mismatch and click 'Apply changes'. The firewall will reboot afterwards.");
}
?>
@@ -393,17 +443,21 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
<form action="interfaces_assign.php" method="post" name="iform" id="iform">
-<?php if (file_exists("/tmp/reload_interfaces")): ?><p>
- <?php print_info_box_np(gettext("The interface configuration has been changed.<br />You must apply the changes in order for them to take effect."));?><br /></p>
-<?php elseif($savemsg): ?>
- <?php print_info_box($savemsg); ?>
-<?php endif; ?>
-
-<?php pfSense_handle_custom_code("/usr/local/pkg/interfaces_assign/pre_input_errors"); ?>
-<?php if ($input_errors) print_input_errors($input_errors); ?>
+<?php
+if (file_exists("/tmp/reload_interfaces")) {
+ echo "<p>\n";
+ print_info_box_np(gettext("The interface configuration has been changed.<br />You must apply the changes in order for them to take effect."));
+ echo "<br /></p>\n";
+} elseif($savemsg)
+ print_info_box($savemsg);
+
+pfSense_handle_custom_code("/usr/local/pkg/interfaces_assign/pre_input_errors");
+if ($input_errors)
+ print_input_errors($input_errors);
+?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="interfaces assign">
- <tr><td class="tabnavtbl">
+ <tr><td class="tabnavtbl">
<?php
$tab_array = array();
$tab_array[0] = array(gettext("Interface assignments"), true, "interfaces_assign.php");
@@ -418,100 +472,88 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
$tab_array[10] = array(gettext("LAGG"), false, "interfaces_lagg.php");
display_top_tabs($tab_array);
?>
- </td></tr>
- <tr>
- <td>
- <div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
- <tr>
- <td class="listhdrr"><?=gettext("Interface"); ?></td>
- <td class="listhdr"><?=gettext("Network port"); ?></td>
- <td class="list">&nbsp;</td>
- </tr>
- <?php foreach ($config['interfaces'] as $ifname => $iface):
- if ($iface['descr'])
- $ifdescr = $iface['descr'];
- else
- $ifdescr = strtoupper($ifname);
- ?>
- <tr>
- <td class="listlr" valign="middle"><strong><u><span onclick="location.href='/interfaces.php?if=<?=$ifname;?>'" style="cursor: pointer;"><?=$ifdescr;?></span></u></strong></td>
- <td valign="middle" class="listr">
- <select onchange="javascript:jQuery('#savediv').show();" name="<?=$ifname;?>" id="<?=$ifname;?>">
- <?php foreach ($portlist as $portname => $portinfo): ?>
- <option value="<?=$portname;?>" <?php if ($portname == $iface['if']) echo " selected=\"selected\"";?>>
- <?php if ($portinfo['isvlan']) {
- $descr = sprintf(gettext('VLAN %1$s on %2$s'),$portinfo['tag'],$portinfo['if']);
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['iswlclone']) {
- $descr = $portinfo['cloneif'];
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['isppp']) {
- echo htmlspecialchars($portinfo['descr']);
- } elseif ($portinfo['isbridge']) {
- $descr = strtoupper($portinfo['bridgeif']);
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['isgre']) {
- $descr = "GRE {$portinfo['remote-addr']}";
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['isgif']) {
- $descr = "GIF {$portinfo['remote-addr']}";
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['islagg']) {
- $descr = strtoupper($portinfo['laggif']);
- if ($portinfo['descr'])
- $descr .= " (" . $portinfo['descr'] . ")";
- echo htmlspecialchars($descr);
- } elseif ($portinfo['isqinq']) {
- echo htmlspecialchars($portinfo['descr']);
- } elseif (substr($portname, 0, 4) == 'ovpn') {
- echo htmlspecialchars($portname . " (" . $ovpn_descrs[substr($portname, 5)] . ")");
- } else
- echo htmlspecialchars($portname . " (" . $portinfo['mac'] . ")");
- ?></option>
- <?php endforeach; ?>
- </select>
- </td>
- <td valign="middle" class="list">
- <?php if ($ifname != 'wan'): ?>
- <a href="interfaces_assign.php?act=del&amp;id=<?=$ifname;?>" onclick="return confirm('<?=gettext("Do you really want to delete this interface?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete interface"); ?>" width="17" height="17" border="0" alt="delete" /></a>
- <?php endif; ?>
- </td>
- </tr>
- <?php endforeach; ?>
- <?php if (count($config['interfaces']) < count($portlist)): ?>
- <tr>
- <td class="list" colspan="2"></td>
- <td class="list nowrap">
- <a href="interfaces_assign.php?act=add"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add interface"); ?>" width="17" height="17" border="0" alt="add" /></a>
- </td>
- </tr>
- <?php else: ?>
- <tr>
- <td class="list" colspan="3" height="10"></td>
- </tr>
- <?php endif; ?>
-</table>
-</div>
-<br />
-<div id='savediv' <?php if (empty($_GET['act'])) echo "style='display:none;'"; ?>>
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /><br /><br />
-</div>
-<ul>
- <li><span class="vexpl"><?=gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown."); ?></span></li>
-</ul>
-</td>
-</tr>
+ </td></tr>
+ <tr><td>
+ <div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
+ <tr>
+ <td class="listhdrr"><?=gettext("Interface"); ?></td>
+ <td class="listhdr"><?=gettext("Network port"); ?></td>
+ <td class="list">&nbsp;</td>
+ </tr>
+<?php
+ foreach ($config['interfaces'] as $ifname => $iface):
+ if ($iface['descr'])
+ $ifdescr = $iface['descr'];
+ else
+ $ifdescr = strtoupper($ifname);
+?>
+ <tr>
+ <td class="listlr" valign="middle"><strong><u><span onclick="location.href='/interfaces.php?if=<?=$ifname;?>'" style="cursor: pointer;"><?=$ifdescr;?></span></u></strong></td>
+ <td valign="middle" class="listr">
+ <select onchange="javascript:jQuery('#savediv').show();" name="<?=$ifname;?>" id="<?=$ifname;?>">
+<?php
+ foreach ($portlist as $portname => $portinfo):
+?>
+ <option value="<?=$portname;?>" <?php if ($portname == $iface['if']) echo " selected=\"selected\"";?>>
+ <?=interface_assign_description($portinfo, $portname);?>
+ </option>
+<?php
+ endforeach;
+?>
+ </select>
+ </td>
+ <td valign="middle" class="list">
+<?php
+ if ($ifname != 'wan'):
+?>
+ <input name="del_<?=$ifname;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif"
+ title="<?=gettext("delete interface");?>"
+ type="image" style="height:17;width:17;border:0"
+ onclick="return confirm('<?=gettext("Do you really want to delete this interface?"); ?>')" />
+<?php
+ endif;
+?>
+ </td>
+ </tr>
+<?php
+ endforeach;
+ if (count($config['interfaces']) < count($portlist)):
+?>
+ <tr>
+ <td class="list">
+ <strong><?=gettext("Available network ports:");?></strong>
+ </td>
+ <td class="list">
+ <select name="if_add" id="if_add">
+<?php
+ foreach ($unused_portlist as $portname => $portinfo):
+?>
+ <option value="<?=$portname;?>" <?php if ($portname == $iface['if']) echo " selected=\"selected\"";?>>
+ <?=interface_assign_description($portinfo, $portname);?>
+ </option>
+<?php
+ endforeach;
+?>
+ </select>
+ </td>
+ <td class="list">
+ <input name="add" type="image" src="/themes/<?=$g['theme'];?>/images/icons/icon_plus.gif" style="width:17;height:17;border:0" title="<?=gettext("add selected interface");?>" />
+ </td>
+ </tr>
+<?php
+ endif;
+?>
+ </table>
+ </div>
+ <br />
+ <div id='savediv' style='display:none'>
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /><br /><br />
+ </div>
+ <ul>
+ <li><span class="vexpl"><?=gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown."); ?></span></li>
+ </ul>
+ </td></tr>
</table>
</form>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/javascript/jquery.js b/usr/local/www/javascript/jquery.js
index e375a10..859a7b2 100644
--- a/usr/local/www/javascript/jquery.js
+++ b/usr/local/www/javascript/jquery.js
@@ -37,8 +37,8 @@ var jQuery = function( selector, context ) {
rootjQuery,
// A simple way to check for HTML strings or ID strings
- // (both of which we optimize for)
- quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
// Check if a string has a non-whitespace character in it
rnotwhite = /\S/,
diff --git a/usr/local/www/javascript/row_toggle.js b/usr/local/www/javascript/row_toggle.js
index 6a1f5f8..350743e 100644
--- a/usr/local/www/javascript/row_toggle.js
+++ b/usr/local/www/javascript/row_toggle.js
@@ -1,35 +1,46 @@
-function fr_toggle(id) {
- var checkbox = document.getElementById('frc' + id);
+function fr_toggle(id, prefix) {
+ if (!prefix)
+ prefix = 'fr';
+
+ var checkbox = document.getElementById(prefix + 'c' + id);
checkbox.checked = !checkbox.checked;
- fr_bgcolor(id);
+ fr_bgcolor(id, prefix);
}
-function fr_bgcolor(id) {
- var row = document.getElementById('fr' + id);
- var checkbox = document.getElementById('frc' + id);
+
+function fr_bgcolor(id, prefix) {
+ if (!prefix)
+ prefix = 'fr';
+
+ var row = document.getElementById(prefix + id);
+ var checkbox = document.getElementById(prefix + 'c' + id);
var cells = row.getElementsByTagName('td');
var cellcnt = cells.length;
for (i = 0; i < cellcnt; i++) {
// Check for cells with frd id only
- if (cells[i].id == "frd" + id)
+ if (cells[i].id == prefix + 'd' + id)
cells[i].style.backgroundColor = checkbox.checked ? "#FFFFBB" : "#FFFFFF";
}
//cells[7].style.backgroundColor = checkbox.checked ? "#FFFFBB" : "#990000";
}
-function fr_insline(id, on) {
- var row = document.getElementById('fr' + id);
- var prevrow;
+
+function fr_insline(id, on, prefix) {
+ if (!prefix)
+ prefix = 'fr';
+
+ var row = document.getElementById(prefix + id);
+ var prevrow;
if (id != 0) {
- prevrow = document.getElementById('fr' + (id-1));
+ prevrow = document.getElementById(prefix + (id-1));
} else {
- prevrow = document.getElementById('frheader');
+ prevrow = document.getElementById(prefix + 'header');
}
var cells = row.getElementsByTagName("td");
var prevcells = prevrow.getElementsByTagName("td");
for (i = 0; i <= prevcells.length - 1; i++) {
- if (prevcells[i].id == 'frd' + (id-1)) {
+ if (prevcells[i].id == prefix + 'd' + (id-1)) {
if (on) {
prevcells[i].style.borderBottom = "3px solid #990000";
prevcells[i].style.paddingBottom = ((id != 0) ? 2 : 3) + "px";
@@ -42,7 +53,7 @@ function fr_insline(id, on) {
}
for (i = 0; i <= cells.length - 1; i++) {
- if (cells[i].id == 'frd' + (id)) {
+ if (cells[i].id == prefix + 'd' + (id)) {
if (on) {
cells[i].style.borderTop = "2px solid #990000";
cells[i].style.paddingTop = "2px";
diff --git a/usr/local/www/services_igmpproxy_edit.php b/usr/local/www/services_igmpproxy_edit.php
index 98c4414..6a82590 100644
--- a/usr/local/www/services_igmpproxy_edit.php
+++ b/usr/local/www/services_igmpproxy_edit.php
@@ -7,7 +7,7 @@
Copyright (C) 2004 Scott Ullrich
All rights reserved.
- originially part of m0n0wall (http://m0n0.ch/wall)
+ originally part of m0n0wall (http://m0n0.ch/wall)
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
All rights reserved.
@@ -214,7 +214,7 @@ include("head.inc");
<br />
<span class="vexpl">
<?=gettext("Defines the TTL threshold for the network interface. Packets".
- " with a lower TTL than the threshols value will be ignored. This".
+ " with a lower TTL than the threshold value will be ignored. This".
" setting is optional, and by default the threshold is 1.");?>
</span>
</td>
diff --git a/usr/local/www/status.php b/usr/local/www/status.php
index 93fe21e..0a0f70a 100755
--- a/usr/local/www/status.php
+++ b/usr/local/www/status.php
@@ -179,7 +179,7 @@ defCmdT("dhcpd.conf","cat /var/dhcpd/etc/dhcpd.conf");
defCmdT("df","/bin/df");
-defCmdT("racoon.conf","cat /var/etc/racoon.conf");
+defCmdT("ipsec.conf","cat /var/etc/ipsec/ipsec.conf");
defCmdT("SPD","/sbin/setkey -DP");
defCmdT("SAD","/sbin/setkey -D");
diff --git a/usr/local/www/status_interfaces.php b/usr/local/www/status_interfaces.php
index 58ed077..4e10fe1 100644
--- a/usr/local/www/status_interfaces.php
+++ b/usr/local/www/status_interfaces.php
@@ -46,13 +46,12 @@ require_once("guiconfig.inc");
require_once("shaper.inc");
require_once("filter.inc");
-if ($_GET['if']) {
- $interface = $_GET['if'];
- if ($_GET['action'] == "Disconnect" || $_GET['action'] == "Release") {
+if ($_POST['if'] && $_POST['submit']) {
+ $interface = $_POST['if'];
+ if ($_POST['status'] == "up")
interface_bring_down($interface);
- } else if ($_GET['action'] == "Connect" || $_GET['action'] == "Renew") {
+ else
interface_configure($interface);
- }
header("Location: status_interfaces.php");
exit;
}
@@ -96,15 +95,13 @@ include("head.inc");
DHCP
</td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['dhcplink']);?>&nbsp;&nbsp;
- <?php if ($ifinfo['dhcplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Release&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns" />
- <?php else: ?>
- <a href="status_interfaces.php?action=Renew&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns" />
- <?php endif; ?>
- </a>
+ <form name="dhcplink_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['dhcplink']; ?>" />
+ <?=htmlspecialchars($ifinfo['dhcplink']);?>&nbsp;&nbsp;
+ <?php $action = ($ifinfo['dhcplink'] == "up" ? gettext("Release") : gettext("Renew")); ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo $action; ?>" />
+ </form>
</td>
</tr>
<?php endif;
@@ -114,77 +111,70 @@ include("head.inc");
DHCP6
</td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['dhcp6link']);?>&nbsp;&nbsp;
- <?php if ($ifinfo['dhcp6link'] == "up"): ?>
- <a href="status_interfaces.php?action=Release&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns" />
- <?php else: ?>
- <a href="status_interfaces.php?action=Renew&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns" />
- <?php endif; ?>
- </a>
+ <form name="dhcp6link_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['dhcp6link']; ?>" />
+ <?=htmlspecialchars($ifinfo['dhcp6link']);?>&nbsp;&nbsp;
+ <?php $action = ($ifinfo['dhcp6link'] == "up" ? gettext("Release") : gettext("Renew")); ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo $action; ?>" />
+ </form>
</td>
</tr>
<?php endif; if ($ifinfo['pppoelink']): ?>
<tr>
<td width="22%" class="vncellt"><?=gettext("PPPoE"); ?></td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['pppoelink']);?>&nbsp;&nbsp;
- <?php if ($ifinfo['pppoelink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
- <?php else: ?>
- <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
- <?php endif; ?>
- </a>
+ <form name="pppoelink_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['pppoelink']; ?>" />
+ <?=htmlspecialchars($ifinfo['pppoelink']);?>&nbsp;&nbsp;
+ <?php $action = ($ifinfo['pppoelink'] == "up" ? gettext("Disconnect") : gettext("Connect")); ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo $action; ?>" />
+ </form>
</td>
</tr>
<?php endif; if ($ifinfo['pptplink']): ?>
<tr>
<td width="22%" class="vncellt"><?=gettext("PPTP"); ?></td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['pptplink']);?>&nbsp;&nbsp;
- <?php if ($ifinfo['pptplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
- <?php else: ?>
- <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
- <?php endif; ?>
- </a>
+ <form name="pptplink_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['pptplink']; ?>" />
+ <?=htmlspecialchars($ifinfo['pptplink']);?>&nbsp;&nbsp;
+ <?php $action = ($ifinfo['pptplink'] == "up" ? gettext("Disconnect") : gettext("Connect")); ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo $action; ?>" />
+ </form>
</td>
</tr>
<?php endif; if ($ifinfo['l2tplink']): ?>
<tr>
<td width="22%" class="vncellt"><?=gettext("L2TP"); ?></td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['l2tplink']);?>&nbsp;&nbsp;
- <?php if ($ifinfo['l2tplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
- <?php else: ?>
- <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
- <?php endif; ?>
- </a>
+ <form name="l2tplink_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['l2tplink']; ?>" />
+ <?=htmlspecialchars($ifinfo['l2tplink']);?>&nbsp;&nbsp;
+ <?php $action = ($ifinfo['l2tplink'] == "up" ? gettext("Disconnect") : gettext("Connect")); ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo $action; ?>" />
+ </form>
</td>
</tr>
<?php endif; if ($ifinfo['ppplink']): ?>
<tr>
<td width="22%" class="vncellt"><?=gettext("PPP"); ?></td>
<td width="78%" class="listr">
- <?=htmlspecialchars($ifinfo['pppinfo']);?>
- <?php if ($ifinfo['ppplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
- <?php else: ?>
- <?php if (!$ifinfo['nodevice']): ?>
- <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
+ <form name="ppplink_form" action="status_interfaces.php" method="post">
+ <input type="hidden" name="if" value="<?php echo $ifdescr; ?>" />
+ <input type="hidden" name="status" value="<?php echo $ifinfo['ppplink']; ?>" />
+ <?=htmlspecialchars($ifinfo['pppinfo']);?>
+ <?php if ($ifinfo['ppplink'] == "up"): ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo gettext("Disconnect"); ?>" />
+ <?php else: ?>
+ <?php if (!$ifinfo['nodevice']): ?>
+ <input type="submit" name="submit" class="formbtn" value="<?php echo gettext("Connect"); ?>" />
+ <?php endif; ?>
<?php endif; ?>
- <?php endif; ?>
- </a>
+ </form>
</td>
</tr>
<?php endif; if ($ifinfo['ppp_uptime'] || $ifinfo['ppp_uptime_accumulated']): ?>
diff --git a/usr/local/www/themes/code-red/all.css b/usr/local/www/themes/code-red/all.css
index a68d44d..81efac7 100644
--- a/usr/local/www/themes/code-red/all.css
+++ b/usr/local/www/themes/code-red/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -351,12 +351,9 @@ table#marquee div#container div#scroller {
/* Style the List */
#navigation {
- /* background: url('images/menu.gif') no-repeat; */
- /* width: 693px; */
position: relative;
top: -35px;
left: 3px;
- width: 810px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -376,7 +373,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- width: 6.2em;
+ width: 80px;
}
#navigation ul li div {
font-size: 1em;
diff --git a/usr/local/www/themes/metallic/all.css b/usr/local/www/themes/metallic/all.css
index 47b6b98..e1a49d6 100644
--- a/usr/local/www/themes/metallic/all.css
+++ b/usr/local/www/themes/metallic/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -334,12 +334,9 @@ table#marquee div#container div#scroller {
/* Style the List */
#navigation {
- /* background: url('images/menu.gif') no-repeat; */
- /* width: 693px; */
position: relative;
top: -24px;
left: -4px;
- width: 800px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -359,8 +356,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- /* width: 7.5em; */
- width: 6.2em;
+ width: 80px;
}
#navigation ul li div {
font-size: 1em;
diff --git a/usr/local/www/themes/nervecenter/all.css b/usr/local/www/themes/nervecenter/all.css
index 541861a..d66e36c 100644
--- a/usr/local/www/themes/nervecenter/all.css
+++ b/usr/local/www/themes/nervecenter/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -357,12 +357,9 @@ table#marquee div#container div#scroller {
/* Style the List */
#navigation {
- /* background: url('images/menu.gif') no-repeat; */
- /* width: 693px; */
position: relative;
top: -25px;
left: 3px;
- width: 810px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -382,7 +379,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- width: 6.2em;
+ width: 80px;
}
#navigation ul li div {
font-size: 1em;
diff --git a/usr/local/www/themes/pfsense_ng/all.css b/usr/local/www/themes/pfsense_ng/all.css
index 46f74fa..9bb4b56 100644
--- a/usr/local/www/themes/pfsense_ng/all.css
+++ b/usr/local/www/themes/pfsense_ng/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -407,7 +407,6 @@ table#marquee div#container div#scroller {
position: fixed;
top: 0px;
left: 100px;
- width: 750px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -428,7 +427,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- padding-right: 27px;
+ padding-right: 20px;
top: 0px;
}
@@ -1366,7 +1365,7 @@ div#log span.log-protocol-mini-header {
/* Sortable tables */
table.sortable thead {
cursor: default;
- // background-color: #EEEEEE; this causing light gray rectangles to the right of many tables in gui
+ /* background-color: #EEEEEE; this causing light gray rectangles to the right of many tables in gui */
padding-right: 12px;
padding-left: 12px;
padding-top: 12px;
diff --git a/usr/local/www/themes/pfsense_ng_fs/all.css b/usr/local/www/themes/pfsense_ng_fs/all.css
index 7ccc4c7..dd66eec 100644
--- a/usr/local/www/themes/pfsense_ng_fs/all.css
+++ b/usr/local/www/themes/pfsense_ng_fs/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -368,7 +368,6 @@ table#marquee div#container div#scroller {
position: fixed;
top: 0px;
left: 100px;
- width: 750px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -389,7 +388,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- padding-right: 27px;
+ padding-right: 20px;
top: 0px;
}
@@ -1327,7 +1326,7 @@ div#log span.log-protocol-mini-header {
/* Sortable tables */
table.sortable thead {
cursor: default;
-// background-color: #EEEEEE; this causing light gray rectangles to the right of many tables in gui
+ /* background-color: #EEEEEE; this causing light gray rectangles to the right of many tables in gui */
padding-right: 12px;
padding-left: 12px;
padding-top: 12px;
diff --git a/usr/local/www/themes/the_wall/all.css b/usr/local/www/themes/the_wall/all.css
index 60404d7..cb90972 100644
--- a/usr/local/www/themes/the_wall/all.css
+++ b/usr/local/www/themes/the_wall/all.css
@@ -1,6 +1,6 @@
/* Element CSS Definitions */
html, body, td, th, input, select {
- font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-family: Tahoma, sans-serif;
font-size: 0.9em;
}
@@ -359,12 +359,9 @@ table#marquee div#container div#scroller {
/* Style the List */
#navigation {
- /* background: url('images/menu.gif') no-repeat; */
- /* width: 693px; */
position: relative;
top: -25px;
left: 3px;
- width: 810px;
padding: 0px;
height: 28px;
z-index: 3;
@@ -384,7 +381,7 @@ table#marquee div#container div#scroller {
#navigation ul li {
float: left;
position: relative;
- width: 6.2em;
+ width: 80px;
}
#navigation ul li div {
font-size: 1em;
diff --git a/usr/local/www/vpn_ipsec.php b/usr/local/www/vpn_ipsec.php
index 62e7dc5..17e0e0d 100644
--- a/usr/local/www/vpn_ipsec.php
+++ b/usr/local/www/vpn_ipsec.php
@@ -55,7 +55,6 @@ $a_phase2 = &$config['ipsec']['phase2'];
$pconfig['enable'] = isset($config['ipsec']['enable']);
if ($_POST) {
-
if ($_POST['apply']) {
$retval = 0;
$retval = vpn_ipsec_configure();
@@ -74,46 +73,141 @@ if ($_POST) {
write_config();
$retval = vpn_ipsec_configure();
- }
-}
+ } else if (isset($_POST['del_x'])) {
+ /* delete selected p1 entries */
+ if (is_array($_POST['p1entry']) && count($_POST['p1entry'])) {
+ foreach ($_POST['p1entry'] as $p1entrydel) {
+ unset($a_phase1[$p1entrydel]);
+ }
+ if (write_config())
+ mark_subsystem_dirty('ipsec');
+ }
+ } else if (isset($_POST['delp2_x'])) {
+ /* delete selected p2 entries */
+ if (is_array($_POST['p2entry']) && count($_POST['p2entry'])) {
+ foreach ($_POST['p2entry'] as $p2entrydel) {
+ unset($a_phase2[$p2entrydel]);
+ }
+ if (write_config())
+ mark_subsystem_dirty('ipsec');
+ }
+ } else {
+ /* yuck - IE won't send value attributes for image buttons, while Mozilla does - so we use .x/.y to find move button clicks instead... */
+ unset($delbtn, $delbtnp2, $movebtn, $movebtnp2, $togglebtn, $togglebtnp2);
+ foreach ($_POST as $pn => $pd) {
+ if (preg_match("/del_(\d+)_x/", $pn, $matches)) {
+ $delbtn = $matches[1];
+ } else if (preg_match("/delp2_(\d+)_x/", $pn, $matches)) {
+ $delbtnp2 = $matches[1];
+ } else if (preg_match("/move_(\d+)_x/", $pn, $matches)) {
+ $movebtn = $matches[1];
+ } else if (preg_match("/movep2_(\d+)_x/", $pn, $matches)) {
+ $movebtnp2 = $matches[1];
+ } else if (preg_match("/toggle_(\d+)_x/", $pn, $matches)) {
+ $togglebtn = $matches[1];
+ } else if (preg_match("/togglep2_(\d+)_x/", $pn, $matches)) {
+ $togglebtnp2 = $matches[1];
+ }
+ }
-if ($_GET['act'] == "delph1")
-{
- if ($a_phase1[$_GET['p1index']]) {
- /* remove static route if interface is not WAN */
- if ($a_phase1[$_GET['p1index']]['interface'] <> "wan")
- mwexec("/sbin/route delete -host {$a_phase1[$_GET['p1index']]['remote-gateway']}");
-
- /* remove all phase2 entries that match the ikeid */
- $ikeid = $a_phase1[$_GET['p1index']]['ikeid'];
- foreach ($a_phase2 as $p2index => $ph2tmp)
- if ($ph2tmp['ikeid'] == $ikeid) {
- unset($a_phase2[$p2index]);
+ $save = 1;
+
+ /* move selected p1 entries before this */
+ if (isset($movebtn) && is_array($_POST['p1entry']) && count($_POST['p1entry'])) {
+ $a_phase1_new = array();
+
+ /* copy all p1 entries < $movebtn and not selected */
+ for ($i = 0; $i < $movebtn; $i++) {
+ if (!in_array($i, $_POST['p1entry']))
+ $a_phase1_new[] = $a_phase1[$i];
}
- /* remove the phase1 entry */
- unset($a_phase1[$_GET['p1index']]);
- write_config();
- mark_subsystem_dirty('ipsec');
- header("Location: vpn_ipsec.php");
- exit;
- }
-}
+ /* copy all selected p1 entries */
+ for ($i = 0; $i < count($a_phase1); $i++) {
+ if ($i == $movebtn)
+ continue;
+ if (in_array($i, $_POST['p1entry']))
+ $a_phase1_new[] = $a_phase1[$i];
+ }
-if ($_GET['act'] == "delph2")
-{
- if ($a_phase1[$_GET['p1index']] && $a_phase2[$_GET['p2index']]) {
- /* remove the phase2 entry */
- foreach ($a_phase2 as $ph2idx => $ph2) {
- if ($ph2['uniqid'] == $_GET['p2index']) {
- unset($a_phase2[$ph2idx]);
- write_config();
- mark_subsystem_dirty('ipsec');
- break;
+ /* copy $movebtn p1 entry */
+ if ($movebtn < count($a_phase1))
+ $a_phase1_new[] = $a_phase1[$movebtn];
+
+ /* copy all p1 entries > $movebtn and not selected */
+ for ($i = $movebtn+1; $i < count($a_phase1); $i++) {
+ if (!in_array($i, $_POST['p1entry']))
+ $a_phase1_new[] = $a_phase1[$i];
+ }
+ if (count($a_phase1_new) > 0)
+ $a_phase1 = $a_phase1_new;
+
+ } else if (isset($movebtnp2) && is_array($_POST['p2entry']) && count($_POST['p2entry'])) {
+ /* move selected p2 entries before this */
+ $a_phase2_new = array();
+
+ /* copy all p2 entries < $movebtnp2 and not selected */
+ for ($i = 0; $i < $movebtnp2; $i++) {
+ if (!in_array($i, $_POST['p2entry']))
+ $a_phase2_new[] = $a_phase2[$i];
+ }
+
+ /* copy all selected p2 entries */
+ for ($i = 0; $i < count($a_phase2); $i++) {
+ if ($i == $movebtnp2)
+ continue;
+ if (in_array($i, $_POST['p2entry']))
+ $a_phase2_new[] = $a_phase2[$i];
+ }
+
+ /* copy $movebtnp2 p2 entry */
+ if ($movebtnp2 < count($a_phase2))
+ $a_phase2_new[] = $a_phase2[$movebtnp2];
+
+ /* copy all p2 entries > $movebtnp2 and not selected */
+ for ($i = $movebtnp2+1; $i < count($a_phase2); $i++) {
+ if (!in_array($i, $_POST['p2entry']))
+ $a_phase2_new[] = $a_phase2[$i];
}
+ if (count($a_phase2_new) > 0)
+ $a_phase2 = $a_phase2_new;
+
+ } else if (isset($togglebtn)) {
+ if (isset($a_phase1[$togglebtn]['disabled']))
+ unset($a_phase1[$togglebtn]['disabled']);
+ else
+ $a_phase1[$togglebtn]['disabled'] = true;
+
+ } else if (isset($togglebtnp2)) {
+ if (isset($a_phase2[$togglebtnp2]['disabled']))
+ unset($a_phase2[$togglebtnp2]['disabled']);
+ else
+ $a_phase2[$togglebtnp2]['disabled'] = true;
+
+ } else if (isset($delbtn)) {
+ /* remove static route if interface is not WAN */
+ if ($a_phase1[$delbtn]['interface'] <> "wan")
+ mwexec("/sbin/route delete -host {$a_phase1[$delbtn]['remote-gateway']}");
+
+ /* remove all phase2 entries that match the ikeid */
+ $ikeid = $a_phase1[$delbtn]['ikeid'];
+ foreach ($a_phase2 as $p2index => $ph2tmp)
+ if ($ph2tmp['ikeid'] == $ikeid) {
+ unset($a_phase2[$p2index]);
+ }
+
+ unset($a_phase1[$delbtn]);
+
+ } else if (isset($delbtnp2)) {
+ unset($a_phase2[$delbtnp2]);
+
+ } else
+ $save = 0;
+
+ if ($save === 1) {
+ if (write_config())
+ mark_subsystem_dirty('ipsec');
}
- header("Location: vpn_ipsec.php");
- exit;
}
}
@@ -127,6 +221,7 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<form action="vpn_ipsec.php" method="post">
+<script type="text/javascript" src="/javascript/row_toggle.js"></script>
<?php
if ($savemsg)
print_info_box($savemsg);
@@ -136,14 +231,14 @@ include("head.inc");
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="vpn ipsec">
<tr>
<td class="tabnavtbl">
- <?php
- $tab_array = array();
- $tab_array[0] = array(gettext("Tunnels"), true, "vpn_ipsec.php");
- $tab_array[1] = array(gettext("Mobile clients"), false, "vpn_ipsec_mobile.php");
- $tab_array[2] = array(gettext("Pre-Shared Keys"), false, "vpn_ipsec_keys.php");
- $tab_array[3] = array(gettext("Advanced Settings"), false, "vpn_ipsec_settings.php");
- display_top_tabs($tab_array);
- ?>
+<?php
+ $tab_array = array();
+ $tab_array[0] = array(gettext("Tunnels"), true, "vpn_ipsec.php");
+ $tab_array[1] = array(gettext("Mobile clients"), false, "vpn_ipsec_mobile.php");
+ $tab_array[2] = array(gettext("Pre-Shared Keys"), false, "vpn_ipsec_keys.php");
+ $tab_array[3] = array(gettext("Advanced Settings"), false, "vpn_ipsec_settings.php");
+ display_top_tabs($tab_array);
+?>
</td>
</tr>
<tr>
@@ -171,87 +266,106 @@ include("head.inc");
</tr>
</table>
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="phase-1 entries">
- <?php
- $i = 0;
- foreach ($a_phase1 as $ph1ent) {
- if (isset( $ph1ent['disabled'])) {
- $spans = "<span class=\"gray\">";
- $spane = "</span>";
- }
- else
- $spans = $spane = "";
-
- show_ipsec_header($ph1ent);
- $counter++; // used to determine if we need to output header manually (no records exist)
- ?>
- <tr valign="top" ondblclick="document.location='vpn_ipsec_phase1.php?p1index=<?=$i;?>'">
- <td class="listlr">
+ <tr id="frheader">
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="listhdrr"><?=gettext("IKE"); ?></td>
+ <td class="listhdrr"><?=gettext("Remote Gateway"); ?></td>
+ <td class="listhdrr"><?=gettext("Mode"); ?></td>
+ <td class="listhdrr"><?=gettext("P1 Protocol"); ?></td>
+ <td class="listhdrr"><?=gettext("P1 Transforms"); ?></td>
+ <td class="listhdrr"><?=gettext("P1 Description"); ?></td>
+ <td class="list">
+ </td>
+ </tr>
+<?php
+ $i = 0;
+ foreach ($a_phase1 as $ph1ent):
+ $iconfn = "pass";
+ $spans = $spane = "";
+ if (isset($ph1ent['disabled'])) {
+ $spans = "<span class=\"gray\">";
+ $spane = "</span>";
+ $iconfn .= "_d";
+ }
+?>
+ <tr valign="top" id="fr<?=$i;?>" ondblclick="document.location='vpn_ipsec_phase1.php?p1index=<?=$i;?>'">
+ <td class="listt" align="center" valign="middle">
+ <input type="checkbox" id="frc<?=$i;?>" name="p1entry[]" value="<?=$i;?>" onclick="fr_bgcolor('<?=$i;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" />
+ </td>
+ <td class="listt" align="center" valign="middle">
+ <input name="toggle_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn?>.gif"
+ title="<?=gettext("click to toggle enabled/disabled status");?>"
+ type="image" style="height:11;width:11;border:0" />
+ </td>
+ <td class="listlr" onclick="fr_toggle(<?=$i;?>)" id="frd<?=$i;?>">
<?=$spans;?>
- <?php if (empty($ph1ent['iketype']) || $ph1ent['iketype'] == "ikev1")
- echo "V1";
- else
- echo "V2";
- ?>
+<?php
+ if (empty($ph1ent['iketype']) || $ph1ent['iketype'] == "ikev1")
+ echo "V1";
+ else
+ echo "V2";
+?>
<?=$spane;?>
</td>
- <td class="listr">
+ <td class="listr" onclick="fr_toggle(<?=$i;?>)" id="frd<?=$i;?>">
<?=$spans;?>
- <?php
- if ($ph1ent['interface']) {
- $iflabels = get_configured_interface_with_descr();
-
- $carplist = get_configured_carp_interface_list();
- foreach ($carplist as $cif => $carpip)
- $iflabels[$cif] = $carpip." (".get_vip_descr($carpip).")";
-
- $aliaslist = get_configured_ip_aliases_list();
- foreach ($aliaslist as $aliasip => $aliasif)
- $iflabels[$aliasip] = $aliasip." (".get_vip_descr($aliasip).")";
-
- $grouplist = return_gateway_groups_array();
- foreach ($grouplist as $name => $group) {
- if($group[0]['vip'] <> "")
- $vipif = $group[0]['vip'];
- else
- $vipif = $group[0]['int'];
- $iflabels[$name] = "GW Group {$name}";
- }
- $if = htmlspecialchars($iflabels[$ph1ent['interface']]);
+<?php
+ if ($ph1ent['interface']) {
+ $iflabels = get_configured_interface_with_descr();
+
+ $carplist = get_configured_carp_interface_list();
+ foreach ($carplist as $cif => $carpip)
+ $iflabels[$cif] = $carpip." (".get_vip_descr($carpip).")";
+
+ $aliaslist = get_configured_ip_aliases_list();
+ foreach ($aliaslist as $aliasip => $aliasif)
+ $iflabels[$aliasip] = $aliasip." (".get_vip_descr($aliasip).")";
+
+ $grouplist = return_gateway_groups_array();
+ foreach ($grouplist as $name => $group) {
+ if($group[0]['vip'] <> "")
+ $vipif = $group[0]['vip'];
+ else
+ $vipif = $group[0]['int'];
+ $iflabels[$name] = "GW Group {$name}";
}
- else
- $if = "WAN";
+ $if = htmlspecialchars($iflabels[$ph1ent['interface']]);
+ }
+ else
+ $if = "WAN";
- if (!isset($ph1ent['mobile']))
- echo $if."<br />".$ph1ent['remote-gateway'];
- else
- echo $if."<br /><strong>" . gettext("Mobile Client") . "</strong>";
- ?>
+ if (!isset($ph1ent['mobile']))
+ echo $if."<br />".$ph1ent['remote-gateway'];
+ else
+ echo $if."<br /><strong>" . gettext("Mobile Client") . "</strong>";
+?>
<?=$spane;?>
</td>
- <td class="listr">
+ <td class="listr" onclick="fr_toggle(<?=$i;?>)" id="frd<?=$i;?>">
<?=$spans;?>
<?=$ph1ent['mode'];?>
<?=$spane;?>
</td>
- <td class="listr">
+ <td class="listr" onclick="fr_toggle(<?=$i;?>)" id="frd<?=$i;?>">
<?=$spans;?>
<?=$p1_ealgos[$ph1ent['encryption-algorithm']['name']]['name'];?>
- <?php
- if ($ph1ent['encryption-algorithm']['keylen']) {
- if ($ph1ent['encryption-algorithm']['keylen']=="auto")
- echo " (" . gettext("auto") . ")";
- else
- echo " ({$ph1ent['encryption-algorithm']['keylen']} " . gettext("bits") . ")";
- }
- ?>
+<?php
+ if ($ph1ent['encryption-algorithm']['keylen']) {
+ if ($ph1ent['encryption-algorithm']['keylen']=="auto")
+ echo " (" . gettext("auto") . ")";
+ else
+ echo " ({$ph1ent['encryption-algorithm']['keylen']} " . gettext("bits") . ")";
+ }
+?>
<?=$spane;?>
</td>
- <td class="listr">
+ <td class="listr" onclick="fr_toggle(<?=$i;?>)" id="frd<?=$i;?>">
<?=$spans;?>
<?=$p1_halgos[$ph1ent['hash-algorithm']];?>
<?=$spane;?>
</td>
- <td class="listbg">
+ <td class="listbg" onclick="fr_toggle(<?=$i;?>)">
<?=$spans;?>
<?=htmlspecialchars($ph1ent['descr']);?>&nbsp;
<?=$spane;?>
@@ -260,182 +374,269 @@ include("head.inc");
<table border="0" cellspacing="0" cellpadding="1" summary="icons">
<tr>
<td>
- <a href="vpn_ipsec_phase1.php?p1index=<?=$i;?>">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit phase1 entry"); ?>" width="17" height="17" border="0" alt="edit" />
- </a>
+ <input onmouseover="fr_insline(<?=$i;?>, true)" onmouseout="fr_insline(<?=$i;?>, false)"
+ name="move_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif"
+ title="<?=gettext("move selected entries before this");?>"
+ type="image" style="height:17;width:17;border:0" />
</td>
<td>
- <a href="vpn_ipsec.php?act=delph1&amp;p1index=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this phase1 and all associated phase2 entries?"); ?>')">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete phase1 entry"); ?>" width="17" height="17" border="0" alt="delete" />
+ <a href="vpn_ipsec_phase1.php?p1index=<?=$i;?>">
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit phase1 entry"); ?>" width="17" height="17" border="0" alt="edit" />
</a>
</td>
</tr>
- <?php if (!isset($ph1ent['mobile'])): ?>
<tr>
<td>
+ <input name="del_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif"
+ title="<?=gettext("delete phase1 entry");?>"
+ type="image" style="height:17;width:17;border:0"
+ onclick="return confirm('<?=gettext("Do you really want to delete this phase1 and all associated phase2 entries?"); ?>')" />
</td>
<td>
+<?php
+ if (!isset($ph1ent['mobile'])):
+?>
<a href="vpn_ipsec_phase1.php?dup=<?=$i;?>">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("copy phase1 entry"); ?>" width="17" height="17" border="0" alt="add" />
</a>
+<?php
+ endif;
+?>
</td>
</tr>
- <?php endif; ?>
</table>
</td>
</tr>
<tr>
+ <td class="listt">&nbsp;</td>
+ <td class="listt">&nbsp;</td>
<td class="listrborder" colspan="6">
- <div id="shph2but-<?=$i?>">
- <?php
- $phase2count=0;
- foreach ($a_phase2 as $ph2ent) {
- if ($ph2ent['ikeid'] != $ph1ent['ikeid'])
- continue;
- $phase2count++;
- }
- ?>
+<?php
+ if (isset($_POST["tdph2-{$i}-visible"]))
+ $tdph2_visible = htmlspecialchars($_POST["tdph2-{$i}-visible"]);
+ else
+ $tdph2_visible = 0;
+?>
+ <input type="hidden" name="tdph2-<?=$i;?>-visible" id="tdph2-<?=$i;?>-visible" value="<?=$tdph2_visible?>" />
+ <div id="shph2but-<?=$i?>" <?php echo ($tdph2_visible == '1' ? 'style="display:none"' : '');?>>
+<?php
+ $phase2count=0;
+ foreach ($a_phase2 as $ph2ent) {
+ if ($ph2ent['ikeid'] != $ph1ent['ikeid'])
+ continue;
+ $phase2count++;
+ }
+ $fr_prefix = "frp2{$i}";
+ $fr_header = $fr_prefix . "header";
+?>
<input type="button" onclick="show_phase2('tdph2-<?=$i?>','shph2but-<?=$i?>')" value="+" /> - <?php printf(gettext("Show %s Phase-2 entries"), $phase2count); ?>
</div>
- <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0" id="tdph2-<?=$i?>" style="display:none" summary="phase-2 entries">
- <tr>
+ <div id="tdph2-<?=$i?>" <?php echo ($tdph2_visible != '1' ? 'style="display:none"' : '');?>>
+ <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0" summary="phase-2 entries">
+ <tr id="<?=$fr_header;?>">
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
<td class="listhdrr"><?=gettext("Mode"); ?></td>
- <?php if(($ph2ent['mode'] == "tunnel") or ($ph2ent['mode'] == "tunnel6")): ?>
<td class="listhdrr"><?=gettext("Local Subnet"); ?></td>
<td class="listhdrr"><?=gettext("Remote Subnet"); ?></td>
- <?php endif; ?>
<td class="listhdrr"><?=gettext("P2 Protocol"); ?></td>
<td class="listhdrr"><?=gettext("P2 Transforms"); ?></td>
<td class="listhdrr"><?=gettext("P2 Auth Methods"); ?></td>
- <td class ="list">
- <a href="vpn_ipsec_phase2.php?ikeid=<?=$ph1ent['ikeid'];?><?php if (isset($ph1ent['mobile'])) echo "&amp;mobile=true";?>">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add phase2 entry"); ?>" width="17" height="17" border="0" alt="add" />
- </a>
- </td>
+ <td class ="list">&nbsp;</td>
</tr>
- <?php
- foreach ($a_phase2 as $ph2ent):
- if ($ph2ent['ikeid'] != $ph1ent['ikeid'])
- continue;
-
- if (isset( $ph2ent['disabled']) || isset($ph1ent['disabled'])) {
- $spans = "<span class=\"gray\">";
- $spane = "</span>";
- }
- else
- $spans = $spane = "";
- ?>
- <tr valign="top" ondblclick="document.location='vpn_ipsec_phase2.php?p2index=<?=$ph2ent['uniqid'];?>'">
-
- <td class="listlr nowrap">
- <?=$spans;?>
- <?=$ph2ent['mode'];?>
- <?=$spane;?>
+<?php
+ $j = 0;
+ foreach ($a_phase2 as $ph2index => $ph2ent):
+ if ($ph2ent['ikeid'] != $ph1ent['ikeid'])
+ continue;
+
+ $fr_c = $fr_prefix . "c" . $j;
+ $fr_d = $fr_prefix . "d" . $j;
+
+ $iconfn = "pass";
+ $spans = $spane = "";
+ if (isset($ph2ent['disabled'])) {
+ $spans = "<span class=\"gray\">";
+ $spane = "</span>";
+ $iconfn .= "_d";
+ }
+?>
+ <tr valign="top" id="<?=$fr_prefix . $j;?>" ondblclick="document.location='vpn_ipsec_phase2.php?p2index=<?=$ph2ent['uniqid'];?>'">
+ <td class="listt" align="center" valign="middle">
+ <input type="checkbox" id="<?=$fr_c;?>" name="p2entry[]" value="<?=$ph2index;?>" onclick="fr_bgcolor('<?=$j;?>', '<?=$fr_prefix;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" />
</td>
- <?php
- if(($ph2ent['mode'] <> "tunnel") and ($ph2ent['mode'] <> "tunnel6")) {
- echo "<td class=\"listr nowrap\">&nbsp;</td><td class=\"listr nowrap\">&nbsp;</td>";
- }
- ?>
- <?php if(($ph2ent['mode'] == "tunnel") or ($ph2ent['mode'] == "tunnel6")): ?>
- <td class="listr nowrap">
- <?=$spans;?>
- <?=ipsec_idinfo_to_text($ph2ent['localid']); ?>
- <?=$spane;?>
+ <td class="listt" align="center" valign="middle">
+ <input name="togglep2_<?=$ph2index;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn?>.gif"
+ title="<?=gettext("click to toggle enabled/disabled status");?>"
+ type="image" style="height:11;width:11;border:0" />
</td>
- <td class="listr nowrap">
+ <td class="listlr nowrap" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
<?=$spans;?>
- <?=ipsec_idinfo_to_text($ph2ent['remoteid']); ?>
+ <?=$ph2ent['mode'];?>
<?=$spane;?>
</td>
- <?php endif; ?>
- <td class="listr nowrap">
+<?php
+ if(($ph2ent['mode'] == "tunnel") or ($ph2ent['mode'] == "tunnel6")):
+?>
+ <td class="listr nowrap" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
+ <?=$spans;?>
+ <?=ipsec_idinfo_to_text($ph2ent['localid']); ?>
+ <?=$spane;?>
+ </td>
+ <td class="listr nowrap" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
+ <?=$spans;?>
+ <?=ipsec_idinfo_to_text($ph2ent['remoteid']); ?>
+ <?=$spane;?>
+ </td>
+<?php
+ else:
+ echo "<td class=\"listr nowrap\">&nbsp;</td><td class=\"listr nowrap\">&nbsp;</td>";
+ endif;
+?>
+ <td class="listr nowrap" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
<?=$spans;?>
- <?php echo $p2_protos[$ph2ent['protocol']]; ?>
+ <?php echo $p2_protos[$ph2ent['protocol']]; ?>
<?=$spane;?>
</td>
- <td class="listr">
+ <td class="listr" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
<?=$spans;?>
- <?php
- foreach ($ph2ent['encryption-algorithm-option'] as $k => $ph2ea) {
- if ($k)
- echo ", ";
- echo $p2_ealgos[$ph2ea['name']]['name'];
- if ($ph2ea['keylen']) {
- if ($ph2ea['keylen']=="auto")
- echo " (" . gettext("auto") . ")";
- else
- echo " ({$ph2ea['keylen']} " . gettext("bits") . ")";
- }
+<?php
+ foreach ($ph2ent['encryption-algorithm-option'] as $k => $ph2ea) {
+ if ($k)
+ echo ", ";
+ echo $p2_ealgos[$ph2ea['name']]['name'];
+ if ($ph2ea['keylen']) {
+ if ($ph2ea['keylen']=="auto")
+ echo " (" . gettext("auto") . ")";
+ else
+ echo " ({$ph2ea['keylen']} " . gettext("bits") . ")";
}
- ?>
+ }
+?>
<?=$spane;?>
</td>
- <td class="listr nowrap">
+ <td class="listr nowrap" id="<?=$fr_d;?>" onclick="fr_toggle('<?=$j;?>', '<?=$fr_prefix;?>')">
<?=$spans;?>
- <?php
- if (!empty($ph2ent['hash-algorithm-option']) && is_array($ph2ent['hash-algorithm-option'])) {
- foreach ($ph2ent['hash-algorithm-option'] as $k => $ph2ha) {
- if ($k)
- echo ", ";
- echo $p2_halgos[$ph2ha];
- }
+<?php
+ if (!empty($ph2ent['hash-algorithm-option']) && is_array($ph2ent['hash-algorithm-option'])) {
+ foreach ($ph2ent['hash-algorithm-option'] as $k => $ph2ha) {
+ if ($k)
+ echo ", ";
+ echo $p2_halgos[$ph2ha];
}
- ?>
+ }
+?>
<?=$spane;?>
</td>
- <td class="list nowrap">
+ <td class="list nowrap" valign="middle">
+ <input onmouseover="fr_insline(<?=$j;?>, true, '<?=$fr_prefix;?>')" onmouseout="fr_insline(<?=$j;?>, false, '<?=$fr_prefix;?>')"
+ name="movep2_<?=$j;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif"
+ title="<?=gettext("move selected entries before this");?>"
+ type="image" style="height:17;width:17;border:0" />
<a href="vpn_ipsec_phase2.php?p2index=<?=$ph2ent['uniqid'];?>">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit phase2 entry"); ?>" width="17" height="17" border="0" alt="edit" />
</a>
- <a href="vpn_ipsec.php?act=delph2&amp;p1index=<?=$i;?>&amp;p2index=<?=$ph2ent['uniqid'];?>" onclick="return confirm('<?=gettext("Do you really want to delete this phase2 entry?"); ?>')">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete phase2 entry"); ?>" width="17" height="17" border="0" alt="delete" />
- </a>
+ <input name="delp2_<?=$ph2index;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif"
+ title="<?=gettext("delete phase2 entry");?>"
+ type="image" style="height:17;width:17;border:0"
+ onclick="return confirm('<?=gettext("Do you really want to delete this phase2 entry?"); ?>')" />
<a href="vpn_ipsec_phase2.php?dup=<?=$ph2ent['uniqid'];?>">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add a new Phase 2 based on this one"); ?>" width="17" height="17" border="0" alt="add" />
</a>
</td>
</tr>
-
- <?php endforeach; ?>
-
+<?php
+ $j++;
+ endforeach;
+?>
+ <tr valign="top" id="<?=$fr_prefix . $j;?>">
+ <td class="list" colspan="8"></td>
+ <td class="list nowrap" valign="middle">
+<?php
+ if ($j == 0):
+?>
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected phase2 entries to end");?>" border="0" alt="move" />
+<?php
+ else:
+?>
+ <input onmouseover="fr_insline(<?=$j;?>, true, '<?=$fr_prefix;?>')" onmouseout="fr_insline(<?=$j;?>, false, '<?=$fr_prefix;?>')" name="movep2_<?=$j;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17;border:0" title="<?=gettext("move selected phase2 entries to end");?>" />
+<?php
+ endif;
+?>
+ <a href="vpn_ipsec_phase2.php?ikeid=<?=$ph1ent['ikeid'];?><?php if (isset($ph1ent['mobile'])) echo "&amp;mobile=true";?>">
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add phase2 entry"); ?>" width="17" height="17" border="0" alt="add" />
+ </a>
+<?php
+ if ($j == 0):
+?>
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected phase2 entries");?>" border="0" alt="delete" />
+<?php
+ else:
+?>
+ <input name="delp2" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected phase2 entries");?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected phase2 entries?");?>')" />
+<?php
+ endif;
+?>
+ </td>
+ </tr>
</table>
+ </div>
</td>
</tr>
- <tr>
- <td>
- &nbsp;
- </td>
- </tr>
- <?php
- $i++;
- }
- if(!$counter)
- show_ipsec_header($ph1ent);
- ?>
- <tr>
- <td class="list" colspan="6"></td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1" summary="add">
+<?php
+ $i++;
+ endforeach; // $a_phase1 as $ph1ent
+?>
+ <tr valign="top" id="fr<?=$i;?>">
+ <td class="list" colspan="8"></td>
+ <td class="list nowrap" valign="middle">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
- <td width="17"></td>
+ <td>
+<?php
+ if ($i == 0):
+?>
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected phase1 entries to end");?>" border="0" alt="move" />
+<?php
+ else:
+?>
+ <input onmouseover="fr_insline(<?=$i;?>, true)" onmouseout="fr_insline(<?=$i;?>, false)" name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17;border:0" title="<?=gettext("move selected phase1 entries to end");?>" />
+<?php
+ endif;
+?>
+ </td>
<td>
<a href="vpn_ipsec_phase1.php">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add phase1 entry"); ?>" width="17" height="17" border="0" alt="add" />
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new phase1");?>" alt="add" />
</a>
</td>
</tr>
+ <tr>
+ <td>
+<?php
+ if ($i == 0):
+?>
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected phase1 entries");?>" border="0" alt="delete" />
+<?php
+ else:
+?>
+ <input name="del" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected phase1 entries");?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected phase1 entries?");?>')" />
+<?php
+ endif;
+?>
+ </td>
+ </tr>
</table>
</td>
</tr>
<tr>
- <td colspan="7">
+ <td colspan="8">
<p>
<span class="vexpl">
<span class="red">
<strong><?=gettext("Note"); ?>:<br /></strong>
</span>
- <?=gettext("You can check your IPsec status at"); ?> <a href="diag_ipsec.php"><?=gettext("Status:IPsec"); ?></a>.<br />
+ <?=gettext("You can check your IPsec status at"); ?> <a href="diag_ipsec.php"><?=gettext("Status:IPsec"); ?></a>.<br />
<?=gettext("IPsec Debug Mode can be enabled at"); ?> <a href="vpn_ipsec_settings.php"><?=gettext("VPN:IPsec:Advanced Settings"); ?></a>.<br />
<?=gettext("IPsec can be set to prefer older SAs at"); ?> <a href="vpn_ipsec_settings.php"><?=gettext("VPN:IPsec:Advanced Settings"); ?></a>.
</span>
@@ -453,34 +654,11 @@ include("head.inc");
//<![CDATA[
function show_phase2(id, buttonid) {
document.getElementById(buttonid).innerHTML='';
- aodiv = document.getElementById(id);
- aodiv.style.display = "block";
+ document.getElementById(id).style.display = "block";
+ var visible = id + '-visible';
+ document.getElementById(visible).value = "1";
}
//]]>
</script>
</body>
</html>
-
-<?php
-
-function show_ipsec_header($ph1ent) {
- global $g;
- if (isset($ph1ent['mobile']))
- $mobile = "&mobile=true";
- ?>
- <tr>
- <td class="listhdrr"><?=gettext("IKE"); ?></td>
- <td class="listhdrr"><?=gettext("Remote Gateway"); ?></td>
- <td class="listhdrr"><?=gettext("Mode"); ?></td>
- <td class="listhdrr"><?=gettext("P1 Protocol"); ?></td>
- <td class="listhdrr"><?=gettext("P1 Transforms"); ?></td>
- <td class="listhdrr"><?=gettext("P1 Description"); ?></td>
- <td class ="list">
- </td>
- </tr>
-
-<?php
-
-}
-
-?>
diff --git a/usr/local/www/vpn_ipsec_phase2.php b/usr/local/www/vpn_ipsec_phase2.php
index 370416e..461a708 100644
--- a/usr/local/www/vpn_ipsec_phase2.php
+++ b/usr/local/www/vpn_ipsec_phase2.php
@@ -255,7 +255,7 @@ if ($_POST) {
if (!count($ealgos)) {
$input_errors[] = gettext("At least one encryption algorithm must be selected.");
} else {
- if (empty($pconfig['halgo'])) {
+ if (empty($pconfig['halgos'])) {
foreach ($ealgos as $ealgo) {
if (!strpos($ealgo['name'], "gcm")) {
$input_errors[] = gettext("At least one hashing algorithm needs to be selected.");
diff --git a/usr/local/www/widgets/widgets/gateways.widget.php b/usr/local/www/widgets/widgets/gateways.widget.php
index 24b8afd..f8cb056 100644
--- a/usr/local/www/widgets/widgets/gateways.widget.php
+++ b/usr/local/www/widgets/widgets/gateways.widget.php
@@ -44,32 +44,21 @@ $counter = 1;
<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0" summary="gateway status">
<tr>
- <td class="vncellt" width="30%" id="gatewayname">
- Name
- </td>
- <td width="70%" class="listr">
- <table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: fixed;" summary="heading">
- <tr>
- <td width="25%" class="listhdrr ellipsis">RTT</td>
- <td width="25%" class="listhdrr ellipsis">Loss</td>
- <td width="50%" class="listhdrr ellipsis">Status</td>
- </tr>
- </table>
- </td>
+ <td class="listhdrr" id="gatewayname" align="center">Name</td>
+ <td class="listhdrr" align="center">RTT</td>
+ <td class="listhdrr" align="center">Loss</td>
+ <td class="listhdrr" align="center">Status</td>
</tr>
<?php foreach ($a_gateways as $gname => $gateway) { ?>
<tr>
- <td class="vncellt" width="30%" id="gateway<?php echo $counter; ?>">
+ <td class="listhdrr" id="gateway<?php echo $counter; ?>" rowspan="2" align="center">
<strong>
<?php echo htmlspecialchars($gateway['name']); ?>
</strong>
<?php $counter++; ?>
</td>
- <td width="70%" class="listr ellipsis">
- <table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: fixed;" summary="address">
- <tr>
- <td class="vncellt ellipsis" width="100%">
- <div id="gateway<?php echo $counter; ?>" style="display:inline">
+ <td colspan="3" class="listr ellipsis" summary="address" align="center">
+ <div id="gateway<?php echo $counter; ?>" style="display:inline"><b>
<?php
$if_gw = '';
if (is_ipaddr($gateway['gateway']))
@@ -84,13 +73,11 @@ $counter = 1;
unset ($if_gw);
$counter++;
?>
- </div>
+ </b></div>
</td>
- </tr>
- </table>
- <table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: fixed;" summary="statistics">
- <tr>
- <td width="25%" class="listlr ellipsis" align="center" id="gateway<?php echo $counter; ?>">
+ </tr>
+ <tr>
+ <td class="listr ellipsis" align="center" id="gateway<?php echo $counter; ?>">
<?php
if ($gateways_status[$gname])
echo htmlspecialchars($gateways_status[$gname]['delay']);
@@ -99,7 +86,7 @@ $counter = 1;
?>
<?php $counter++; ?>
</td>
- <td width="25%" class="listr ellipsis" align="center" id="gateway<?php echo $counter; ?>">
+ <td class="listr ellipsis" align="center" id="gateway<?php echo $counter; ?>">
<?php
if ($gateways_status[$gname])
echo htmlspecialchars($gateways_status[$gname]['loss']);
@@ -108,8 +95,6 @@ $counter = 1;
?>
<?php $counter++; ?>
</td>
- <td width="50%" class="listr ellipsis" id="gateway<?php echo $counter ?>" >
- <table border="0" cellpadding="0" cellspacing="2" style="table-layout: fixed;" summary="status">
<?php
if ($gateways_status[$gname]) {
if (stristr($gateways_status[$gname]['status'], "force_down")) {
@@ -135,14 +120,9 @@ $counter = 1;
$online = gettext("Unknown");
$bgcolor = "#ADD8E6"; // lightblue
}
- echo "<tr><td class=\"ellipsis\" bgcolor=\"$bgcolor\">&nbsp;$online&nbsp;</td></tr>\n";
+ echo "<td class=\"ellipsis\" bgcolor=\"$bgcolor\" align=\"center\">$online</td>\n";
$counter++;
?>
- </table>
- </td>
- </tr>
- </table>
- </td>
</tr>
<?php } // foreach ?>
</table>
diff --git a/usr/local/www/widgets/widgets/interfaces.widget.php b/usr/local/www/widgets/widgets/interfaces.widget.php
index 22b15d9..92a5ffb 100644
--- a/usr/local/www/widgets/widgets/interfaces.widget.php
+++ b/usr/local/www/widgets/widgets/interfaces.widget.php
@@ -49,7 +49,7 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
$iswireless = is_interface_wireless($ifdescr);
?>
<tr>
- <td class="vncellt" width="40%">
+ <td class="vncellt" rowspan="2">
<?php
if($ifinfo['ppplink']) {
echo "<img src='./themes/{$g['theme']}/images/icons/icon_3g.gif' alt='3g' />";
@@ -67,39 +67,37 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
<?=htmlspecialchars($ifname);?></span></u></strong>
<?php
if ($ifinfo['dhcplink'])
- echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(DHCP)";
+ echo "&nbsp;(DHCP)";
?>
</td>
- <td width="60%" class="listr">
- <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="status">
- <tr>
- <?php if($ifinfo['status'] == "up" || $ifinfo['status'] == "associated") { ?>
- <td>
+ <?php if($ifinfo['status'] == "up" || $ifinfo['status'] == "associated") { ?>
+ <td rowspan="2" class="listr" align="center">
<div id="<?php echo $ifname;?>-up" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" alt="up" /></div>
</td>
<?php } else if ($ifinfo['status'] == "no carrier") { ?>
- <td>
+ <td rowspan="2" class="listr" align="center">
<div id="<?php echo $ifname;?>-down" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" alt="down" /></div>
</td>
<?php } else if ($ifinfo['status'] == "down") { ?>
- <td>
+ <td rowspan="2" class="listr" align="center">
<div id="<?php echo $ifname;?>-block" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" alt="disabled" /></div>
</td>
<?php } else { ?><?=htmlspecialchars($ifinfo['status']); }?>
- <td>
+ <td class="listr">
<div id="<?php echo $ifname;?>-media" style="display:inline"><?=htmlspecialchars($ifinfo['media']);?></div>
</td>
</tr>
- </table>
- <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="summary">
<tr>
- <td class="vncellt" width="100%">
- <div id="<?php echo $ifname;?>-ip" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddr']);?> </div>
- <br />
- <div id="<?php echo $ifname;?>-ipv6" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddrv6']);?> </div>
- </td>
+ <td class="listr"><b>
+ <?php if($ifinfo['ipaddr'] != "") { ?>
+ <div id="<?php echo $ifname;?>-ip" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddr']);?> </div>
+ <br />
+ <?php }
+ if ($ifinfo['ipaddrv6'] != "") { ?>
+ <div id="<?php echo $ifname;?>-ipv6" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddrv6']);?> </div>
+ <?php } ?>
+ </b></td>
</tr>
- </table>
- </td></tr>
+ </tr>
<?php }//end for each ?>
</table>
diff --git a/usr/local/www/widgets/widgets/ipsec.widget.php b/usr/local/www/widgets/widgets/ipsec.widget.php
index 9d35e0b..930a560 100644
--- a/usr/local/www/widgets/widgets/ipsec.widget.php
+++ b/usr/local/www/widgets/widgets/ipsec.widget.php
@@ -163,26 +163,33 @@ if (isset($config['ipsec']['phase1'])){?>
<div id="ipsec-mobile" style="display:none;background-color:#EEEEEE;">
<div style="padding: 10px">
<div style="display:table-row;">
- <div class="widgetsubheader" style="display:table-cell;width:140px">User/Time</div>
- <div class="widgetsubheader" style="display:table-cell;width:130px">Local/Remote</div>
- <div class="widgetsubheader" style="display:table-cell;width:30px">&nbsp;</div>
+ <div class="widgetsubheader" style="display:table-cell;width:140px">User</div>
+ <div class="widgetsubheader" style="display:table-cell;width:130px">IP</div>
+ <div class="widgetsubheader" style="display:table-cell;width:30px">Status;</div>
</div>
<div style="max-height:105px;overflow:auto;">
-<?php foreach ($mobile as $muser) : ?>
+<?php
+ if (is_array($mobile['pool'])):
+ foreach ($mobile['pool'] as $pool):
+ if (is_array($pool['lease'])):
+ foreach ($pool['lease'] as $muser) : ?>
<div style="display:table-row;">
<div class="listlr" style="display:table-cell;width:139px">
- <?php echo htmlspecialchars($muser['username']);?><br />
- <?php echo htmlspecialchars($muser['logintime']);?>
+ <?php echo htmlspecialchars($muser['id']);?><br />
</div>
<div class="listr" style="display:table-cell;width:130px">
- <?php echo htmlspecialchars($muser['local']);?><br />
- <?php echo htmlspecialchars($muser['remote']);?>
+ <?php echo htmlspecialchars($muser['host']);?><br />
</div>
- <div class="listr" style="display:table-cell;width:30px" align="center">
- <a href="diag_ipsec.php?act=disconnect&amp;user=<?php echo $muser['username']; ?>"><img src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' height='17' width='17' border='0' alt='x' /></a>
+ <div class="listr" style="display:table-cell;width:30px">
+ <?php echo htmlspecialchars($muser['status']);?><br/>
</div>
</div>
-<?php endforeach; ?>
+<?php
+ endforeach;
+ endif;
+ endforeach;
+ endif;
+?>
</div>
</div>
</div>
diff --git a/usr/local/www/widgets/widgets/traffic_graphs.widget.php b/usr/local/www/widgets/widgets/traffic_graphs.widget.php
index 2dedc2d..3f9bba7 100644
--- a/usr/local/www/widgets/widgets/traffic_graphs.widget.php
+++ b/usr/local/www/widgets/widgets/traffic_graphs.widget.php
@@ -98,12 +98,6 @@ if (isset($a_config["scale_type"])) {
?>
<input type="hidden" id="traffic_graphs-config" name="traffic_graphs-config" value="" />
-<?php
- //set variables for traffic graph
- $width = "100%";
- $height = "150";
-?>
-
<div id="traffic_graphs-settings" class="widgetconfigdiv" style="display:none;">
<form action="/widgets/widgets/traffic_graphs.widget.php" method="post" name="iform" id="iform">
<?php foreach ($ifdescrs as $ifname => $ifdescr) { ?>
@@ -117,14 +111,16 @@ if (isset($a_config["scale_type"])) {
$selected_radio = $config["widgets"]["trafficgraphs"]["scale_type"];
if ($selected_radio == "up") {
$scale_type_up = "checked=\"checked\"";
+ $scale_type_follow="";
}
else if ($selected_radio == "follow") {
+ $scale_type_up="";
$scale_type_follow = "checked=\"checked\"";
}
}
?>
- <input name="scale_type_up" class="radio" type="radio" id="scale_type_up" value="up" <?php echo $scale_type_up; ?> onchange="updateGraphDisplays();" /> <span>up</span>
- <input name="scale_type_follow" class="radio" type="radio" id="scale_type_follow" value="follow" <?php echo $scale_type_follow; ?> onchange="updateGraphDisplays();" /> <span>follow</span><br /><br />
+ <input name="scale_type" class="radio" type="radio" id="scale_type_up" value="up" <?php echo $scale_type_up; ?> onchange="updateGraphDisplays();" /> <span>up</span>
+ <input name="scale_type" class="radio" type="radio" id="scale_type_follow" value="follow" <?php echo $scale_type_follow; ?> onchange="updateGraphDisplays();" /> <span>follow</span><br /><br />
Refresh Interval:
<select name="refreshinterval" class="formfld" id="refreshinterval" onchange="updateGraphDisplays();">
<?php for ($i = 1; $i <= 10; $i += 1) { ?>
@@ -173,11 +169,9 @@ foreach ($ifdescrs as $ifname => $ifdescr) {
<div style="clear:both;"></div>
</div>
<div id="<?=$ifname;?>graphdiv" style="display:<?php echo $graphdisplay;?>">
- <object data="graph.php?ifnum=<?=$ifname;?>&amp;ifname=<?=rawurlencode($ifdescr);?>&amp;timeint=<?=$refreshinterval;?>&amp;initdelay=<?=($graphcounter+1) * 2;?>">
+ <object data="graph.php?ifnum=<?=$ifname;?>&amp;ifname=<?=rawurlencode($ifdescr);?>&amp;timeint=<?=$refreshinterval;?>&amp;initdelay=<?=($graphcounter+1) * 2;?>" height="100%" width="100%">
<param name="id" value="graph" />
<param name="type" value="image/svg+xml" />
- <param name="width" value="<? echo $width; ?>" />
- <param name="height" value="<? echo $height; ?>" />
<param name="pluginspage" value="http://www.adobe.com/svg/viewer/install/auto" />
</object>
</div>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
index eccdc83..3775142 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
@@ -439,7 +439,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>BattleNET,EAOrigin,GameForWindowsLive,PlayStationConsoles,Steam,WiiConsoles,XboxConsoles,ARMA2,ARMA3,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,Crysis3,DeltaForce,DeadSpace2,DeadSpace3,Dirt3,DOOM3,DragonAge2,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,LeagueofLegends,Lineage2,MassEffect3,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,QuakeIII,QuakeIV,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -448,6 +448,52 @@
<type>submit</type>
</field>
<field>
+ <name>Enable/Disable specific game consoles and services</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>BattleNET</name>
+ <type>checkbox</type>
+ <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlenet</bindstofield>
+ </field>
+ <field>
+ <name>EAOrigin</name>
+ <type>checkbox</type>
+ <typehint>EA Origin Client - Some PC games by EA use this.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eaorigin</bindstofield>
+ </field>
+ <field>
+ <name>GameForWindowsLive</name>
+ <type>checkbox</type>
+ <typehint>Games for Windows Live</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gamesforwindowslive</bindstofield>
+ </field>
+ <field>
+ <name>PlayStationConsoles</name>
+ <type>checkbox</type>
+ <typehint>PlayStation Consoles - This should cover all ports required for the Playstation 4, Playstation, PS Vita</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstationconsoles</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam Game Client (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2 and many other games on the Steam)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
+ <name>WiiConsoles</name>
+ <type>checkbox</type>
+ <typehint>Wii Consoles - Wii, Wii U, DS and 3DS</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;wiiconsoles</bindstofield>
+ </field>
+ <field>
+ <name>XboxConsoles</name>
+ <type>checkbox</type>
+ <typehint>Xbox Consoles - Xbox 360 and Xbox One</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;xboxconsoles</bindstofield>
+ </field>
+ <field>
<name>Enable/Disable specific games</name>
<type>listtopic</type>
</field>
@@ -458,10 +504,10 @@
<bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
</field>
<field>
- <name>BattleNET</name>
+ <name>ARMA3</name>
<type>checkbox</type>
- <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;battlenet</bindstofield>
+ <typehint>ARMA 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma3</bindstofield>
</field>
<field>
<name>Battlefield2</name>
@@ -472,7 +518,7 @@
<field>
<name>Battlefield3</name>
<type>checkbox</type>
- <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <typehint>Battlefield 3 and 4 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
</field>
<field>
@@ -506,6 +552,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
</field>
<field>
+ <name>Crysis3</name>
+ <type>checkbox</type>
+ <typehint>Crysis 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis3</bindstofield>
+ </field>
+ <field>
+ <name>DeadSpace2</name>
+ <type>checkbox</type>
+ <typehint>Dead Space2 - this game uses a HUGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;deadspace2</bindstofield>
+ </field>
+ <field>
+ <name>DeadSpace3</name>
+ <type>checkbox</type>
+ <typehint>Dead Space 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;deadspace3</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
@@ -524,6 +588,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;doom3</bindstofield>
</field>
<field>
+ <name>DragonAge2</name>
+ <type>checkbox</type>
+ <typehint>Dragon Age 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dragonage2</bindstofield>
+ </field>
+ <field>
<name>EmpireEarth</name>
<type>checkbox</type>
<typehint>Empire Earth</typehint>
@@ -578,12 +648,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
- <name>Halo2</name>
- <type>checkbox</type>
- <typehint>Halo2 via Xbox live</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
- </field>
- <field>
<name>LeagueofLegends</name>
<type>checkbox</type>
<typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -596,6 +660,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MassEffect3</name>
+ <type>checkbox</type>
+ <typehint>Mass Effect 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;masseffect3</bindstofield>
+ </field>
+ <field>
<name>MechwarriorOnline</name>
<type>checkbox</type>
<typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -620,12 +690,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
</field>
<field>
- <name>PlayStation3</name>
- <type>checkbox</type>
- <typehint>PlayStation 3</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
- </field>
- <field>
<name>OperationFlashpointDR</name>
<type>checkbox</type>
<typehint>Operation Flashpoint: Dragon Rising</typehint>
@@ -650,12 +714,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
</field>
<field>
- <name>Steam</name>
- <type>checkbox</type>
- <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
- </field>
- <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
@@ -686,12 +744,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;wow</bindstofield>
</field>
<field>
- <name>Xbox360</name>
- <type>checkbox</type>
- <typehint>XBox 360 and Games for Windows Live</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
- </field>
- <field>
<name>Next</name>
<type>submit</type>
</field>
@@ -709,7 +761,7 @@
<type>checkbox</type>
<typehint>Other networking protocols</typehint>
<description>This will help raise or lower the priority of other protocols higher than most traffic.</description>
- <enablefields>AIM,AppleRemoteDesktop,DNS,HTTP,ICMP,ICQ,IMAP,IPSEC,IRC,Jabber,LotusNotes,MSN,MSRDP,MySqlServer,PCAnywhere,POP3,PPTP,RTSP,SMB,SMTP,SNMP,StreamingMP3,TeamSpeak,VNC,NNTP,CVSUP,Slingbox,HBCI</enablefields>
+ <enablefields>AppleRemoteDesktop,MSRDP,PCAnywhere,VNC,AIM,Facetime,GoogleHangouts,ICQ,IRC,Jabber,MSN,TeamSpeak,TeamSpeak3,Ventrilo,PPTP,IPSEC,iTunesRadio,StreamingMP3,RTSP,HTTP,IMAP,LotusNotes,POP3,SMTP,BattleNETDownloader,SteamDownloader,APNS,AppleMobileSync,CrashPlan,CVSUP,DNS,GIT,HBCI,ICMP,MySqlServer,NNTP,Slingbox,SMB,SNMP,Subversion</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step7-&gt;enable</bindstofield>
</field>
@@ -722,6 +774,26 @@
<type>listtopic</type>
</field>
<field>
+ <name>AppleRemoteDesktop</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;appleremotedesktop</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Remote Desktop</typehint>
+ </field>
+ <field>
<name>MSRDP</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;msrdp</bindstofield>
@@ -742,6 +814,26 @@
<typehint>Microsoft Remote Desktop Protocol</typehint>
</field>
<field>
+ <name>PCAnywhere</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;pcanywhere</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Symantec PC Anywhere</typehint>
+ </field>
+ <field>
<name>VNC</name>
<bindstofield>ezshaper-&gt;step7-&gt;vnc</bindstofield>
<type>select</type>
@@ -762,8 +854,12 @@
<typehint>Virtual Network Computing</typehint>
</field>
<field>
- <name>AppleRemoteDesktop</name>
- <bindstofield>ezshaper-&gt;step7-&gt;appleremotedesktop</bindstofield>
+ <name>Messengers</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>AIM</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;aolinstantmessenger</bindstofield>
<type>select</type>
<options>
<option>
@@ -779,11 +875,11 @@
<value>L</value>
</option>
</options>
- <typehint>Apple Remote Desktop</typehint>
+ <typehint>AOL Instant Messenger</typehint>
</field>
<field>
- <name>PCAnywhere</name>
- <bindstofield>ezshaper-&gt;step7-&gt;pcanywhere</bindstofield>
+ <name>Facetime</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;facetime</bindstofield>
<type>select</type>
<options>
<option>
@@ -799,11 +895,27 @@
<value>L</value>
</option>
</options>
- <typehint>Symantec PC Anywhere</typehint>
+ <typehint>Facetime</typehint>
</field>
<field>
- <name>Messengers</name>
- <type>listtopic</type>
+ <name>ICQ</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;icq</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>ICQ</typehint>
</field>
<field>
<name>IRC</name>
@@ -846,8 +958,8 @@
<typehint>Jabber instant messanger</typehint>
</field>
<field>
- <name>ICQ</name>
- <bindstofield>ezshaper-&gt;step7-&gt;icq</bindstofield>
+ <name>GoogleHangouts</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;googlehangouts</bindstofield>
<type>select</type>
<options>
<option>
@@ -863,11 +975,11 @@
<value>L</value>
</option>
</options>
- <typehint>ICQ</typehint>
+ <typehint>Google Hangouts</typehint>
</field>
<field>
- <name>AIM</name>
- <bindstofield>ezshaper-&gt;step7-&gt;aolinstantmessenger</bindstofield>
+ <name>MSN</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;msnmessenger</bindstofield>
<type>select</type>
<options>
<option>
@@ -883,11 +995,11 @@
<value>L</value>
</option>
</options>
- <typehint>AOL Instant Messenger</typehint>
+ <typehint>MSN Messenger</typehint>
</field>
<field>
- <name>MSN</name>
- <bindstofield>ezshaper-&gt;step7-&gt;msnmessenger</bindstofield>
+ <name>Teamspeak</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;teamspeak</bindstofield>
<type>select</type>
<options>
<option>
@@ -903,11 +1015,11 @@
<value>L</value>
</option>
</options>
- <typehint>MSN Messenger</typehint>
+ <typehint>TeamSpeak</typehint>
</field>
<field>
- <name>Teamspeak</name>
- <bindstofield>ezshaper-&gt;step7-&gt;teamspeak</bindstofield>
+ <name>Teamspeak3</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;teamspeak3</bindstofield>
<type>select</type>
<options>
<option>
@@ -923,7 +1035,27 @@
<value>L</value>
</option>
</options>
- <typehint>TeamSpeak</typehint>
+ <typehint>TeamSpeak 3</typehint>
+ </field>
+ <field>
+ <name>Ventrilo</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;ventrilo</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Ventrilo</typehint>
</field>
<field>
<name>VPN</name>
@@ -974,6 +1106,26 @@
<type>listtopic</type>
</field>
<field>
+ <name>iTunesRadio</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;itunesradio</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>iTunes Radio - this rule uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ </field>
+ <field>
<name>StreamingMP3</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;streamingmp3</bindstofield>
@@ -1122,10 +1274,134 @@
<typehint>Lotus Notes</typehint>
</field>
<field>
+ <name>Game Downloader</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>BattleNetDownloader</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;battlenetdownloader</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Battle.NET Downloader</typehint>
+ </field>
+ <field>
+ <name>SteamDownloader</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;steamdownloader</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Steam Downloader</typehint>
+ </field>
+ <field>
<name>Miscellaneous</name>
<type>listtopic</type>
</field>
<field>
+ <name>APNS</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;apns</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Push Notification Service</typehint>
+ </field>
+ <field>
+ <name>AppleMobileSync</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;applemobilesync</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Mobile Sync</typehint>
+ </field>
+ <field>
+ <name>CrashPlan</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;crashplan</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>CrashPlan</typehint>
+ </field>
+ <field>
+ <name>CVSUP</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;cvsup</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>CVSUP</typehint>
+ </field>
+ <field>
<name>DNS</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;dns</bindstofield>
@@ -1146,6 +1422,46 @@
<typehint>Domain Name Services</typehint>
</field>
<field>
+ <name>Git</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;git</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Git Server</typehint>
+ </field>
+ <field>
+ <name>HBCI</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;hbci</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>HBCI</typehint>
+ </field>
+ <field>
<name>ICMP</name>
<bindstofield>ezshaper-&gt;step7-&gt;icmp</bindstofield>
<type>select</type>
@@ -1246,8 +1562,8 @@
<typehint>Internet News</typehint>
</field>
<field>
- <name>CVSUP</name>
- <bindstofield>ezshaper-&gt;step7-&gt;cvsup</bindstofield>
+ <name>Slingbox</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;slingbox</bindstofield>
<type>select</type>
<options>
<option>
@@ -1263,48 +1579,28 @@
<value>L</value>
</option>
</options>
- <typehint>CVSUP</typehint>
+ <typehint>Slingbox</typehint>
</field>
<field>
- <name>Slingbox</name>
- <bindstofield>ezshaper-&gt;step7-&gt;slingbox</bindstofield>
- <type>select</type>
- <options>
- <option>
- <name>Default priority</name>
- <value>D</value>
- </option>
- <option>
- <name>Higher priority</name>
- <value>H</value>
- </option>
- <option>
- <name>Lower priority</name>
- <value>L</value>
- </option>
- </options>
- <typehint>Slingbox</typehint>
- </field>
- <field>
- <name>HBCI</name>
- <bindstofield>ezshaper-&gt;step7-&gt;hbci</bindstofield>
- <type>select</type>
- <options>
- <option>
- <name>Default priority</name>
- <value>D</value>
- </option>
- <option>
- <name>Higher priority</name>
- <value>H</value>
- </option>
- <option>
- <name>Lower priority</name>
- <value>L</value>
- </option>
- </options>
- <typehint>HBCI</typehint>
- </field>
+ <name>Subversion</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;subversion</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Subversion Server</typehint>
+ </field>
<field>
<name>Next</name>
<type>submit</type>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
index 1a18f61..52e7f0d 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
@@ -447,7 +447,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>BattleNET,EAOrigin,GameForWindowsLive,PlayStationConsoles,Steam,WiiConsoles,XboxConsoles,ARMA2,ARMA3,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,Crysis3,DeltaForce,DeadSpace2,DeadSpace3,Dirt3,DOOM3,DragonAge2,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,LeagueofLegends,Lineage2,MassEffect3,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,QuakeIII,QuakeIV,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -456,6 +456,52 @@
<type>submit</type>
</field>
<field>
+ <name>Enable/Disable specific game consoles and services</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>BattleNET</name>
+ <type>checkbox</type>
+ <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlenet</bindstofield>
+ </field>
+ <field>
+ <name>EAOrigin</name>
+ <type>checkbox</type>
+ <typehint>EA Origin Client - Some PC games by EA use this.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eaorigin</bindstofield>
+ </field>
+ <field>
+ <name>GameForWindowsLive</name>
+ <type>checkbox</type>
+ <typehint>Games for Windows Live</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gamesforwindowslive</bindstofield>
+ </field>
+ <field>
+ <name>PlayStationConsoles</name>
+ <type>checkbox</type>
+ <typehint>PlayStation Consoles - This should cover all ports required for the Playstation 4, Playstation, PS Vita</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstationconsoles</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam Game Client (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2 and many other games on the Steam)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
+ <name>WiiConsoles</name>
+ <type>checkbox</type>
+ <typehint>Wii Consoles - Wii, Wii U, DS and 3DS</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;wiiconsoles</bindstofield>
+ </field>
+ <field>
+ <name>XboxConsoles</name>
+ <type>checkbox</type>
+ <typehint>Xbox Consoles - Xbox 360 and Xbox One</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;xboxconsoles</bindstofield>
+ </field>
+ <field>
<name>Enable/Disable specific games</name>
<type>listtopic</type>
</field>
@@ -466,10 +512,10 @@
<bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
</field>
<field>
- <name>BattleNET</name>
+ <name>ARMA3</name>
<type>checkbox</type>
- <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;battlenet</bindstofield>
+ <typehint>ARMA 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma3</bindstofield>
</field>
<field>
<name>Battlefield2</name>
@@ -480,7 +526,7 @@
<field>
<name>Battlefield3</name>
<type>checkbox</type>
- <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <typehint>Battlefield 3 and 4 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
</field>
<field>
@@ -514,6 +560,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
</field>
<field>
+ <name>Crysis3</name>
+ <type>checkbox</type>
+ <typehint>Crysis 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis3</bindstofield>
+ </field>
+ <field>
+ <name>DeadSpace2</name>
+ <type>checkbox</type>
+ <typehint>Dead Space2 - this game uses a HUGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;deadspace2</bindstofield>
+ </field>
+ <field>
+ <name>DeadSpace3</name>
+ <type>checkbox</type>
+ <typehint>Dead Space 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;deadspace3</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
@@ -532,6 +596,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;doom3</bindstofield>
</field>
<field>
+ <name>DragonAge2</name>
+ <type>checkbox</type>
+ <typehint>Dragon Age 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dragonage2</bindstofield>
+ </field>
+ <field>
<name>EmpireEarth</name>
<type>checkbox</type>
<typehint>Empire Earth</typehint>
@@ -586,12 +656,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
- <name>Halo2</name>
- <type>checkbox</type>
- <typehint>Halo2 via Xbox live</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
- </field>
- <field>
<name>LeagueofLegends</name>
<type>checkbox</type>
<typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -604,6 +668,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MassEffect3</name>
+ <type>checkbox</type>
+ <typehint>Mass Effect 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;masseffect3</bindstofield>
+ </field>
+ <field>
<name>MechwarriorOnline</name>
<type>checkbox</type>
<typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -628,12 +698,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
</field>
<field>
- <name>PlayStation3</name>
- <type>checkbox</type>
- <typehint>PlayStation 3</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
- </field>
- <field>
<name>OperationFlashpointDR</name>
<type>checkbox</type>
<typehint>Operation Flashpoint: Dragon Rising</typehint>
@@ -658,12 +722,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
</field>
<field>
- <name>Steam</name>
- <type>checkbox</type>
- <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
- </field>
- <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
@@ -694,12 +752,6 @@
<bindstofield>ezshaper-&gt;step6-&gt;wow</bindstofield>
</field>
<field>
- <name>Xbox360</name>
- <type>checkbox</type>
- <typehint>XBox 360 and Games for Windows Live</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
- </field>
- <field>
<name>Next</name>
<type>submit</type>
</field>
@@ -717,7 +769,7 @@
<type>checkbox</type>
<typehint>Other networking protocols</typehint>
<description>This will help raise or lower the priority of other protocols higher than most traffic.</description>
- <enablefields>AIM,AppleRemoteDesktop,DNS,HTTP,ICMP,ICQ,IMAP,IPSEC,IRC,Jabber,LotusNotes,MSN,MSRDP,MySqlServer,PCAnywhere,POP3,PPTP,RTSP,SMB,SMTP,SNMP,StreamingMP3,TeamSpeak,VNC,NNTP,CVSUP,Slingbox,HBCI</enablefields>
+ <enablefields>AppleRemoteDesktop,MSRDP,PCAnywhere,VNC,AIM,Facetime,GoogleHangouts,ICQ,IRC,Jabber,MSN,TeamSpeak,TeamSpeak3,Ventrilo,PPTP,IPSEC,iTunesRadio,StreamingMP3,RTSP,HTTP,IMAP,LotusNotes,POP3,SMTP,BattleNETDownloader,SteamDownloader,APNS,AppleMobileSync,CrashPlan,CVSUP,DNS,GIT,HBCI,ICMP,MySqlServer,NNTP,Slingbox,SMB,SNMP,Subversion</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step7-&gt;enable</bindstofield>
</field>
@@ -730,6 +782,26 @@
<type>listtopic</type>
</field>
<field>
+ <name>AppleRemoteDesktop</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;appleremotedesktop</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Remote Desktop</typehint>
+ </field>
+ <field>
<name>MSRDP</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;msrdp</bindstofield>
@@ -750,6 +822,26 @@
<typehint>Microsoft Remote Desktop Protocol</typehint>
</field>
<field>
+ <name>PCAnywhere</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;pcanywhere</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Symantec PC Anywhere</typehint>
+ </field>
+ <field>
<name>VNC</name>
<bindstofield>ezshaper-&gt;step7-&gt;vnc</bindstofield>
<type>select</type>
@@ -770,8 +862,12 @@
<typehint>Virtual Network Computing</typehint>
</field>
<field>
- <name>AppleRemoteDesktop</name>
- <bindstofield>ezshaper-&gt;step7-&gt;appleremotedesktop</bindstofield>
+ <name>Messengers</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>AIM</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;aolinstantmessenger</bindstofield>
<type>select</type>
<options>
<option>
@@ -787,11 +883,11 @@
<value>L</value>
</option>
</options>
- <typehint>Apple Remote Desktop</typehint>
+ <typehint>AOL Instant Messenger</typehint>
</field>
<field>
- <name>PCAnywhere</name>
- <bindstofield>ezshaper-&gt;step7-&gt;pcanywhere</bindstofield>
+ <name>Facetime</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;facetime</bindstofield>
<type>select</type>
<options>
<option>
@@ -807,11 +903,27 @@
<value>L</value>
</option>
</options>
- <typehint>Symantec PC Anywhere</typehint>
+ <typehint>Facetime</typehint>
</field>
<field>
- <name>Messengers</name>
- <type>listtopic</type>
+ <name>ICQ</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;icq</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>ICQ</typehint>
</field>
<field>
<name>IRC</name>
@@ -854,8 +966,8 @@
<typehint>Jabber instant messanger</typehint>
</field>
<field>
- <name>ICQ</name>
- <bindstofield>ezshaper-&gt;step7-&gt;icq</bindstofield>
+ <name>GoogleHangouts</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;googlehangouts</bindstofield>
<type>select</type>
<options>
<option>
@@ -871,11 +983,11 @@
<value>L</value>
</option>
</options>
- <typehint>ICQ</typehint>
+ <typehint>Google Hangouts</typehint>
</field>
<field>
- <name>AIM</name>
- <bindstofield>ezshaper-&gt;step7-&gt;aolinstantmessenger</bindstofield>
+ <name>MSN</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;msnmessenger</bindstofield>
<type>select</type>
<options>
<option>
@@ -891,11 +1003,11 @@
<value>L</value>
</option>
</options>
- <typehint>AOL Instant Messenger</typehint>
+ <typehint>MSN Messenger</typehint>
</field>
<field>
- <name>MSN</name>
- <bindstofield>ezshaper-&gt;step7-&gt;msnmessenger</bindstofield>
+ <name>Teamspeak</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;teamspeak</bindstofield>
<type>select</type>
<options>
<option>
@@ -911,11 +1023,11 @@
<value>L</value>
</option>
</options>
- <typehint>MSN Messenger</typehint>
+ <typehint>TeamSpeak</typehint>
</field>
<field>
- <name>Teamspeak</name>
- <bindstofield>ezshaper-&gt;step7-&gt;teamspeak</bindstofield>
+ <name>Teamspeak3</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;teamspeak3</bindstofield>
<type>select</type>
<options>
<option>
@@ -931,7 +1043,27 @@
<value>L</value>
</option>
</options>
- <typehint>TeamSpeak</typehint>
+ <typehint>TeamSpeak 3</typehint>
+ </field>
+ <field>
+ <name>Ventrilo</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;ventrilo</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Ventrilo</typehint>
</field>
<field>
<name>VPN</name>
@@ -982,6 +1114,26 @@
<type>listtopic</type>
</field>
<field>
+ <name>iTunesRadio</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;itunesradio</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>iTunes Radio - this rule uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ </field>
+ <field>
<name>StreamingMP3</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;streamingmp3</bindstofield>
@@ -1130,10 +1282,134 @@
<typehint>Lotus Notes</typehint>
</field>
<field>
+ <name>Game Downloader</name>
+ <type>listtopic</type>
+ </field>
+ <field>
+ <name>BattleNetDownloader</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;battlenetdownloader</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Battle.NET Downloader</typehint>
+ </field>
+ <field>
+ <name>SteamDownloader</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;steamdownloader</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Steam Downloader</typehint>
+ </field>
+ <field>
<name>Miscellaneous</name>
<type>listtopic</type>
</field>
<field>
+ <name>APNS</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;apns</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Push Notification Service</typehint>
+ </field>
+ <field>
+ <name>AppleMobileSync</name>
+ <type>select</type>
+ <bindstofield>ezshaper-&gt;step7-&gt;applemobilesync</bindstofield>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Apple Mobile Sync</typehint>
+ </field>
+ <field>
+ <name>CrashPlan</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;crashplan</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>CrashPlan</typehint>
+ </field>
+ <field>
+ <name>CVSUP</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;cvsup</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>CVSUP</typehint>
+ </field>
+ <field>
<name>DNS</name>
<type>select</type>
<bindstofield>ezshaper-&gt;step7-&gt;dns</bindstofield>
@@ -1154,6 +1430,46 @@
<typehint>Domain Name Services</typehint>
</field>
<field>
+ <name>Git</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;git</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>Git Server</typehint>
+ </field>
+ <field>
+ <name>HBCI</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;hbci</bindstofield>
+ <type>select</type>
+ <options>
+ <option>
+ <name>Default priority</name>
+ <value>D</value>
+ </option>
+ <option>
+ <name>Higher priority</name>
+ <value>H</value>
+ </option>
+ <option>
+ <name>Lower priority</name>
+ <value>L</value>
+ </option>
+ </options>
+ <typehint>HBCI</typehint>
+ </field>
+ <field>
<name>ICMP</name>
<bindstofield>ezshaper-&gt;step7-&gt;icmp</bindstofield>
<type>select</type>
@@ -1254,8 +1570,8 @@
<typehint>Internet News</typehint>
</field>
<field>
- <name>CVSUP</name>
- <bindstofield>ezshaper-&gt;step7-&gt;cvsup</bindstofield>
+ <name>Slingbox</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;slingbox</bindstofield>
<type>select</type>
<options>
<option>
@@ -1271,31 +1587,11 @@
<value>L</value>
</option>
</options>
- <typehint>CVSUP</typehint>
+ <typehint>Slingbox</typehint>
</field>
<field>
- <name>Slingbox</name>
- <bindstofield>ezshaper-&gt;step7-&gt;slingbox</bindstofield>
- <type>select</type>
- <options>
- <option>
- <name>Default priority</name>
- <value>D</value>
- </option>
- <option>
- <name>Higher priority</name>
- <value>H</value>
- </option>
- <option>
- <name>Lower priority</name>
- <value>L</value>
- </option>
- </options>
- <typehint>Slingbox</typehint>
- </field>
- <field>
- <name>HBCI</name>
- <bindstofield>ezshaper-&gt;step7-&gt;hbci</bindstofield>
+ <name>Subversion</name>
+ <bindstofield>ezshaper-&gt;step7-&gt;subversion</bindstofield>
<type>select</type>
<options>
<option>
@@ -1311,7 +1607,7 @@
<value>L</value>
</option>
</options>
- <typehint>HBCI</typehint>
+ <typehint>Subversion Server</typehint>
</field>
<field>
<name>Next</name>
diff --git a/usr/local/www/xmlrpc.php b/usr/local/www/xmlrpc.php
index 5c6fdba..93733cc 100755
--- a/usr/local/www/xmlrpc.php
+++ b/usr/local/www/xmlrpc.php
@@ -244,7 +244,7 @@ function restore_config_section_xmlrpc($raw_params) {
}
unset($oldvips["{$vip['interface']}_vip{$vip['vhid']}"]);
} else if ($vip['mode'] == "ipalias" && strstr($vip['interface'], "_vip") && isset($oldvips[$vip['subnet']])) {
- if ($oldvips[$vip['subnet']] = "{$vip['interface']}{$vip['subnet']}{$vip['subnet_bits']}") {
+ if ($oldvips[$vip['subnet']] == "{$vip['interface']}{$vip['subnet']}{$vip['subnet_bits']}") {
if (does_vip_exist($vip)) {
unset($oldvips[$vip['subnet']]);
continue; // Skip reconfiguring this vips since nothing has changed.
@@ -370,11 +370,15 @@ function filter_configure_xmlrpc($raw_params) {
relayd_configure();
require_once("openvpn.inc");
openvpn_resync_all();
- services_dhcpd_configure();
if (isset($config['dnsmasq']['enable']))
services_dnsmasq_configure();
elseif (isset($config['unbound']['enable']))
services_unbound_configure();
+ else
+ # Both calls above run services_dhcpd_configure(), then we just
+ # need to call it when them are not called to avoid restart dhcpd
+ # twice, as described on ticket #3797
+ services_dhcpd_configure();
local_sync_accounts();
return $xmlrpc_g['return']['true'];
OpenPOWER on IntegriCloud