Projet

Général

Profil

« Précédent | Suivant » 

Révision 672e28f3

Ajouté par Renato Botelho il y a presque 10 ans

Delete all ip aliases when interface is disabled, it should fix #3650

Voir les différences:

etc/inc/interfaces.inc
1249 1249
		unlink_if_exists("{$g['varetc_path']}/dhclient_{$interface}.conf");
1250 1250
		if(does_interface_exist("$realif")) {
1251 1251
			mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
1252
			interface_ipalias_cleanup($interface);
1252 1253
			if ($destroy == true)
1253 1254
				pfSense_interface_flags($realif, -IFF_UP);
1254 1255
			mwexec("/usr/sbin/arp -d -i " . escapeshellarg($realif) . " -a");
......
1257 1258
	default:
1258 1259
		if(does_interface_exist("$realif")) {
1259 1260
			mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
1261
			interface_ipalias_cleanup($interface);
1260 1262
			if ($destroy == true)
1261 1263
				pfSense_interface_flags($realif, -IFF_UP);
1262 1264
			mwexec("/usr/sbin/arp -d -i " . escapeshellarg($realif) . " -a");
......
1277 1279
			$ip6 = find_interface_ipv6($realifv6);
1278 1280
			if (is_ipaddrv6($ip6) && $ip6 != "::")
1279 1281
				mwexec("/sbin/ifconfig " . escapeshellarg($realifv6) . " inet6 {$ip6} delete", true);
1282
			interface_ipalias_cleanup($interface, "inet6");
1280 1283
			if ($destroy == true)
1281 1284
				pfSense_interface_flags($realif, -IFF_UP);
1282 1285
			mwexec("/usr/sbin/arp -d -i " . escapeshellarg($realif) . " -a");
......
1290 1293
			$ip6 = get_interface_ipv6($interface);
1291 1294
			if (is_ipaddrv6($ip6))
1292 1295
				mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
1296
			interface_ipalias_cleanup($interface, "inet6");
1293 1297
			if ($destroy == true)
1294 1298
				pfSense_interface_flags($realif, -IFF_UP);
1295 1299
		}
......
1302 1306
				mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
1303 1307
			if (!empty($ifcfg['ipaddrv6']) && is_ipaddrv6($ifcfg['ipaddrv6']))
1304 1308
				mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ifcfg['ipaddrv6']} delete", true);
1309
			interface_ipalias_cleanup($interface, "inet6");
1305 1310
			if ($destroy == true)
1306 1311
				pfSense_interface_flags($realif, -IFF_UP);
1307 1312
			mwexec("/usr/sbin/arp -d -i " . escapeshellarg($realif) . " -a");
......
2114 2119
}
2115 2120

  
2116 2121
function interface_ipalias_configure(&$vip) {
2117
	if ($vip['mode'] == "ipalias") {
2118
		$if = get_real_interface($vip['interface']);
2119
		$af = "inet";
2120
		if(is_ipaddrv6($vip['subnet']))
2121
			$af = "inet6";
2122
		mwexec("/sbin/ifconfig " . escapeshellarg($if) ." {$af} ". escapeshellarg($vip['subnet']) ."/" . escapeshellarg($vip['subnet_bits']) . " alias");
2123
	}
2122
	global $config;
2123

  
2124
	if ($vip['mode'] != "ipalias")
2125
		return;
2126

  
2127
	if (!isset($config['interfaces'][$vip['interface']]))
2128
		return;
2129

  
2130
	if (!isset($config['interfaces'][$vip['interface']]['enable']))
2131
		return;
2132

  
2133
	$if = get_real_interface($vip['interface']);
2134
	$af = "inet";
2135
	if(is_ipaddrv6($vip['subnet']))
2136
		$af = "inet6";
2137
	mwexec("/sbin/ifconfig " . escapeshellarg($if) ." {$af} ". escapeshellarg($vip['subnet']) ."/" . escapeshellarg($vip['subnet_bits']) . " alias");
2124 2138
}
2125 2139

  
2126 2140
function interface_reload_carps($cif) {

Formats disponibles : Unified diff