#include "routetable.h"
+#include <string>
+#include <sstream>
+#ifdef DEBUG
+#include <iostream>
+#endif
RouteTable::RouteTable(Dev& default_iface): default_iface(default_iface)
{
}
-void RouteTable::add(const IPAddr& net, const IPAddr& gw, unsigned metric, Dev& iface)
+void RouteTable::add(const IPAddr& net, const IPAddr& gw, unsigned mtu,
+ unsigned metric, Dev& iface)
{
- table[net] = Route(gw, metric, iface);
+ table[net] = Route(gw, metric, mtu, iface);
+#ifdef DEBUG
+ //std::cout << "Se agregó tabla para " << net << ": gw = " << gw
+ // << ", metric = " << metric << "\n";
+#endif
}
void RouteTable::del(const IPAddr& net)
return &table[dst];
}
+void add_routes(RouteTable& rt, std::istream& is, Dev& dev)
+{
+ std::string line;
+ while (std::getline(is, line))
+ {
+ std::istringstream iss(line);
+ std::string net;
+ std::string gw;
+ unsigned mtu;
+ unsigned metric;
+ iss >> net >> gw >> mtu >> metric;
+ if (net == "0") net = "0.0.0.0";
+ if (gw == "0") gw = "0.0.0.0";
+ rt.add(net, gw, metric, mtu, dev);
+ }
+}
+
// vim: set et sw=4 sts=4 :