// $Id$
//
// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-// Thorsten Horstmann <thorsten.horstmann@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// Thorsten Horstmann <tho@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// Custom includes
#include <sys/socket.h>
#include <sys/ioctl.h>
-#include <net/if.h>
#include "../Utils/Exception.hh"
#define prefix_
prefix_ std::string senf::NetdeviceController::interfaceName()
{
struct ifreq ifr;
- set_ifr_name( ifr);
+ ifrName( ifr);
return std::string( ifr.ifr_name);
}
prefix_ senf::MACAddress senf::NetdeviceController::hardwareAddress()
{
struct ifreq ifr;
+ ifrName( ifr);
doIoctl( ifr, SIOCGIFHWADDR);
return senf::MACAddress::from_data( ifr.ifr_hwaddr.sa_data);
}
prefix_ int senf::NetdeviceController::mtu()
{
struct ifreq ifr;
- set_ifr_name(ifr);
+ ifrName( ifr);
doIoctl( ifr, SIOCGIFMTU);
return ifr.ifr_mtu;
}
prefix_ void senf::NetdeviceController::mtu(int new_mtu)
{
struct ifreq ifr;
- set_ifr_name( ifr);
+ ifrName( ifr);
ifr.ifr_mtu = new_mtu;
doIoctl( ifr, SIOCSIFMTU);
}
{
sockfd_ = ::socket( PF_INET, SOCK_DGRAM, 0);
if ( sockfd_ < 0)
- throwErrno();
+ throw SystemException();
}
-prefix_ void senf::NetdeviceController::set_ifr_name(ifreq& ifr)
+prefix_ void senf::NetdeviceController::ifrName(ifreq& ifr)
{
::memset( &ifr, 0, sizeof(ifr));
ifr.ifr_ifindex = ifindex_;
if ( ::ioctl( sockfd_, SIOCGIFNAME, &ifr ) < 0 )
- throwErrno();
+ throw SystemException();
}
prefix_ void senf::NetdeviceController::doIoctl(ifreq& ifr, int request)
{
if ( ::ioctl( sockfd_, request, &ifr ) < 0 )
- throwErrno();
+ throw SystemException();
}
///////////////////////////////cc.e////////////////////////////////////////