Projet

Général

Profil

« Précédent | Suivant » 

Révision 3f257101

Ajouté par Renato Botelho il y a plus de 9 ans

Provide upgrade config code to migrate unbound settings from 2.1 package to 2.2 base. Bump config version to 11.1. It fixes #3880

Voir les différences:

etc/inc/upgrade_config.inc
3374 3374
	}
3375 3375
}
3376 3376

  
3377
function upgrade_110_to_111() {
3378
	global $config;
3379

  
3380
	if (!isset($config['installedpackages']['unbound']['config'][0]))
3381
		return;
3382

  
3383
	$pkg = $config['installedpackages']['unbound']['config'][0];
3384

  
3385
	if (isset($config['installedpackages']['unboundadvanced']['config'][0]))
3386
		$pkg = array_merge($pkg, $config['installedpackages']['unboundadvanced']['config'][0]);
3387

  
3388
	$new = array();
3389

  
3390
	/* deal first with boolean fields */
3391
	$fields = array(
3392
		"enable" => "enable",
3393
		"dnssec_status" => "dnssec",
3394
		"forwarding_mode" => "forwarding",
3395
		"regdhcp" => "regdhcp",
3396
		"regdhcpstatic" => "regdhcpstatic",
3397
		"txtsupport" => "txtsupport",
3398
		"hide_id" => "hideidentity",
3399
		"hide_version" => "hideversion",
3400
		"prefetch" => "prefetch",
3401
		"prefetch_key" => "prefetchkey",
3402
		"harden_glue" => "hardenglue",
3403
		"harden_dnssec_stripped" => "dnssec_stripped");
3404

  
3405
	foreach ($fields as $oldk => $newk) {
3406
		if (isset($pkg[$oldk])) {
3407
			if ($pkg[$oldk] == 'on')
3408
				$new[$newk] = true;
3409
			unset($pkg[$oldk]);
3410
		}
3411
	}
3412

  
3413
	$fields = array(
3414
		"active_interface" => "network_interface",
3415
		"query_interface" => "outgoing_interface",
3416
		"unbound_verbosity" => "log_verbosity",
3417
		"unbound_verbosity" => "log_verbosity",
3418
		"msg_cache_size" => "msgcachesize",
3419
		"outgoing_num_tcp" => "outgoing_num_tcp",
3420
		"incoming_num_tcp" => "incoming_num_tcp",
3421
		"edns_buffer_size" => "edns_buffer_size",
3422
		"num_queries_per_thread" => "num_queries_per_thread",
3423
		"jostle_timeout" => "jostle_timeout",
3424
		"cache_max_ttl" => "cache_max_ttl",
3425
		"cache_min_ttl" => "cache_min_ttl",
3426
		"infra_host_ttl" => "infra_host_ttl",
3427
		"infra_cache_numhosts" => "infra_cache_numhosts",
3428
		"unwanted_reply_threshold" => "unwanted_reply_threshold",
3429
		"custom_options" => "custom_options");
3430

  
3431
	foreach ($fields as $oldk => $newk) {
3432
		if (isset($pkg[$oldk])) {
3433
			$new[$newk] = $pkg[$oldk];
3434
			unset($pkg[$oldk]);
3435
		}
3436
	}
3437

  
3438
	/* Following options were removed, bring them as custom_options */
3439
	if (isset($pkg['stats']) && $pkg['stats'] == "on") {
3440
		if (isset($pkg['stats_interval']))
3441
			$new['custom_options'] .= (empty($new['custom_options']) ? "" : ";") . "statistics-interval: {$pkg['stats_interval']}";
3442
		if (isset($pkg['cumulative_stats']))
3443
			$new['custom_options'] .= (empty($new['custom_options']) ? "" : ";") . "statistics-cumulative: {$pkg['cumulative_stats']}";
3444
		if (isset($pkg['extended_stats']) && $pkg['extended_stats'] == "on")
3445
			$new['custom_options'] .= (empty($new['custom_options']) ? "" : ";") . "extended-statistics: yes";
3446
		else
3447
			$new['custom_options'] .= (empty($new['custom_options']) ? "" : ";") . "extended-statistics: no";
3448
	}
3449

  
3450
	$new['acls'] = array();
3451
	if (isset($config['installedpackages']['unboundacls']['config']) &&
3452
	    is_array($config['installedpackages']['unboundacls']['config'])) {
3453
		foreach ($config['installedpackages']['unboundacls']['config'] as $acl)
3454
			$new['acls'][] = $acl;
3455
	}
3456

  
3457
	$config['unbound'] = $new;
3458

  
3459
	if(isset($config['installedpackages']['unbound']))
3460
		unset($config['installedpackages']['unbound']);
3461
	if(isset($config['installedpackages']['unboundadvanced']))
3462
		unset($config['installedpackages']['unboundadvanced']);
3463
	if(isset($config['installedpackages']['unboundacls']))
3464
		unset($config['installedpackages']['unboundacls']);
3465

  
3466
	unset($pkg, $new);
3467
}
3468

  
3377 3469
?>

Formats disponibles : Unified diff