From dbaf457bf149bdff1e7a14abeefd36f238d8af2c Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 15 Dec 2015 20:53:56 +0100 Subject: [PATCH] (legacy) Unable to use commas in advanced DHCP client options https://github.com/opnsense/core/issues/530 --- src/etc/inc/interfaces.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index bd1f04b3b..2ace5e082 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3570,7 +3570,7 @@ function DHCP6_Config_File_Advanced($interface, $wancfg, $wanif) { $send_options = ""; if ($wancfg['adv_dhcp6_interface_statement_send_options'] != '') { - $options = split(",", $wancfg['adv_dhcp6_interface_statement_send_options']); + $options = preg_split('/\s*,\s*(?=(?:[^"]*"[^"]*")*[^"]*$)/', $wancfg['adv_dhcp6_interface_statement_send_options']); foreach ($options as $option) { $send_options .= "\tsend " . trim($option) . ";\n"; } @@ -3578,7 +3578,7 @@ function DHCP6_Config_File_Advanced($interface, $wancfg, $wanif) $request_options = ""; if ($wancfg['adv_dhcp6_interface_statement_request_options'] != '') { - $options = split(",", $wancfg['adv_dhcp6_interface_statement_request_options']); + $options = preg_split('/\s*,\s*(?=(?:[^"]*"[^"]*")*[^"]*$)/', $wancfg['adv_dhcp6_interface_statement_request_options']); foreach ($options as $option) { $request_options .= "\trequest " . trim($option) . ";\n"; } @@ -3830,7 +3830,7 @@ function DHCP_Config_File_Advanced($interface, $wancfg, $wanif) { $send_options = ""; if ($wancfg['adv_dhcp_send_options'] != '') { - $options = split(",", $wancfg['adv_dhcp_send_options']); + $options = preg_split('/\s*,\s*(?=(?:[^"]*"[^"]*")*[^"]*$)/', $wancfg['adv_dhcp_send_options']); foreach ($options as $option) { $send_options .= "\tsend " . trim($option) . ";\n"; } @@ -3848,7 +3848,7 @@ function DHCP_Config_File_Advanced($interface, $wancfg, $wanif) { $option_modifiers = ""; if ($wancfg['adv_dhcp_option_modifiers'] != '') { - $modifiers = split(",", $wancfg['adv_dhcp_option_modifiers']); + $modifiers = preg_split('/\s*,\s*(?=(?:[^"]*"[^"]*")*[^"]*$)/', $wancfg['adv_dhcp_option_modifiers']); foreach ($modifiers as $modifier) { $option_modifiers .= "\t" . trim($modifier) . ";\n"; }