Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
NetworkManager-kde
fix_static_ip.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix_static_ip.patch of Package NetworkManager-kde
Index: knetworkmanager/src/knetworkmanager-connection_setting_ipv4.h =================================================================== --- knetworkmanager/src/knetworkmanager-connection_setting_ipv4.h (Revision 880482) +++ knetworkmanager/src/knetworkmanager-connection_setting_ipv4.h (Revision 880676) @@ -95,6 +95,9 @@ bool useSetting(); + Q_UINT32 toCIDRSuffix(const QHostAddress&) const; + QHostAddress fromCIDRSuffix(Q_UINT32 suffix); + private: QValueList<QHostAddress> _dns; QStringList _dns_search; Index: knetworkmanager-connection_setting_ipv4.cpp =================================================================== --- knetworkmanager/src/knetworkmanager-connection_setting_ipv4.cpp (Revision 880482) +++ knetworkmanager/src/knetworkmanager-connection_setting_ipv4.cpp (Revision 880676) @@ -217,7 +217,7 @@ { QValueList<QDBusData> cur_ip; cur_ip.append(QDBusData::fromUInt32(swap32((*it).address.toIPv4Address()))); - cur_ip.append(QDBusData::fromUInt32(swap32((*it).netmask.toIPv4Address()))); + cur_ip.append(QDBusData::fromUInt32(toCIDRSuffix((*it).netmask))); if (!(*it).gateway.isNull()) cur_ip.append(QDBusData::fromUInt32(swap32((*it).gateway.toIPv4Address()))); ips.append(QDBusData::fromQValueList(cur_ip)); @@ -278,7 +277,12 @@ IPv4Address address; address.address = swap32(cur_ip[0].toUInt32()); - address.netmask = swap32(cur_ip[1].toUInt32()); + + if (cur_ip[1].toUInt32() >= 0 && cur_ip[1].toUInt32() <= 32) + address.netmask = fromCIDRSuffix(cur_ip[1].toUInt32()); + else + address.netmask = swap32(cur_ip[1].toUInt32()); + if (cur_ip.size() > 2) address.gateway = swap32(cur_ip[2].toUInt32()); @@ -292,3 +296,23 @@ if ((it = map.find(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS)) != map.end()) _ignore_auto_dns = it.data().toBool(); } + +Q_UINT32 IPv4::toCIDRSuffix(const QHostAddress& adr) const +{ + Q_UINT32 netmask = adr.toIPv4Address(); + Q_UINT32 suffix = 0; + while (netmask > 0) + { + suffix++; + netmask = netmask << 1; + } + return suffix; +} + +QHostAddress IPv4::fromCIDRSuffix(Q_UINT32 suffix) +{ + Q_UINT32 netmask = 0xFFFFFFFF; + netmask = netmask << (32 - suffix); + return QHostAddress(netmask); +} +
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor