]> git.llucax.com Git - z.facultad/75.74/practicos.git/blobdiff - practicas/pipi/src/test_ipout.cpp
Se agrega opción para recibir paquetes de un host específico y se mejora el
[z.facultad/75.74/practicos.git] / practicas / pipi / src / test_ipout.cpp
index 1dd289ff6d48fa0afe15bb94c8dfdab844c18d0a..1f11fc1535ddd9053e61c74f50d045c222fa2721 100644 (file)
@@ -2,7 +2,7 @@
 #include "ipout.h"
 #include "ipaddr.h"
 #include "routetable.h"
 #include "ipout.h"
 #include "ipaddr.h"
 #include "routetable.h"
-#include "dev.h"
+#include "devque.h"
 #include <iostream>
 #include <fstream>
 #include <sstream>
 #include <iostream>
 #include <fstream>
 #include <sstream>
@@ -16,7 +16,7 @@
 
 // Uso: ./test_ipout ip dst mtu routes_file proto queue_id
 
 
 // Uso: ./test_ipout ip dst mtu routes_file proto queue_id
 
-void add_routes(RouteTable& rt, std::istream& is, Dev& dev);
+void add_routes(RouteTable& rt, std::istream& is, size_t mtu, Dev& dev);
 
 int main(int argc, char* argv[])
 {
 
 int main(int argc, char* argv[])
 {
@@ -24,7 +24,7 @@ int main(int argc, char* argv[])
     IPAddr dst("10.10.10.1");
     unsigned mtu = 25;
     unsigned proto = 0;
     IPAddr dst("10.10.10.1");
     unsigned mtu = 25;
     unsigned proto = 0;
-    key_t queue_id = DEV_DEFAULT_KEY;
+    key_t queue_id = DEVQUE_DEFAULT_KEY;
     std::string fname = "route.txt";
     if (argc > 1)
         addr = IPAddr(argv[1]);
     std::string fname = "route.txt";
     if (argc > 1)
         addr = IPAddr(argv[1]);
@@ -41,11 +41,11 @@ int main(int argc, char* argv[])
     int que_id = msgget(queue_id, IPC_CREAT | 0666); assert(que_id != -1);
     que_id = msgget(queue_id+1, IPC_CREAT | 0666); assert(que_id != -1);
     std::ifstream ifs(fname.c_str()); assert(ifs);
     int que_id = msgget(queue_id, IPC_CREAT | 0666); assert(que_id != -1);
     que_id = msgget(queue_id+1, IPC_CREAT | 0666); assert(que_id != -1);
     std::ifstream ifs(fname.c_str()); assert(ifs);
-    Dev dev(addr, mtu, queue_id);
-    Dev fwque(addr, DEV_MAX_MTU, queue_id+1);
+    DevQue dev(addr, mtu, queue_id);
+    DevQue fwque(addr, DEV_MAX_MTU, queue_id+1);
     RouteTable table(dev);
     RouteTable table(dev);
-    add_routes(table, ifs, dev);
-    IPOut ipout(addr, table, fwque);
+    add_routes(table, ifs, mtu, dev);
+    IPOut ipout(addr, table, fwque, std::cerr);
     std::string msg;
     while (std::getline(std::cin, msg))
     {
     std::string msg;
     while (std::getline(std::cin, msg))
     {
@@ -57,7 +57,7 @@ int main(int argc, char* argv[])
     return 0;
 }
 
     return 0;
 }
 
-void add_routes(RouteTable& rt, std::istream& is, Dev& dev)
+void add_routes(RouteTable& rt, std::istream& is, size_t mtu, Dev& dev)
 {
     std::string line;
     while (std::getline(is, line))
 {
     std::string line;
     while (std::getline(is, line))
@@ -69,7 +69,7 @@ void add_routes(RouteTable& rt, std::istream& is, Dev& dev)
         iss >> net >> gw >> metric;
         if (net == "0") net = "0.0.0.0";
         if (gw == "0") gw = "0.0.0.0";
         iss >> net >> gw >> metric;
         if (net == "0") net = "0.0.0.0";
         if (gw == "0") gw = "0.0.0.0";
-        rt.add(net.c_str(), gw.c_str(), metric, dev);
+        rt.add(net, gw, mtu, metric, dev);
     }
 }
 
     }
 }