]> git.llucax.com Git - z.facultad/75.74/practicos.git/blobdiff - practicas/pipi/src/ip.cpp
No se crea más la cola porque la crea el mismo DevQue.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / ip.cpp
index b131524d2a9892bad8ccdb30aaa4e46693a0807a..0e9d0dec645baba007922c4c54b780fe23821cbe 100644 (file)
 #include <sys/msg.h>
 #include <signal.h>
 
-// Uso: ./test_ipout ip [router forward routes_file port proto]
+// Uso: ./ip ip [router forward routes_file port proto]
 
 void send_loop(IPOut& ipout, unsigned proto);
 
-void add_routes(RouteTable& rt, std::istream& is, Dev& dev);
-
 int main(int argc, char* argv[])
 {
     bool router = false;
     bool forward = false;
-    unsigned proto = 0;
+    uint8_t proto = 0;
     uint16_t port = DEVTCP_DEFAULT_PORT;
     std::string fname = "route.txt";
     if (argc < 2)
     {
-        std::cerr << "Uso: ./test_ipout ip [router forward routes_file "
+        std::cerr << "Uso: " << argv[0] << " ip [router forward routes_file "
             "port proto]\n";
         return 1;
     }
@@ -48,8 +46,6 @@ int main(int argc, char* argv[])
         port = atoi(argv[5]);
     if (argc > 6)
         proto = atoi(argv[6]);
-    // 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
@@ -97,7 +93,8 @@ int main(int argc, char* argv[])
             IPAddr src, dst;
             std::string s = ipin.recv(proto, src, dst);
             std::cout << "Recibido '" << s << "' (len " << s.size() << ") de "
-                << src << " para " << dst << " (proto = " << proto << ")\n";
+                << src << " para " << dst << " (proto = " << unsigned(proto)
+                << ")\n";
         }
         return 0;
     }
@@ -119,21 +116,4 @@ void send_loop(IPOut& ipout, unsigned proto)
     }
 }
 
-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 :