7 #include "wvipaliaser.h"
8 #include "wvinterface.h"
12 WvIPAliaser::AliasList WvIPAliaser::all_aliases;
20 WvIPAliaser::Alias::Alias(
const WvIPAddr &_ip) : ip(_ip)
26 for (index = 0; index < 256; index++)
30 if (!i.isup() || i.ipaddr() == nonet)
43 if (i.isup() &&
WvIPNet(i.ipaddr(),32) == ip)
56 WvIPAliaser::Alias::~Alias()
72 WvIPAliaser::WvIPAliaser() : interfaces()
78 WvIPAliaser::~WvIPAliaser()
88 AliasList::Iter i(aliases);
91 AliasList::Iter i_all(all_aliases);
96 for (i.rewind(); i.next(); )
98 assert(i_all.find(i.ptr()));
109 WvIPAliaser::Alias *WvIPAliaser::ipsearch(WvIPAliaser::AliasList &l,
112 AliasList::Iter i(l);
114 for (i.rewind(); i.next(); )
124 bool WvIPAliaser::add(
const WvIPAddr &ip)
135 if (!!ifc && !strchr(ifc,
':'))
138 a = ipsearch(all_aliases, ip);
143 aliases.append(a,
false);
152 aliases.append(a,
false);
153 all_aliases.append(a,
true);
160 bool WvIPAliaser::done_edit()
162 bool any_change=
false;
163 AliasList::Iter i(all_aliases);
165 i.rewind(); i.next();
180 void WvIPAliaser::dump()
183 WvLog log(
"local aliases");
184 AliasList::Iter i(aliases);
185 for (i.rewind(); i.next(); )
188 log(
"#%s = lo:wv%s: %s (%s links)\n",
189 a.index, a.index, a.ip, a.link_count);
195 WvLog log(
"global aliases");
196 AliasList::Iter i(all_aliases);
197 for (i.rewind(); i.next(); )
200 log(
"#%s = lo:wv%s: %s (%s links)\n",
201 a.index, a.index, a.ip, a.link_count);