Remove duplicate code
authorMicky Del Favero <micky@BeeCloudy.net>
Tue, 23 Oct 2018 20:24:43 +0000 (22:24 +0200)
committerMicky Del Favero <micky@BeeCloudy.net>
Tue, 23 Oct 2018 20:24:43 +0000 (22:24 +0200)
Signed-off-by: Micky Del Favero <micky@BeeCloudy.net>
README.md
cmdline.cc
config.proto
net.cc
nsjail.1

index ea12994..fb4420e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -504,6 +504,8 @@ Options:
        Netmask of the 'vs' interface (e.g. "255.255.255.0")
  --macvlan_vs_gw VALUE
        Default GW for the 'vs' interface (e.g. "192.168.0.1")
+ --macvlan_vs_ma VALUE
+       MAC-address of the 'vs' interface (e.g. "ba:ad:ba:be:45:00")
 
  Examples: 
  Wait on a port 31337 for connections, and run /bin/sh
index 0bd0a24..3dbd99d 100644 (file)
@@ -151,7 +151,7 @@ struct custom_option custom_opts[] = {
     { { "macvlan_vs_ip", required_argument, NULL, 0x701 }, "IP of the 'vs' interface (e.g. \"192.168.0.1\")" },
     { { "macvlan_vs_nm", required_argument, NULL, 0x702 }, "Netmask of the 'vs' interface (e.g. \"255.255.255.0\")" },
     { { "macvlan_vs_gw", required_argument, NULL, 0x703 }, "Default GW for the 'vs' interface (e.g. \"192.168.0.1\")" },
-    { { "macvlan_vs_ma", required_argument, NULL, 0x705 }, "Mac-address of the 'vs' interface (e.g. \"ba:ad:ba:be:45:00\")" },
+    { { "macvlan_vs_ma", required_argument, NULL, 0x705 }, "MAC-address of the 'vs' interface (e.g. \"ba:ad:ba:be:45:00\")" },
 };
 // clang-format on
 
index b621f7b..41e47b0 100644 (file)
@@ -234,7 +234,7 @@ message NsJailConfig {
     optional string macvlan_vs_ip = 73 [default = "192.168.0.2"];
     optional string macvlan_vs_nm = 74 [default = "255.255.255.0"];
     optional string macvlan_vs_gw = 75 [default = "192.168.0.1"];
-    optional string macvlan_vs_ma = 80 [default = "ba:ad:ba:be:45:00"];
+    optional string macvlan_vs_ma = 80 [default = ""];
 
     /* Binary path (with arguments) to be executed. If not specified here, it
        can be specified with cmd-line as "-- /path/to/command arg1 arg2" */
diff --git a/net.cc b/net.cc
index 7f2c8e6..d22f047 100644 (file)
--- a/net.cc
+++ b/net.cc
@@ -187,20 +187,18 @@ bool initNsFromParent(nsjconf_t* nsjconf, int pid) {
        LOG_D("Putting iface:'%s' into namespace of PID:%d (with /sbin/ip)",
            nsjconf->iface_vs.c_str(), pid);
 
+       std::vector<std::string> argv;
+       
        if ( nsjconf->iface_vs_ma != "" ) {
-         const std::vector<std::string> argv{"/sbin/ip", "link", "add", "link", nsjconf->iface_vs,
+         argv = {"/sbin/ip", "link", "add", "link", nsjconf->iface_vs,
              "name", IFACE_NAME, "netns", std::to_string(pid), "address", nsjconf->iface_vs_ma, "type", "macvlan", "mode", "bridge"};
-         if (subproc::systemExe(argv, environ) != 0) {
-           LOG_E("Couldn't create MACVTAP interface for '%s'", nsjconf->iface_vs.c_str());
-           return false;
-         }
        } else {
-         const std::vector<std::string> argv{"/sbin/ip", "link", "add", "link", nsjconf->iface_vs,
+         argv = {"/sbin/ip", "link", "add", "link", nsjconf->iface_vs,
              "name", IFACE_NAME, "netns", std::to_string(pid), "type", "macvlan", "mode", "bridge"};
-         if (subproc::systemExe(argv, environ) != 0) {
-           LOG_E("Couldn't create MACVTAP interface for '%s'", nsjconf->iface_vs.c_str());
-           return false;
-         }
+       }
+       if (subproc::systemExe(argv, environ) != 0) {
+         LOG_E("Couldn't create MACVTAP interface for '%s'", nsjconf->iface_vs.c_str());
+         return false;
        }
        return true;
 }
index 1ef8119..292be2a 100644 (file)
--- a/nsjail.1
+++ b/nsjail.1
@@ -266,7 +266,7 @@ Netmask of the 'vs' interface (e.g. "255.255.255.0")
 Default GW for the 'vs' interface (e.g. "192.168.0.1")
 .TP
 \fB\-\-macvlan_vs_ma\fR VALUE
-Mac-address of the 'vs' interface (e.g. "ba:ad:ba:be:45:00")
+MAC-address of the 'vs' interface (e.g. "ba:ad:ba:be:45:00")
 \"
 .SH Examples
 .PP