WvStreams
Public Member Functions | Public Attributes | List of all members
WvInterface Class Reference

A WvInterface manages a particular network interface. More...

#include <wvinterface.h>

Public Member Functions

 WvInterface (WvStringParm _name)
 
void rescan ()
 forget all stored information about the address(es) of this interface
 
const WvAddrhwaddr ()
 get the hardware address of this interface
 
const WvIPNetipaddr ()
 get the local IP net of this interface
 
const WvIPAddr dstaddr ()
 get the point-to-point IP address of this interface
 
int getflags ()
 get the current kernel flags
 
int setflags (int clear, int set)
 toggle kernel flags on this netdevice.
 
bool isup ()
 set the interface state up or down.
 
void up (bool enable)
 
bool ispromisc ()
 turn promiscuous (see-all-packets) mode on or off.
 
void promisc (bool enable)
 
int ptp (bool enable, const WvIPNet &addr)
 turn point-to-point mode on or off.
 
int setipaddr (const WvIPNet &addr)
 Sets the local address, netmask, and broadcast of this interface and set a route to the local net.
 
int setmtu (int mtu)
 Sets the MTU of the interface.
 
int sethwaddr (const WvAddr &addr)
 Set the hardware address of this interface.
 
int addroute (const WvIPNet &dest, int metric=0, WvStringParm table="default")
 add a route to the given network through this interface.
 
int addroute (const WvIPNet &dest, const WvIPAddr &gw, const WvIPAddr &src, int metric=0, WvStringParm table="default")
 
int delroute (const WvIPNet &dest, int metric=0, WvStringParm table="default")
 delete a route to the given network through this interface.
 
int delroute (const WvIPNet &dest, const WvIPAddr &gw, int metric=0, WvStringParm table="default")
 
bool isarp ()
 add an ARP entry on this interface
 
int addarp (const WvIPNet &proto, const WvAddr &hw, bool proxy)
 
int req (int ioctl_num, struct ifreq *ifr)
 get/set information about an interface
 
int req (int ioctl_num, struct iwreq *ifr)
 get/set information about a wireless interface
 

Public Attributes

WvString name
 
bool valid
 

Detailed Description

A WvInterface manages a particular network interface.

It is allowed to have more than one WvInterface instance referring to the same physical interface, because that is more convenient.

Definition at line 24 of file wvinterface.h.

Constructor & Destructor Documentation

◆ WvInterface()

WvInterface::WvInterface ( WvStringParm  _name)

Definition at line 37 of file wvinterface.cc.

◆ ~WvInterface()

WvInterface::~WvInterface ( )

Definition at line 45 of file wvinterface.cc.

Member Function Documentation

◆ rescan()

void WvInterface::rescan ( )

forget all stored information about the address(es) of this interface

Definition at line 84 of file wvinterface.cc.

Referenced by sethwaddr(), and setipaddr().

◆ hwaddr()

const WvAddr & WvInterface::hwaddr ( )

get the hardware address of this interface

Definition at line 101 of file wvinterface.cc.

References req().

◆ ipaddr()

const WvIPNet & WvInterface::ipaddr ( )

get the local IP net of this interface

Definition at line 117 of file wvinterface.cc.

References req().

Referenced by setipaddr().

◆ dstaddr()

const WvIPAddr WvInterface::dstaddr ( )

get the point-to-point IP address of this interface

Definition at line 136 of file wvinterface.cc.

References getflags(), and req().

◆ getflags()

int WvInterface::getflags ( )

get the current kernel flags

Definition at line 147 of file wvinterface.cc.

References req().

Referenced by dstaddr(), isarp(), ispromisc(), and isup().

◆ setflags()

int WvInterface::setflags ( int  clear,
int  set 
)

toggle kernel flags on this netdevice.

Be careful!

Definition at line 157 of file wvinterface.cc.

References WvLog::perror(), and req().

Referenced by ptp().

◆ isup()

