Project

General

Profile

« Previous | Next » 

Revision 02203e6d

Added by Renato Botelho about 12 years ago

Fix IPv6 Prefix ID default value

. Always initialize it to 0 when it's undefined
. Remove unecessary initializations and checks
. Bump config version to 9.5
. Write an upgrade config function to initialize old configs properly

View differences:

conf.default/config.xml
1 1
<?xml version="1.0"?>
2 2
<!-- pfSense default system configuration -->
3 3
<pfsense>
4
	<version>9.4</version>
4
	<version>9.5</version>
5 5
	<lastchange></lastchange>
6 6
	<theme>pfsense_ng</theme>
7 7
	<sysctl>
etc/inc/globals.inc
71 71
	"disablecrashreporter" => false,
72 72
	"crashreporterurl" => "http://crashreporter.pfsense.org/crash_reporter.php",
73 73
	"debug" => false,
74
	"latest_config" => "9.4",
74
	"latest_config" => "9.5",
75 75
	"nopkg_platforms" => array("cdrom"),
76 76
	"minimum_ram_warning" => "101",
77 77
	"minimum_ram_warning_text" => "128 MB",
etc/inc/interfaces.inc
3141 3141
	if (empty($lancfg['track6-interface']))
3142 3142
		return;
3143 3143

  
3144
	if (!is_numeric($lancfg['track6-prefix-id']))
3145
		$lancfg['track6-prefix-id'] = 0;
3146

  
3147 3144
	$wancfg = $config['interfaces'][$lancfg['track6-interface']];
3148 3145
	if (empty($wancfg)) {
3149 3146
		log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
......
3211 3208
		return;
3212 3209
	}
3213 3210

  
3214
	if (!is_numeric($lancfg['track6-prefix-id']))
3215
		$lancfg['track6-prefix-id'] = 0;
3216

  
3217 3211
	$ip4address = get_interface_ip($lancfg['track6-interface']);
3218 3212
	if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) {
3219 3213
		log_error("The interface IPv4 '{$ip4address}' address on interface '{$lancfg['track6-interface']}' is not public, not configuring 6RD tunnel");
......
3265 3259
	if (empty($lancfg['track6-interface']))
3266 3260
		return;
3267 3261

  
3268
	if (!is_numeric($lancfg['track6-prefix-id']))
3269
		$lancfg['track6-prefix-id'] = 0;
3270

  
3271 3262
	$wancfg = $config['interfaces'][$lancfg['track6-interface']];
3272 3263
	if (empty($wancfg)) {
3273 3264
		log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
etc/inc/upgrade_config.inc
3074 3074
	}
3075 3075
}
3076 3076

  
3077
function upgrade_094_to_095() {
3078
	global $config;
3079

  
3080
	if (!isset($config['interfaces']) || !is_array($config['interfaces']))
3081
		return;
3082

  
3083
	foreach ($config['interfaces'] as $iface => $cfg)
3084
		if (isset($cfg['ipaddrv6']) && ($cfg['ipaddrv6'] == "track6"))
3085
			if (!isset($cfg['track6-prefix-id']) || ($cfg['track6-prefix-id'] == ""))
3086
				$config['interfaces'][$iface]['track6-prefix-id'] = 0;
3087
}
3088

  
3077 3089
?>
usr/local/www/interfaces.php
225 225
	case "track6":
226 226
		$pconfig['type6'] = "track6";
227 227
		$pconfig['track6-interface'] = $wancfg['track6-interface'];
228
		$pconfig['track6-prefix-id'] = $wancfg['track6-prefix-id'];
229
		if ($wancfg['track6-prefix-id'] == "" || $wancfg['track6-prefix-id'] == "none") {
230
			$pconfig['track6-prefix-id--hex'] = "";
231
		} else {
232
			$pconfig['track6-prefix-id--hex'] = sprintf("%x", $wancfg['track6-prefix-id']);
233
		}
