From 5c2dcd400896d0803c8cd29544ea6771b0844ce6 Mon Sep 17 00:00:00 2001 From: focus Date: Wed, 16 Mar 2011 10:51:21 +0000 Subject: [PATCH] Add additional attributes for wireless interface git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1300 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- lib/libnet/network_interfaces.cpp | 14 ++++++++++++-- lib/libnet/network_interfaces.h | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/libnet/network_interfaces.cpp b/lib/libnet/network_interfaces.cpp index 341b39628..3b87a0ee3 100644 --- a/lib/libnet/network_interfaces.cpp +++ b/lib/libnet/network_interfaces.cpp @@ -349,13 +349,18 @@ bool addLoopbackDevice(const std::string name, const bool automatic_start) return write_interface("/etc/network/interfaces", name, automatic_start, "inet", "loopback", attribute); } -bool setStaticAttributes(const std::string name, const bool automatic_start, const std::string address, const std::string netmask, const std::string broadcast, const std::string gateway) +bool setStaticAttributes(const std::string name, const bool automatic_start, const std::string address, const std::string netmask, const std::string broadcast, const std::string gateway, bool wireless) { std::map attribute; attribute["address"] = address; attribute["netmask"] = netmask; + if(wireless) { + attribute["pre-up"] = "/etc/network/pre-" + name + ".sh"; + attribute["post-down"] = "/etc/network/post-" + name + ".sh"; + } + if (!broadcast.empty()) attribute["broadcast"] = broadcast; @@ -365,12 +370,17 @@ bool setStaticAttributes(const std::string name, const bool automatic_start, con return write_interface("/etc/network/interfaces", name, automatic_start, "inet", "static", attribute); } -bool setDhcpAttributes(const std::string name, const bool automatic_start) +bool setDhcpAttributes(const std::string name, const bool automatic_start, bool wireless) { std::map attribute; char hostname[100]; if(gethostname(hostname, sizeof(hostname)) == 0) attribute["hostname"] = hostname; + if(wireless) { + attribute["pre-up"] = "/etc/network/pre-" + name + ".sh"; + attribute["post-down"] = "/etc/network/post-" + name + ".sh"; + } + return write_interface("/etc/network/interfaces", name, automatic_start, "inet", "dhcp", attribute); } diff --git a/lib/libnet/network_interfaces.h b/lib/libnet/network_interfaces.h index 56bbe43a3..a9e526159 100644 --- a/lib/libnet/network_interfaces.h +++ b/lib/libnet/network_interfaces.h @@ -28,8 +28,8 @@ bool getInetAttributes(const std::string name, bool &automatic_start, std::strin bool addLoopbackDevice(const std::string name, const bool automatic_start); -bool setStaticAttributes(const std::string name, const bool automatic_start, const std::string address, const std::string netmask, const std::string broadcast, const std::string gateway); +bool setStaticAttributes(const std::string name, const bool automatic_start, const std::string address, const std::string netmask, const std::string broadcast, const std::string gateway, bool wireless = false); -bool setDhcpAttributes(const std::string name, const bool automatic_start); +bool setDhcpAttributes(const std::string name, const bool automatic_start, bool wireless = false); #endif /* __network_interfaces_h__ */