summaryrefslogtreecommitdiff
path: root/libopie2/opienet/onetwork.cpp
Unidiff
Diffstat (limited to 'libopie2/opienet/onetwork.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opienet/onetwork.cpp39
1 files changed, 39 insertions, 0 deletions
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()
108} 108}
109 109
110 110
111int ONetwork::count() const
112{
113 return _interfaces.count();
114}
115
116
111ONetworkInterface* ONetwork::interface( const QString& iface ) const 117ONetworkInterface* ONetwork::interface( const QString& iface ) const
112{ 118{
113 return _interfaces[iface]; 119 return _interfaces[iface];
@@ -211,6 +217,16 @@ bool ONetworkInterface::isUp() const
211} 217}
212 218
213 219
220void ONetworkInterface::setIPV4Address( const QHostAddress& addr )
221{
222 struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr;
223 sa->sin_family = AF_INET;
224 sa->sin_port = 0;
225 sa->sin_addr.s_addr = htonl( addr.ip4Addr() );
226 ioctl( SIOCSIFADDR );
227}
228
229
214QString ONetworkInterface::ipV4Address() const 230QString ONetworkInterface::ipV4Address() const
215{ 231{
216 if ( ioctl( SIOCGIFADDR ) ) 232 if ( ioctl( SIOCGIFADDR ) )
@@ -245,6 +261,29 @@ OMacAddress ONetworkInterface::macAddress() const
245} 261}
246 262
247 263
264void ONetworkInterface::setIPV4Netmask( const QHostAddress& addr )
265{
266 struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr;
267 sa->sin_family = AF_INET;
268 sa->sin_port = 0;
269 sa->sin_addr.s_addr = htonl( addr.ip4Addr() );
270 ioctl( SIOCSIFNETMASK );
271}
272
273
274QString ONetworkInterface::ipV4Netmask() const
275{
276 if ( ioctl( SIOCGIFNETMASK ) )
277 {
278 struct sockaddr_in* sa = (struct sockaddr_in *) &_ifr.ifr_addr;
279 //FIXME: Use QHostAddress here
280 return QString( inet_ntoa( sa->sin_addr ) );
281 }
282 else
283 return "<unknown>";
284}
285
286
248int ONetworkInterface::dataLinkType() const 287int ONetworkInterface::dataLinkType() const
249{ 288{
250 if ( ioctl( SIOCGIFHWADDR ) ) 289 if ( ioctl( SIOCGIFHWADDR ) )