bool WvInterface::isup ( )

set the interface state up or down.

Definition at line 183 of file wvinterface.cc.

References getflags().

Referenced by sethwaddr().

◆ up()

void WvInterface::up ( bool  enable)

Definition at line 176 of file wvinterface.cc.

◆ ispromisc()

bool WvInterface::ispromisc ( )

turn promiscuous (see-all-packets) mode on or off.

Definition at line 212 of file wvinterface.cc.

References getflags().

◆ promisc()

void WvInterface::promisc ( bool  enable)

Definition at line 189 of file wvinterface.cc.

◆ ptp()

int WvInterface::ptp ( bool  enable,
const WvIPNet addr 
)

turn point-to-point mode on or off.

Definition at line 195 of file wvinterface.cc.

References WvLog::perror(), req(), and setflags().

◆ setipaddr()

int WvInterface::setipaddr ( const WvIPNet addr)

Sets the local address, netmask, and broadcast of this interface and set a route to the local net.

Returns 0 on success, else an error code.

Definition at line 218 of file wvinterface.cc.

References WvIPNet::base(), WvIPNet::bits(), ipaddr(), WvLog::perror(), and rescan().

◆ setmtu()

int WvInterface::setmtu ( int  mtu)

Sets the MTU of the interface.

Returns 0 on success, else an error code.

Definition at line 286 of file wvinterface.cc.

References WvLog::perror(), and req().

◆ sethwaddr()

int WvInterface::sethwaddr ( const WvAddr addr)

Set the hardware address of this interface.

Returns 0 on success, else an error code.

Definition at line 297 of file wvinterface.cc.

References isup(), WvLog::perror(), req(), and rescan().

◆ addroute() [1/2]

int WvInterface::addroute ( const WvIPNet dest,
int  metric = 0,
WvStringParm  table = "default" 
)

add a route to the given network through this interface.

Definition at line 472 of file wvinterface.cc.

References addroute().

Referenced by addroute(), and WvIPRouteList::set_kernel().

◆ addroute() [2/2]

int WvInterface::addroute ( const WvIPNet dest,
const WvIPAddr gw,
const WvIPAddr src,
int  metric = 0,
WvStringParm  table = "default" 
)

Definition at line 445 of file wvinterface.cc.

◆ delroute() [1/2]

int WvInterface::delroute ( const WvIPNet dest,
int  metric = 0,
WvStringParm  table = "default" 
)

delete a route to the given network through this interface.

Definition at line 532 of file wvinterface.cc.

References delroute().

Referenced by delroute(), and WvIPRouteList::set_kernel().

◆ delroute() [2/2]

int WvInterface::delroute ( const WvIPNet dest,
const WvIPAddr gw,
int  metric = 0,
WvStringParm  table = "default" 
)

Definition at line 479 of file wvinterface.cc.

◆ isarp()

bool WvInterface::isarp ( )

add an ARP entry on this interface

Definition at line 581 of file wvinterface.cc.

References getflags().

◆ addarp()

int WvInterface::addarp ( const WvIPNet proto,
const WvAddr hw,
bool  proxy 
)

Definition at line 539 of file wvinterface.cc.

◆ req() [1/2]

int WvInterface::req ( int  ioctl_num,
struct ifreq *  ifr 
)

get/set information about an interface

Definition at line 51 of file wvinterface.cc.

Referenced by dstaddr(), getflags(), hwaddr(), ipaddr(), ptp(), setflags(), sethwaddr(), and setmtu().

◆ req() [2/2]

int WvInterface::req ( int  ioctl_num,
struct iwreq *  ifr 
)

get/set information about a wireless interface

Definition at line 67 of file wvinterface.cc.

Member Data Documentation

◆ name

WvString WvInterface::name

Definition at line 41 of file wvinterface.h.

◆ valid

bool WvInterface::valid

Definition at line 42 of file wvinterface.h.


The documentation for this class was generated from the following files: