]> git.llucax.com Git - z.facultad/75.74/practicos.git/blobdiff - practicas/pipi/src/ip.cpp
Primera aproximación al cache y a la resolución de nombres.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / ip.cpp
index dd38b9b13306014f7bda5a5d3113acd411a4f432..b131524d2a9892bad8ccdb30aaa4e46693a0807a 100644 (file)
@@ -3,7 +3,8 @@
 #include "ipin.h"
 #include "ipaddr.h"
 #include "routetable.h"
-#include "dev.h"
+#include "devtcp.h"
+#include "devque.h"
 #include <iostream>
 #include <fstream>
 #include <sstream>
@@ -17,7 +18,7 @@
 #include <sys/msg.h>
 #include <signal.h>
 
-// Uso: ./test_ipout ip [router forward routes_file queue_id proto]
+// Uso: ./test_ipout ip [router forward routes_file port proto]
 
 void send_loop(IPOut& ipout, unsigned proto);
 
@@ -28,12 +29,12 @@ int main(int argc, char* argv[])
     bool router = false;
     bool forward = false;
     unsigned proto = 0;
-    key_t queue_id = DEV_DEFAULT_KEY;
+    uint16_t port = DEVTCP_DEFAULT_PORT;
     std::string fname = "route.txt";
     if (argc < 2)
     {
         std::cerr << "Uso: ./test_ipout ip [router forward routes_file "
-            "queue_id proto]\n";
+            "port proto]\n";
         return 1;
     }
     IPAddr addr(argv[1]);
@@ -44,17 +45,16 @@ int main(int argc, char* argv[])
     if (argc > 4)
         fname = argv[4];
     if (argc > 5)
-        queue_id = atoi(argv[5]);
+        port = atoi(argv[5]);
     if (argc > 6)
         proto = atoi(argv[6]);
-    // Creo colas
-    int que_id = msgget(queue_id, IPC_CREAT | 0666); assert(que_id != -1);
-    que_id = msgget(DEV_DEFAULT_KEY-1, IPC_CREAT | 0666); assert(que_id != -1);
+    // Creo cola para comunicar el IPIn con IPOut
+    int que_id = msgget(DEVQUE_DEFAULT_KEY-1, IPC_CREAT | 0666); assert(que_id != -1);
     // Abro archivo con rutas
     std::ifstream ifs(fname.c_str()); assert(ifs);
     // Creo medio físico y cola para forwarding
-    Dev dev(addr, queue_id);
-    Dev fwque(addr, DEV_DEFAULT_KEY-1);
+    DevTCP dev(addr, port);
+    DevQue fwque(addr, DEVQUE_DEFAULT_KEY-1);
     // Creo procesos
     pid_t pid_send = fork();
     if (pid_send == -1)
@@ -132,7 +132,7 @@ void add_routes(RouteTable& rt, std::istream& is, Dev& dev)
         iss >> net >> gw >> mtu >> 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, mtu, dev);
+        rt.add(net, gw, metric, mtu, dev);
     }
 }