diff options
author | Selim <selim_guner2000@hotmail.com> | 2013-05-14 03:06:50 -0700 |
---|---|---|
committer | Selim <selim_guner2000@hotmail.com> | 2013-05-14 03:06:50 -0700 |
commit | d6da1de899a1357d6942e99cb9c05a6536f1690a (patch) | |
tree | 321efff7876c0bcc2f5d57cf1c86eee7329260ec | |
parent | 9459b2de00d836a3e493198d67e4ccdc8029b5e7 (diff) | |
parent | de4ae554f0b1941dd157198efdfdd8ea0701c688 (diff) | |
download | pfsense-d6da1de899a1357d6942e99cb9c05a6536f1690a.zip pfsense-d6da1de899a1357d6942e99cb9c05a6536f1690a.tar.gz |
Merge pull request #1 from pfsense/master
test
-rw-r--r-- | etc/inc/IPv6.inc | 3 | ||||
-rw-r--r-- | etc/inc/captiveportal.inc | 40 | ||||
-rw-r--r-- | etc/inc/filter.inc | 2 | ||||
-rw-r--r-- | etc/inc/openvpn.inc | 8 | ||||
-rw-r--r-- | etc/inc/shaper.inc | 109 | ||||
-rwxr-xr-x | usr/local/www/services_captiveportal_filemanager.php | 4 | ||||
-rwxr-xr-x | usr/local/www/services_captiveportal_hostname.php | 4 | ||||
-rwxr-xr-x | usr/local/www/services_captiveportal_ip.php | 4 |
8 files changed, 115 insertions, 59 deletions
diff --git a/etc/inc/IPv6.inc b/etc/inc/IPv6.inc index 453051e..7598226 100644 --- a/etc/inc/IPv6.inc +++ b/etc/inc/IPv6.inc @@ -580,6 +580,9 @@ class Net_IPv6 { $cip = preg_replace('/((^:)|(:$))/', '' ,$cip); $cip = preg_replace('/((^:)|(:$))/', '::' ,$cip); + } else { + // The input IP appears to be compressed already, give it back as-is to the caller. + $cip = $ip; } if ('' != $netmask) { diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index 38202e9..01caca5 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -708,8 +708,8 @@ function captiveportal_prune_old() { $cpentry[2], // clientip $cpentry[3], // clientmac 10); // NAS Request - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 1, $cpentry[2]); - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 2, $cpentry[2]); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 1, $cpentry[2]); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 2, $cpentry[2]); RADIUS_ACCOUNTING_START($cpentry[1], // ruleno $cpentry[4], // username $cpentry[5], // sessionid @@ -851,11 +851,11 @@ function captiveportal_disconnect($dbent, $radiusservers,$term_cause = 1,$stop_t if (is_ipaddr($dbent[2])) { /* Delete client's ip entry from tables 1 and 2. */ - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 1, $dbent[2]); - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 2, $dbent[2]); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 1, $dbent[2]); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 2, $dbent[2]); /* XXX: Redundant?! Ensure all pf(4) states are killed. */ - pfSense_kill_states($dbent[2]); - pfSense_kill_srcstates($dbent[2]); + $_gb = @pfSense_kill_states($dbent[2]); + $_gb = @pfSense_kill_srcstates($dbent[2]); } /* @@ -863,8 +863,8 @@ function captiveportal_disconnect($dbent, $radiusservers,$term_cause = 1,$stop_t * We could get an error if the pipe doesn't exist but everything should still be fine */ if (!empty($dbent[1])) { - pfSense_pipe_action("pipe delete {$dbent[1]}"); - pfSense_pipe_action("pipe delete " . ($dbent[1]+1)); + $_gb = @pfSense_pipe_action("pipe delete {$dbent[1]}"); + $_gb = @pfSense_pipe_action("pipe delete " . ($dbent[1]+1)); /* Release the ruleno so it can be reallocated to new clients. */ captiveportal_free_dn_ruleno($dbent[1]); @@ -941,9 +941,9 @@ function captiveportal_passthrumac_configure_entry($macent) { $rules = ""; $pipeup = $pipeno; - pfSense_pipe_action("pipe {$pipeup} config bw {$bwUp}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$pipeup} config bw {$bwUp}Kbit/s queue 100 buckets 16"); $pipedown = $pipeno + 1; - pfSense_pipe_action("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16"); $rules .= "add {$ruleno} pipe {$pipeup} ip from any to any MAC {$macent['mac']} any\n"; $ruleno++; $rules .= "add {$ruleno} pipe {$pipedown} ip from any to any MAC any {$macent['mac']}\n"; @@ -1005,9 +1005,9 @@ function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) { $enBwdown = empty($ipent['bw_down']) ? 0 : intval($ipent['bw_down']); $pipeno = captiveportal_get_next_dn_ruleno(); - pfSense_pipe_action("pipe {$pipeno} config bw {$enBwup}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$pipeno} config bw {$enBwup}Kbit/s queue 100 buckets 16"); $pipedown = $pipeno + 1; - pfSense_pipe_action("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16"); if ($ishostname === true) { $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 3 pipe {$pipeno}\n"; $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 4 pipe {$pipedown}\n"; @@ -1701,8 +1701,8 @@ function captiveportal_reapply_attributes($cpentry, $attributes) { $bw_up_pipeno = $cpentry[1]; $bw_down_pipeno = $cpentry[1]+1; - pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); - pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); //captiveportal_logportalauth($cpentry[4], $cpentry[3], $cpentry[2], "RADIUS_BANDWIDTH_REAPPLY", "{$bw_up}/{$bw_down}"); unset($bw_up_pipeno, $bw_down_pipeno, $bw_up, $bw_down); @@ -1874,19 +1874,19 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut $bw_up_pipeno = $pipeno; $bw_down_pipeno = $pipeno + 1; //$bw_up /= 1000; // Scale to Kbit/s - pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); - pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); $clientsn = (is_ipaddrv6($clientip)) ? 128 : 32; if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, $clientmac, $bw_up_pipeno); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, $clientmac, $bw_up_pipeno); else - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, NULL, $bw_up_pipeno); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, NULL, $bw_up_pipeno); if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, $clientmac, $bw_down_pipeno); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, $clientmac, $bw_down_pipeno); else - pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, NULL, $bw_down_pipeno); + $_gb = @pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, NULL, $bw_down_pipeno); if ($attributes['voucher']) $attributes['session_timeout'] = $remaining_time; diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 9d8a47f..13963a8 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -473,12 +473,12 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr else if(!isset($aliasnesting[$address])) $tmpline = filter_generate_nested_alias($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting); } else if(!isset($aliasaddrnesting[$address])) { - $aliasaddrnesting[$address] = $address; if (!is_ipaddr($address) && !is_subnet($address) && !is_port($address) && is_hostname($address)) { if (!isset($filterdns["{$address}{$name}"])) $filterdns["{$address}{$name}"] = "pf {$address} {$name}\n"; continue; } + $aliasaddrnesting[$address] = $address; $tmpline = " {$address}"; } if ((strlen($tmpline)+ $linelength) > 4036) { diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index bd92642..41b0ce2 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -514,7 +514,7 @@ function openvpn_reconfigure($mode, $settings) { if ($settings['dev_mode'] == 'tun') $conf .= "ifconfig-ipv6 {$ipv6_1} {$ipv6_2}\n"; else - $conf .= "ifconfig {$ipv6_1} {$prefix}\n"; + $conf .= "ifconfig-ipv6 {$ipv6_1} {$prefix}\n"; } break; case 'server_tls': @@ -665,7 +665,7 @@ function openvpn_reconfigure($mode, $settings) { if ($settings['dev_mode'] == 'tun') $conf .= "ifconfig-ipv6 {$ipv6_2} {$ipv6_1}\n"; else - $conf .= "ifconfig {$ipv6_2} {$prefix}\n"; + $conf .= "ifconfig-ipv6 {$ipv6_2} {$prefix}\n"; } if ($settings['proxy_addr']) { @@ -1243,8 +1243,8 @@ function openvpn_get_interface_ipv6($ipv6, $prefix) { // Is there a better way to do this math? $ipv6_arr = explode(':', $basev6); $last = hexdec(array_pop($ipv6_arr)); - $ipv6_1 = Net_IPv6::compress(implode(':', $ipv6_arr) . ':' . dechex($last + 1)); - $ipv6_2 = Net_IPv6::compress(implode(':', $ipv6_arr) . ':' . dechex($last + 2)); + $ipv6_1 = Net_IPv6::compress(Net_IPv6::uncompress(implode(':', $ipv6_arr) . ':' . dechex($last + 1))); + $ipv6_2 = Net_IPv6::compress(Net_IPv6::uncompress(implode(':', $ipv6_arr) . ':' . dechex($last + 2))); return array($ipv6_1, $ipv6_2); } diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc index 150c203..36bf462 100644 --- a/etc/inc/shaper.inc +++ b/etc/inc/shaper.inc @@ -2789,7 +2789,7 @@ class dummynet_class { function GetLink() { return $this->link; } - function Getmask() { + function GetMask() { return $this->mask; } function SetMask($mask) { @@ -2880,6 +2880,10 @@ class dummynet_class { $input_errors[] = gettext("Queue names must be alphanumeric and _ or - only."); if (!empty($data['name']) && !preg_match("/^[a-zA-Z0-9_-]+$/", $data['name'])) $input_errors[] = gettext("Queue names must be alphanumeric and _ or - only."); + if (isset($data['maskbits']) && ($data['maskbits'] <> "")) { + if ((!is_numeric($data['maskbits'])) || ($data['maskbits'] <= 0) || ($data['maskbits'] > 32)) + $input_errors[] = gettext("Bit mask must be blank or numeric value between 1 and 32."); + } } } @@ -3028,9 +3032,14 @@ class dnpipe_class extends dummynet_class { else $this->SetQlimit(""); if (isset($q['mask']) && $q['mask'] <> "") - $this->SetMask($q['mask']); + $masktype = $q['mask']; + else + $masktype = ""; + if (isset($q['maskbits']) && $q['maskbits'] <> "") + $maskbits = $q['maskbits']; else - $this->SetMask(""); + $maskbits = ""; + $this->SetMask(array("type" => $masktype, "bits" => $maskbits)); if (isset($q['buckets']) && $q['buckets'] <> "") $this->SetBuckets($q['buckets']); else @@ -3115,19 +3124,26 @@ class dnpipe_class extends dummynet_class { $pfq_rule .= " delay " . $this->GetDelay(); $mask = $this->GetMask(); - if (!empty($mask)) { - /* XXX TODO extend this to support more complicated masks */ - switch ($mask) { + if (!empty($mask['type'])) { + switch ($mask['type']) { case 'srcaddress': - $pfq_rule .= " mask src-ip 0xffffffff "; + $pfq_rule .= " mask src-ip 0x"; + if (!empty($mask['bits']) && ($mask['bits'] <> "")) + $pfq_rule .= sprintf("%x", gen_subnet_mask_long($mask['bits'])); + else + $pfq_rule .= "ffffffff"; break; case 'dstaddress': - $pfq_rule .= " mask dst-ip 0xffffffff "; + $pfq_rule .= " mask dst-ip 0x"; + if (!empty($mask['bits']) && ($mask['bits'] <> "")) + $pfq_rule .= sprintf("%x", gen_subnet_mask_long($mask['bits'])); + else + $pfq_rule .= "ffffffff"; break; default: break; } - } + } $pfq_rule .= "\n"; if (!empty($this->subqueues) && count($this->subqueues) > 0) { @@ -3279,24 +3295,34 @@ EOD; $form .= "<td class=\"vncellreq\">"; $form .= "<select name=\"mask\" class=\"formselect\">"; $form .= "<option value=\"none\""; - if ($this->GetMask() == "none") + $mask = $this->GetMask(); + if ($mask['type'] == "none") $form .= " selected=\"selected\""; $form .= ">none</option>"; $form .= "<option value=\"srcaddress\""; - if ($this->GetMask() == "srcaddress") + if ($mask['type'] == "srcaddress") $form .= " selected=\"selected\""; $form .= ">" . gettext("Source addresses") . "</option>"; $form .= "<option value=\"dstaddress\""; - if ($this->GetMask() == "dstaddress") + if ($mask['type'] == "dstaddress") $form .= " selected=\"selected\""; $form .= ">" . gettext("Destination addresses") . "</option>"; $form .= "</select>"; $form .= " <br/>"; - $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' is chosen, \n" + $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' slots is chosen, \n" . "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n" . "be created for each source/destination IP address encountered, \n" . "respectively. This makes it possible to easily specify bandwidth \n" - . "limits per host.") . "</span>"; + . "limits per host.") . "</span><br />"; + $form .= "255.255.255.255/ <input type=\"text\" class=\"formfld unknown\" size=\"2\" id=\"maskbits\" name=\"maskbits\" value=\""; + $mask = $this->GetMask(); + $form .= $mask['bits']; + $form .= "\" />"; + $form .= " mask bits (1-32)<br/>"; + $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' slots is chosen, \n" + . "leaving the mask bits blank will create one pipe per host. Otherwise specify \n" + . "the number of 'one' bits in the subnet mask used to group multiple hosts \n" + . "per pipe.") . "</span>"; $form .= "</td></tr>"; $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Description") . "</td>"; $form .= "<td class=\"vncellreq\">"; @@ -3375,7 +3401,9 @@ EOD; $cflink['enabled'] = $this->GetEnabled(); $cflink['buckets'] = $this->GetBuckets(); - $cflink['mask'] = $this->GetMask(); + $mask = $this->GetMask(); + $cflink['mask'] = $mask['type']; + $cflink['maskbits'] = $mask['bits']; $cflink['delay'] = $this->GetDelay(); } @@ -3448,10 +3476,16 @@ class dnqueue_class extends dummynet_class { $this->SetQlimit($q['qlimit']); else $this->SetQlimit(""); + $mask = array(); if (isset($q['mask']) && $q['mask'] <> "") - $this->SetMask($q['mask']); + $masktype = $q['mask']; else - $this->SetMask(""); + $masktype = ""; + if (isset($q['maskbits']) && $q['maskbits'] <> "") + $maskbits = $q['maskbits']; + else + $maskbits = ""; + $this->SetMask(array("type" => $masktype, "bits" => $maskbits)); if (isset($q['weight']) && $q['weight'] <> "") $this->SetWeight($q['weight']); else @@ -3485,14 +3519,21 @@ class dnqueue_class extends dummynet_class { if ($this->GetBuckets()) $pfq_rule .= " buckets " . $this->GetBuckets(); $mask = $this->GetMask(); - if (!empty($mask)) { - /* XXX TODO extend this to support more complicated masks */ - switch ($mask) { + if (!empty($mask['type'])) { + switch ($mask['type']) { case 'srcaddress': - $pfq_rule .= " mask src-ip 0xffffffff "; + $pfq_rule .= " mask src-ip 0x"; + if (!empty($mask['bits']) && ($mask['bits'] <> "")) + $pfq_rule .= sprintf("%x", gen_subnet_mask_long($mask['bits'])); + else + $pfq_rule .= "ffffffff"; break; case 'dstaddress': - $pfq_rule .= " mask dst-ip 0xffffffff "; + $pfq_rule .= " mask dst-ip 0x"; + if (!empty($mask['bits']) && ($mask['bits'] <> "")) + $pfq_rule .= sprintf("%x", gen_subnet_mask_long($mask['bits'])); + else + $pfq_rule .= "ffffffff"; break; default: break; @@ -3527,24 +3568,34 @@ class dnqueue_class extends dummynet_class { $form .= "<td class=\"vncellreq\">"; $form .= "<select name=\"mask\" class=\"formselect\">"; $form .= "<option value=\"none\""; - if ($this->GetMask() == "none") + $mask = $this->GetMask(); + if ($mask['type'] == "none") $form .= " selected=\"selected\""; $form .= ">" . gettext("none") . "</option>"; $form .= "<option value=\"srcaddress\""; - if ($this->GetMask() == "srcaddress") + if ($mask['type'] == "srcaddress") $form .= " selected=\"selected\""; $form .= ">" . gettext("Source addresses") . "</option>"; $form .= "<option value=\"dstaddress\""; - if ($this->GetMask() == "dstaddress") + if ($mask['type'] == "dstaddress") $form .= " selected=\"selected\""; $form .= ">" . gettext("Destination addresses") . "</option>"; $form .= "</select>"; $form .= " slots<br/>"; - $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' is chosen, \n" + $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' slots is chosen, \n" . "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n" . "be created for each source/destination IP address encountered, \n" . "respectively. This makes it possible to easily specify bandwidth \n" - . "limits per host.") . "</span>"; + . "limits per host.") . "</span><br/>"; + $form .= "255.255.255.255/ <input type=\"text\" class=\"formfld unknown\" size=\"2\" id=\"maskbits\" name=\"maskbits\" value=\""; + $mask = $this->GetMask(); + $form .= $mask['bits']; + $form .= "\" />"; + $form .= " mask bits (1-32)<br/>"; + $form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' slots is chosen, \n" + . "leaving the mask bits blank will create one pipe per host. Otherwise specify \n" + . "the number of 'one' bits in the subnet mask used to group multiple hosts \n" + . "per queue.") . "</span>"; $form .= "</td></tr>"; $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Description") . "</td>"; $form .= "<td class=\"vncellreq\">"; @@ -3620,7 +3671,9 @@ class dnqueue_class extends dummynet_class { $cflink['weight'] = $this->GetWeight(); $cflink['enabled'] = $this->GetEnabled(); $cflink['buckets'] = $this->GetBuckets(); - $cflink['mask'] = $this->GetMask(); + $mask = $this->GetMask(); + $cflink['mask'] = $mask['type']; + $cflink['maskbits'] = $mask['bits']; } } diff --git a/usr/local/www/services_captiveportal_filemanager.php b/usr/local/www/services_captiveportal_filemanager.php index 63768cc..aedd191 100755 --- a/usr/local/www/services_captiveportal_filemanager.php +++ b/usr/local/www/services_captiveportal_filemanager.php @@ -161,7 +161,7 @@ include("head.inc"); <td width="10%" class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_filemanager.php?zone=<?=$cpzone;?>&act=add"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add file"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> @@ -200,7 +200,7 @@ include("head.inc"); <td class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_filemanager.php?zone=<?=$cpzone;?>&act=add"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add file"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> diff --git a/usr/local/www/services_captiveportal_hostname.php b/usr/local/www/services_captiveportal_hostname.php index dbbb688..6720430 100755 --- a/usr/local/www/services_captiveportal_hostname.php +++ b/usr/local/www/services_captiveportal_hostname.php @@ -122,7 +122,7 @@ include("head.inc"); <td width="10%" class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_hostname_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> @@ -158,7 +158,7 @@ include("head.inc"); <td class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_hostname_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> diff --git a/usr/local/www/services_captiveportal_ip.php b/usr/local/www/services_captiveportal_ip.php index 410064d..2fb2cf5 100755 --- a/usr/local/www/services_captiveportal_ip.php +++ b/usr/local/www/services_captiveportal_ip.php @@ -117,7 +117,7 @@ include("head.inc"); <td width="10%" class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> @@ -157,7 +157,7 @@ include("head.inc"); <td class="list"> <table border="0" cellspacing="0" cellpadding="1"> <tr> - <td width="17" heigth="17"></td> + <td width="17" height="17"></td> <td><a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0"></a></td> </tr> </table> |