aboutsummaryrefslogtreecommitdiff
path: root/net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp')
-rw-r--r--net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp291
1 files changed, 0 insertions, 291 deletions
diff --git a/net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp b/net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp
deleted file mode 100644
index 09ad62f0543f..000000000000
--- a/net/knemo-kde4/files/patch-knemod-interfaceupdater.cpp
+++ /dev/null
@@ -1,291 +0,0 @@
---- src/knemod/interfaceupdater.cpp.orig Mon Jun 12 13:20:13 2006
-+++ src/knemod/interfaceupdater.cpp Mon Jun 12 14:43:02 2006
-@@ -17,6 +17,24 @@
- Boston, MA 02110-1301, USA.
- */
-
-+#ifdef __FreeBSD__
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <sys/sysctl.h>
-+#include <sys/time.h>
-+#include <sys/ioctl.h>
-+#include <net/ethernet.h>
-+#include <net/if_media.h>
-+#include <net/if_types.h>
-+#include <net/if.h>
-+#include <net/if_dl.h>
-+#include <net/if_mib.h>
-+#include <netdb.h>
-+#include <ifaddrs.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#endif
-+
- #include <qmap.h>
- #include <qregexp.h>
- #include <qstringlist.h>
-@@ -40,6 +58,7 @@
-
- InterfaceUpdater::~InterfaceUpdater()
- {
-+#ifndef Q_OS_FREEBSD
- if ( mRouteProcess )
- {
- mRouteProcess->kill();
-@@ -55,10 +74,12 @@
- mIwconfigProcess->kill();
- delete mIwconfigProcess;
- }
-+#endif
- }
-
- void InterfaceUpdater::checkConfig()
- {
-+#ifndef Q_OS_FREEBSD
- if ( !mIfconfigProcess )
- {
- mIfconfigStdout = QString::null;
-@@ -100,6 +121,7 @@
- }
- }
- #endif
-+#endif // Q_OS_FREEBSD
-
- #ifdef PATH_ROUTE
- if ( !mRouteProcess )
-@@ -108,7 +130,11 @@
- mRouteProcess = new KProcess();
- mRouteProcess->setEnvironment( "LANG", "C" );
- mRouteProcess->setEnvironment( "LC_ALL", "C" );
-+#ifdef Q_OS_FREEBSD
-+ *mRouteProcess << PATH_ROUTE << "-n" << "get" << "default";
-+#else
- *mRouteProcess << PATH_ROUTE << "-n";
-+#endif
- connect( mRouteProcess, SIGNAL( receivedStdout( KProcess*, char*, int ) ),
- this, SLOT( routeProcessStdout( KProcess*, char*, int ) ) );
- connect( mRouteProcess, SIGNAL( receivedStderr( KProcess*, char*, int ) ),
-@@ -123,6 +149,140 @@
- }
- }
- #endif
-+
-+#ifdef Q_OS_FREEBSD
-+ // Check interfaces and update accordingly
-+
-+ Interface* interface = 0;
-+ InterfaceData* data = 0;
-+
-+ struct if_data* ifd;
-+ struct ifaddrs *ifap;
-+ char buf[NI_MAXHOST];
-+
-+ // Reset all devices first
-+ QDictIterator<Interface> ifIt( mInterfaceDict );
-+ for ( ; ifIt.current(); ++ifIt )
-+ {
-+ interface = ifIt.current();
-+ interface->getData().existing = false;
-+ interface->getData().available = false;
-+ interface->getData().addrData.clear();
-+ }
-+
-+ // Get IP address and related information
-+ if ( getifaddrs(&ifap) == 0 ) {
-+ for ( ifaddrs *ifa = ifap; ifa; ifa = ifa->ifa_next ) {
-+ switch ( ifa->ifa_addr->sa_family ) {
-+ case AF_INET6:
-+ case AF_INET:
-+ interface = mInterfaceDict[QString::fromLatin1(ifa->ifa_name)];
-+ if ( interface ) {
-+ data = &interface->getData();
-+
-+ bzero(buf, NI_MAXHOST);
-+ getnameinfo(ifa->ifa_addr, ifa->ifa_addr->sa_len, buf, sizeof(buf), 0, 0, NI_NUMERICHOST);
-+ AddrData *addrData = new AddrData;
-+ data->addrData.insert( QString::fromLatin1(buf), addrData);
-+
-+ if ( ifa->ifa_netmask != NULL ) {
-+ if (ifa->ifa_addr->sa_family == AF_INET6 ) {
-+ bzero(buf, NI_MAXHOST);
-+ getnameinfo(ifa->ifa_netmask, ifa->ifa_netmask->sa_len, buf, sizeof(buf), 0, 0, NI_NUMERICHOST);
-+ addrData->subnetMask = QString::fromLatin1( buf );
-+ } else {
-+ struct sockaddr_in *sin = (struct sockaddr_in *)ifa->ifa_netmask;
-+ addrData->subnetMask = QString::fromLatin1( inet_ntoa(sin->sin_addr) );
-+ }
-+ }
-+
-+ if ( ifa->ifa_broadaddr != NULL ) {
-+ bzero(buf, NI_MAXHOST);
-+ getnameinfo(ifa->ifa_broadaddr, ifa->ifa_broadaddr->sa_len, buf, sizeof(buf), 0, 0, NI_NUMERICHOST);
-+ addrData->broadcastAddress = QString::fromLatin1(buf);
-+ }
-+
-+ if ( ifa->ifa_dstaddr != NULL ) {
-+ bzero(buf, NI_MAXHOST);
-+ getnameinfo(ifa->ifa_dstaddr, ifa->ifa_dstaddr->sa_len, buf, sizeof(buf), 0, 0, NI_NUMERICHOST);
-+ data->ptpAddress = QString::fromLatin1(buf);
-+ }
-+
-+ data->existing = true;
-+ interface->setType((ifa->ifa_flags & IFF_POINTOPOINT ) ? Interface::PPP : Interface::ETHERNET );
-+
-+ // Get media status
-+ int s;
-+ if ((s = socket(ifa->ifa_addr->sa_family, SOCK_DGRAM, 0)) >= 0) {
-+ struct ifmediareq ifmr;
-+ (void) memset(&ifmr, 0, sizeof(ifmr));
-+ (void) strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name));
-+
-+ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) >= 0) {
-+ if (ifmr.ifm_status & IFM_AVALID)
-+ /*
-+ * The interface is marked available, if the interface is up
-+ * and if it is has carrier (LAN) or is associated (WLAN)
-+ */
-+ data->available = (ifa->ifa_flags & IFF_UP) && (ifmr.ifm_status & IFM_ACTIVE);
-+ }
-+ else
-+ data->available = (ifa->ifa_flags & IFF_UP);
-+
-+ close(s);
-+ }
-+ }
-+ break;
-+
-+ case AF_LINK:
-+ interface = mInterfaceDict[QString::fromLatin1(ifa->ifa_name)];
-+ if ( interface ) {
-+ data = &interface->getData();
-+
-+ // get MAC address
-+ struct sockaddr_dl* sdl = (struct sockaddr_dl*)ifa->ifa_addr;
-+ if (sdl->sdl_type == IFT_ETHER && sdl->sdl_alen == ETHER_ADDR_LEN)
-+ data->hwAddress = QString::fromLatin1(ether_ntoa((struct ether_addr*)LLADDR(sdl)));
-+ else
-+ data->hwAddress = "";
-+
-+ // Get traffic statistics
-+ if (ifa->ifa_data != NULL) {
-+ ifd = (if_data *)ifa->ifa_data;
-+
-+ data->rxPackets = ifd->ifi_ipackets;
-+ data->txPackets = ifd->ifi_opackets;
-+
-+ if ( data->prevRxBytes == 0L )
-+ data->prevRxBytes = ifd->ifi_ibytes;
-+ else
-+ data->prevRxBytes = data->rxBytes;
-+
-+ data->rxBytes = ifd->ifi_ibytes;
-+ data->incomingBytes = data->rxBytes - data->prevRxBytes;
-+ data->rxString = KIO::convertSize( data->rxBytes );
-+
-+ if ( data->prevTxBytes == 0L )
-+ data->prevTxBytes = ifd->ifi_obytes;
-+ else
-+ data->prevTxBytes = data->txBytes;
-+
-+ data->txBytes = ifd->ifi_obytes;
-+ data->outgoingBytes = data->txBytes - data->prevTxBytes;
-+ data->txString = KIO::convertSize( data->txBytes );
-+ }
-+ }
-+ break;
-+ }
-+ }
-+ freeifaddrs(ifap);
-+ }
-+
-+ // Update the display
-+ for ( ifIt.toFirst(); ifIt.current(); ++ifIt )
-+ ifIt.current()->activateMonitor();
-+
-+#endif // Q_OS_FREEBSD
- }
-
- void InterfaceUpdater::routeProcessExited( KProcess* process )
-@@ -172,6 +332,7 @@
-
- void InterfaceUpdater::parseIfconfigOutput()
- {
-+#ifndef Q_OS_FREEBSD
- /* mIfconfigStdout contains the complete output of 'ifconfig' which we
- * are going to parse here.
- */
-@@ -228,10 +389,12 @@
- }
- interface->activateMonitor();
- }
-+#endif
- }
-
- void InterfaceUpdater::updateInterfaceData( QString& config, InterfaceData& data, int type )
- {
-+#ifndef Q_OS_FREEBSD
- QRegExp regExp( ".*RX.*:(\\d+).*:\\d+.*:\\d+.*:\\d+" );
- if ( regExp.search( config ) > -1 )
- data.rxPackets = regExp.cap( 1 ).toULong();
-@@ -321,10 +484,12 @@
- if ( regExp.search( config ) > -1 )
- data.ptpAddress = regExp.cap( 2 );
- }
-+#endif
- }
-
- void InterfaceUpdater::parseIwconfigOutput()
- {
-+#ifndef Q_OS_FREEBSD
- /* mIwconfigStdout contains the complete output of 'iwconfig' which we
- * are going to parse here.
- */
-@@ -367,10 +532,12 @@
- updateWirelessData( configs[key], interface->getWirelessData() );
- }
- }
-+#endif
- }
-
- void InterfaceUpdater::updateWirelessData( QString& config, WirelessData& data )
- {
-+#ifndef Q_OS_FREEBSD
- QRegExp regExp( "ESSID:\"?([^\"]*)\"?" );
- if ( regExp.search( config ) > -1 )
- data.essid = regExp.cap( 1 );
-@@ -404,6 +571,7 @@
- regExp.setPattern( "Link Quality[=:]([\\d/]*)" );
- if ( regExp.search( config ) > -1 )
- data.linkQuality = regExp.cap( 1 );
-+#endif
- }
-
- void InterfaceUpdater::parseRouteOutput()
-@@ -412,16 +580,25 @@
- * are going to parse here.
- */
- QMap<QString, QStringList> configs;
-- QStringList routeList = QStringList::split( "\n", mRouteStdout );
-+ QStringList gateway, routeList = QStringList::split( "\n", mRouteStdout );
- QStringList::Iterator it;
- for ( it = routeList.begin(); it != routeList.end(); ++it )
- {
- QStringList routeParameter = QStringList::split( " ", *it );
-+#ifdef Q_OS_FREEBSD
-+ if ( routeParameter.count() != 2 )
-+ continue;
-+ if ( routeParameter[0] == "gateway:" )
-+ gateway = routeParameter;
-+ if ( routeParameter[0] == "interface:" )
-+ configs[routeParameter[1]] = gateway;
-+#else
- if ( routeParameter.count() < 8 ) // no routing entry
- continue;
- if ( routeParameter[0] != "0.0.0.0" ) // no default route
- continue;
- configs[routeParameter[7]] = routeParameter;
-+#endif
- }
-
- /* We loop over the interfaces the user wishs to monitor.