From 0ac702419b3b8450b689e0ee2500f34b577f1a72 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Wed, 16 Apr 2003 22:24:29 +0000 Subject: add some missing APIs to ONetworkInterface --- (limited to 'libopie2/opienet/onetwork.cpp') diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index f0094c7..be2736a 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp @@ -108,6 +108,12 @@ void ONetwork::synchronize() } +int ONetwork::count() const +{ + return _interfaces.count(); +} + + ONetworkInterface* ONetwork::interface( const QString& iface ) const { return _interfaces[iface]; @@ -211,11 +217,21 @@ bool ONetworkInterface::isUp() const } +void ONetworkInterface::setIPV4Address( const QHostAddress& addr ) +{ + struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr; + sa->sin_family = AF_INET; + sa->sin_port = 0; + sa->sin_addr.s_addr = htonl( addr.ip4Addr() ); + ioctl( SIOCSIFADDR ); +} + + QString ONetworkInterface::ipV4Address() const { if ( ioctl( SIOCGIFADDR ) ) { - struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr; + struct sockaddr_in* sa = (struct sockaddr_in *) &_ifr.ifr_addr; //FIXME: Use QHostAddress here return QString( inet_ntoa( sa->sin_addr ) ); } @@ -245,6 +261,29 @@ OMacAddress ONetworkInterface::macAddress() const } +void ONetworkInterface::setIPV4Netmask( const QHostAddress& addr ) +{ + struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr; + sa->sin_family = AF_INET; + sa->sin_port = 0; + sa->sin_addr.s_addr = htonl( addr.ip4Addr() ); + ioctl( SIOCSIFNETMASK ); +} + + +QString ONetworkInterface::ipV4Netmask() const +{ + if ( ioctl( SIOCGIFNETMASK ) ) + { + struct sockaddr_in* sa = (struct sockaddr_in *) &_ifr.ifr_addr; + //FIXME: Use QHostAddress here + return QString( inet_ntoa( sa->sin_addr ) ); + } + else + return ""; +} + + int ONetworkInterface::dataLinkType() const { if ( ioctl( SIOCGIFHWADDR ) ) -- cgit v0.9.0.2