/usr/include/wvstreams/wvipaliaser.h is in libwvstreams-dev 4.6.1-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | /* -*- Mode: C++ -*-
* Worldvisions Weaver Software:
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
*
*/
#ifndef __WVIPALIASER_H
#define __WVIPALIASER_H
#include "wvinterface.h"
#include "wvaddr.h"
/**
* 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)
*/
class WvIPAliaser
{
struct Alias
{
int index, link_count;
WvIPAddr ip;
Alias(const WvIPAddr &_ip);
~Alias();
};
DeclareWvList(Alias);
static AliasList all_aliases;
AliasList aliases;
WvInterfaceDict interfaces;
WvIPAliaser::Alias *ipsearch(WvIPAliaser::AliasList &l,
const WvIPAddr &ip);
public:
WvIPAliaser();
~WvIPAliaser();
void dump();
/**
* 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.
*/
void start_edit();
bool add(const WvIPAddr &ip);
bool done_edit();
};
#endif // __WVIPALIASER_H
|