228
		if ($wancfg['track6-prefix-id'] == "")
229
			$pconfig['track6-prefix-id'] = 0;
230
		else
231
			$pconfig['track6-prefix-id'] = $wancfg['track6-prefix-id'];
232
		$pconfig['track6-prefix-id--hex'] = sprintf("%x", $pconfig['track6-prefix-id']);
234 233
		break;
235 234
	case "6rd":
236 235
		$pconfig['prefix-6rd'] = $wancfg['prefix-6rd'];
......
402 401

  
403 402
	unset($input_errors);
404 403
	$pconfig = $_POST;
405
	if ($pconfig['track6-prefix-id--hex'] === "") {
406
		$pconfig['track6-prefix-id'] = "none";
407
	} else if (is_numeric("0x" . $_POST['track6-prefix-id--hex'])) {
404
	if (is_numeric("0x" . $_POST['track6-prefix-id--hex']))
408 405
		$pconfig['track6-prefix-id'] = intval($_POST['track6-prefix-id--hex'], 16);
409
	} else {
410
		$pconfig['track6-prefix-id'] = "none";
411
	}
406
	else
407
		$pconfig['track6-prefix-id'] = 0;
412 408
	conf_mount_rw();
413 409

  
414 410
	/* filter out spaces from descriptions  */
......
900 896
			case "track6":
901 897
				$wancfg['ipaddrv6'] = "track6";
902 898
				$wancfg['track6-interface'] = $_POST['track6-interface'];
903
				if ($_POST['track6-prefix-id--hex'] === "") {
904
					$wancfg['track6-prefix-id'] = "none";
905
				} else if (is_numeric("0x" . $_POST['track6-prefix-id--hex'])) {
899
				if ($_POST['track6-prefix-id--hex'] === "")
900
					$wancfg['track6-prefix-id'] = 0;
901
				else if (is_numeric("0x" . $_POST['track6-prefix-id--hex']))
906 902
					$wancfg['track6-prefix-id'] = intval($_POST['track6-prefix-id--hex'], 16);
907
				} else {
908
					$wancfg['track6-prefix-id'] = "none";
909
				}
903
				else
904
					$wancfg['track6-prefix-id'] = 0;
910 905
				break;
911 906
			case "none":
912 907
				break;
......
1894 1889
										<td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Prefix ID"); ?></td>
1895 1890
										<td width="78%" class="vtable">
1896 1891
											<?php
1897
												if ($pconfig['track6-prefix-id'] == "none" || $pconfig['track6-prefix-id'] == "") {
1898
													$track6_prefix_id_hex = "";
1899
												} else {
1900
													$track6_prefix_id_hex = sprintf("%x", $pconfig['track6-prefix-id']);
1901
												}
1892
												if ($pconfig['track6-prefix-id'] == "")
1893
													$pconfig['track6-prefix-id'] = 0;
1894
												$track6_prefix_id_hex = sprintf("%x", $pconfig['track6-prefix-id']);
1902 1895
											?>
1903 1896
											<input name="track6-prefix-id--hex" type="text" class="formfld unknown" id="track6-prefix-id--hex" size="8" value="<?= $track6_prefix_id_hex ?>" />
1904 1897
											<br />
1905 1898
											<?= gettext("The value in this field is the (Delegated) IPv6 prefix id. This determines the configurable network ID based on the dynamic IPv6 connection"); ?>
1906 1899
											<br />
1907
											<?= sprintf(gettext("Enter a <b>hexadecimal</b> value between %x and %x here, or leave blank."), 0, $ipv6_num_prefix_ids - 1); ?>
1900
											<?= sprintf(gettext("Enter a <b>hexadecimal</b> value between %x and %x here, default value is 0."), 0, $ipv6_num_prefix_ids - 1); ?>
1908 1901
										</td>
1909 1902
									</tr>
1910 1903
									<tr>

Also available in: Unified diff