Project

General

Profile

« Previous | Next » 

Revision 332a64d0

Added by Daniel Wilhelm about 9 years ago

Allow passing comma in string quoted DHCP client options

View differences:

src/etc/inc/interfaces.inc
4036 4036

  
4037 4037
	$send_options = "";
4038 4038
	if ($wancfg['adv_dhcp6_interface_statement_send_options'] != '') {
4039
		$options = explode(',', $wancfg['adv_dhcp6_interface_statement_send_options']);
4039
		$options = DHCP_Config_Option_Split($wancfg['adv_dhcp6_interface_statement_send_options']);
4040 4040
		foreach ($options as $option) {
4041 4041
			$send_options .= "\tsend " . trim($option) . ";\n";
4042 4042
		}
......
4044 4044

  
4045 4045
	$request_options = "";
4046 4046
	if ($wancfg['adv_dhcp6_interface_statement_request_options'] != '') {
4047
		$options = explode(',', $wancfg['adv_dhcp6_interface_statement_request_options']);
4047
		$options = DHCP_Config_Option_Split($wancfg['adv_dhcp6_interface_statement_request_options']);
4048 4048
		foreach ($options as $option) {
4049 4049
			$request_options .= "\trequest " . trim($option) . ";\n";
4050 4050
		}
......
4314 4314

  
4315 4315
	$send_options = "";
4316 4316
	if ($wancfg['adv_dhcp_send_options'] != '') {
4317
		$options = explode(',', $wancfg['adv_dhcp_send_options']);
4317
		$options = DHCP_Config_Option_Split($wancfg['adv_dhcp_send_options']);
4318 4318
		foreach ($options as $option) {
4319 4319
			$send_options .= "\tsend " . trim($option) . ";\n";
4320 4320
		}
......
4332 4332

  
4333 4333
	$option_modifiers = "";
4334 4334
	if ($wancfg['adv_dhcp_option_modifiers'] != '') {
4335
		$modifiers = explode(',', $wancfg['adv_dhcp_option_modifiers']);
4335
		$modifiers = DHCP_Config_Option_Split($wancfg['adv_dhcp_option_modifiers']);
4336 4336
		foreach ($modifiers as $modifier) {
4337 4337
			$option_modifiers .= "\t" . trim($modifier) . ";\n";
4338 4338
		}
......
4363 4363
	return $dhclientconf;
4364 4364
}
4365 4365

  
4366
function DHCP_Config_Option_Split($option_string) {
4367
	$options = [];
4368
	preg_match_all('/[^",]*(?:"[^"]*"[^",]*)+(?:"[^",]*)?|[^,]+/m', $option_string, $result, PREG_PATTERN_ORDER);
4369
	for ($i = 0; $i < count($result[0]); $i++) {
4370
		$options[] = $result[0][$i];
4371
	}
4372
	return $options;
4373
}
4366 4374

  
4367 4375
function DHCP_Config_File_Override($wancfg, $wanif) {
4368 4376

  

Also available in: Unified diff