From 93932c891eb76fa96f99aea275325c6048b62747 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 5 Feb 2013 00:33:28 +0100 Subject: Permit to use a tunnel not in /dev * pfinet/main.c (find_device): Use basename of NAME for the comparison against "tun" and "dummy". * pfinet/tunnel.c (setup_tunnel_device): Only prepend "/dev/" to tun name if the parameter is not a path. --- pfinet/main.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pfinet/main.c') diff --git a/pfinet/main.c b/pfinet/main.c index 7ec1bf1c..01b324df 100644 --- a/pfinet/main.c +++ b/pfinet/main.c @@ -174,6 +174,7 @@ error_t find_device (char *name, struct device **device) { struct device *dev = dev_base; + char *base_name; /* Skip loopback interface. */ assert (dev); @@ -202,9 +203,15 @@ find_device (char *name, struct device **device) return 0; } - if (strncmp(name, "tun", 3) == 0) + base_name = strrchr(name, '/'); + if (base_name) + base_name++; + else + base_name = name; + + if (strncmp(base_name, "tun", 3) == 0) setup_tunnel_device (name, device); - else if (strncmp(name, "dummy", 5) == 0) + else if (strncmp(base_name, "dummy", 5) == 0) setup_dummy_device (name, device); else setup_ethernet_device (name, device); -- cgit v1.2.3