X-Git-Url: https://git.llucax.com/z.facultad/75.74/practicos.git/blobdiff_plain/918a7b42017533f6f18edc8735d6d82a5494f055..c1b28b595a388df043997c87faf75c06959405d0:/practicas/pipi/src/ip.cpp?ds=sidebyside diff --git a/practicas/pipi/src/ip.cpp b/practicas/pipi/src/ip.cpp index dd38b9b..b131524 100644 --- a/practicas/pipi/src/ip.cpp +++ b/practicas/pipi/src/ip.cpp @@ -3,7 +3,8 @@ #include "ipin.h" #include "ipaddr.h" #include "routetable.h" -#include "dev.h" +#include "devtcp.h" +#include "devque.h" #include #include #include @@ -17,7 +18,7 @@ #include #include -// 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); } }