From a7ca1661302bd200dbbcf8ba700fed36a167ad98 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 10 Aug 2017 15:15:42 +0200 Subject: [PATCH] interfaces: the renaming in one ifconfig may be unstable --- src/etc/inc/interfaces.lib.inc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index 198237abd..55b098a07 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -72,12 +72,19 @@ function legacy_interface_flags($ifs, $flag, $report_errors=true) } } +function legacy_interface_rename($ifs, $name) +{ + $cmd = '/sbin/ifconfig ' . escapeshellarg($ifs) . ' name ' . escapeshellarg($name); + + exec($cmd . ' 2>&1', $out, $ret); + if ($ret) { + log_error('The command `' . $cmd . '\' failed to execute'); + } +} + function legacy_interface_create($ifs, $name = null) { $cmd = '/sbin/ifconfig ' . escapeshellarg($ifs) . ' create'; - if (!empty($name)) { - $cmd .= ' name ' . escapeshellarg($name); - } $new = null; exec($cmd . ' 2>&1', $out, $ret); @@ -90,6 +97,11 @@ function legacy_interface_create($ifs, $name = null) $new = $out[0]; } + if (!empty($name)) { + legacy_interface_rename($ifs, $name); + $new = $name; + } + return ($new); }