WvStreams
Classes | Public Member Functions | List of all members
WvIPAliaser Class Reference

WvIPAliaser handles IP aliasing in the Linux kernel. More...

#include <wvipaliaser.h>

Public Member Functions

void dump ()
 
void start_edit ()
 you must call start_edit() once, then add() any number of times, then done_edit() once, to change your aliases. More...
 
bool add (const WvIPAddr &ip)
 
bool done_edit ()
 

Detailed Description

WvIPAliaser handles IP aliasing in the Linux kernel.

Multiple instances of the object can be created, and they will share aliases between them. Aliased addresses are only removed when all WvIPAliaser objects using that address give it up. (ie. the object is destroyed, or the Aliaser is reconfigured without including that address)

Definition at line 19 of file wvipaliaser.h.

Member Function Documentation

◆ start_edit()

void WvIPAliaser::start_edit ( )

you must call start_edit() once, then add() any number of times, then done_edit() once, to change your aliases.

The addresses add()ed during the session become the only ones that are aliases by this WvIPAliaser instance.

Why bother? This way, WvIPAliaser can see all the desired aliases when they are being changed, and only delete previously-added ones if they are no longer used. This is important, since if eg. Fast Forward has an open connection through 1.2.3.4, and we want to add 1.2.3.5 and delete 1.2.3.3, Fast Forward need not remember that it was using 1.2.3.3 but 1.2.3.4 does not get deleted, even temporarily.

If that was too confusing, just remember: call these functions in the order they appear below, always.

If add() returns true, then an interface was just created. If it returns false, then that call made no changes.

If done_edit() returns true, then one or more interfaces were just destroyed. If it returns false, then that call made no changes.

Definition at line 86 of file wvipaliaser.cc.


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