[Commits] : Tuxbox-GIT: apps branch master updated. CVS-Final-549-gfa967f9
Tuxbox Sources
Brought to you by:
dbt1
|
From: GetAway <tux...@ne...> - 2015-05-12 14:32:23
|
Project "Tuxbox-GIT: apps":
The branch, master has been updated
via fa967f9f085f85ee99a7280b31d104d6d2987f5b (commit)
from 17875b740770903ec906f159a1bbb016256d50b1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fa967f9f085f85ee99a7280b31d104d6d2987f5b
Author: m4...@gm... <m4...@gm...>
Date: Tue May 12 16:31:41 2015 +0200
network setup: calculate broadcast based on ip and netmask
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/src/gui/network_setup.cpp b/tuxbox/neutrino/src/gui/network_setup.cpp
index 42886de..29d1cd2 100644
--- a/tuxbox/neutrino/src/gui/network_setup.cpp
+++ b/tuxbox/neutrino/src/gui/network_setup.cpp
@@ -44,6 +44,7 @@
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h>
+#include <arpa/inet.h>
#include <linux/if.h>
#include "gui/network_setup.h"
@@ -145,6 +146,15 @@ int CNetworkSetup::exec(CMenuTarget* parent, const std::string &actionKey)
return res;
}
+void CNetworkSetup::setBroadcast(void)
+{
+ in_addr_t na = inet_addr(network_address.c_str());
+ in_addr_t nm = inet_addr(network_netmask.c_str());
+ struct in_addr in;
+ in.s_addr = na | ~nm;
+ char tmp[40];
+ network_broadcast = (inet_ntop(AF_INET, &in, tmp, sizeof(tmp))) ? std::string(tmp) : "0.0.0.0";
+}
#define OPTIONS_NTPENABLE_OPTION_COUNT 2
const CMenuOptionChooser::keyval OPTIONS_NTPENABLE_OPTIONS[OPTIONS_NTPENABLE_OPTION_COUNT] =
@@ -183,7 +193,8 @@ int CNetworkSetup::showNetworkSetup()
CMenuForwarder *m1 = new CMenuForwarder(LOCALE_NETWORKMENU_IPADDRESS , networkConfig->inet_static, network_address , &networkSettings_NetworkIP );
CMenuForwarder *m2 = new CMenuForwarder(LOCALE_NETWORKMENU_NETMASK , networkConfig->inet_static, network_netmask , &networkSettings_NetMask );
- CMenuForwarder *m3 = new CMenuForwarder(LOCALE_NETWORKMENU_BROADCAST , networkConfig->inet_static, network_broadcast , &networkSettings_Broadcast );
+ setBroadcast();
+ CMenuForwarder *m3 = new CMenuForwarder(LOCALE_NETWORKMENU_BROADCAST , false, network_broadcast);
CMenuForwarder *m4 = new CMenuForwarder(LOCALE_NETWORKMENU_GATEWAY , networkConfig->inet_static, network_gateway , &networkSettings_Gateway );
CMenuForwarder *m5 = new CMenuForwarder(LOCALE_NETWORKMENU_NAMESERVER, networkConfig->inet_static, network_nameserver, &networkSettings_NameServer);
@@ -437,7 +448,7 @@ void CNetworkSetup::restoreNetworkSettings(bool show_message)
network_dhcp = old_network_dhcp;
network_address = old_network_address;
network_netmask = old_network_netmask;
- network_broadcast = old_network_broadcast;
+ setBroadcast();
network_nameserver = old_network_nameserver;
network_gateway = old_network_gateway;
@@ -545,20 +556,13 @@ void CNetworkSetup::showCurrentNetworkSettings()
ShowMsgUTF(LOCALE_NETWORKMENU_SHOW, text, CMessageBox::mbrBack, CMessageBox::mbBack); // UTF-8
}
-bool CNetworkSetup::changeNotify(const neutrino_locale_t OptionName, void * Data)
+bool CNetworkSetup::changeNotify(const neutrino_locale_t OptionName, void * /*Data*/)
{
- if (ARE_LOCALES_EQUAL(OptionName, LOCALE_NETWORKMENU_IPADDRESS))
- {
- char ip[16];
- unsigned char _ip[4];
- sscanf((char*) Data, "%hhu.%hhu.%hhu.%hhu", &_ip[0], &_ip[1], &_ip[2], &_ip[3]);
-
- sprintf(ip, "%hhu.%hhu.%hhu.255", _ip[0], _ip[1], _ip[2]);
- networkConfig->broadcast = ip;
- network_broadcast = networkConfig->broadcast;
-
- networkConfig->netmask = (_ip[0] == 10) ? "255.0.0.0" : "255.255.255.0";
- network_netmask = networkConfig->netmask;
+ if (ARE_LOCALES_EQUAL(OptionName, LOCALE_NETWORKMENU_IPADDRESS)) {
+ setBroadcast();
+ }
+ else if(OptionName == LOCALE_NETWORKMENU_NETMASK) {
+ setBroadcast();
}
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_NETWORKMENU_NTPSERVER) ||
ARE_LOCALES_EQUAL(OptionName, LOCALE_NETWORKMENU_NTPREFRESH) ||
diff --git a/tuxbox/neutrino/src/gui/network_setup.h b/tuxbox/neutrino/src/gui/network_setup.h
index cb0fc24..2723eb7 100644
--- a/tuxbox/neutrino/src/gui/network_setup.h
+++ b/tuxbox/neutrino/src/gui/network_setup.h
@@ -71,6 +71,7 @@ class CNetworkSetup : public CMenuTarget, CChangeObserver
bool checkForIP();
bool settingsChanged();
const char * mypinghost(const char * const host);
+ void setBroadcast(void);
public:
enum NETWORK_DHCP_MODE
-----------------------------------------------------------------------
Summary of changes:
tuxbox/neutrino/src/gui/network_setup.cpp | 34 ++++++++++++++++------------
tuxbox/neutrino/src/gui/network_setup.h | 1 +
2 files changed, 20 insertions(+), 15 deletions(-)
--
Tuxbox-GIT: apps
|