X-Git-Url: https://git.llucax.com/z.facultad/75.74/practicos.git/blobdiff_plain/127afaea3cf716aa9261e5c2cf129a10acbd1688..0a2739fe97762f57a80599ef170df98e07422a3d:/practicas/pipi/src/test_ipout.cpp?ds=inline diff --git a/practicas/pipi/src/test_ipout.cpp b/practicas/pipi/src/test_ipout.cpp index dff222a..acdb77f 100644 --- a/practicas/pipi/src/test_ipout.cpp +++ b/practicas/pipi/src/test_ipout.cpp @@ -1,8 +1,10 @@ #include "ipout.h" #include "ipaddr.h" +#include "routetable.h" #include "dev.h" #include +#include #include #include #include @@ -10,17 +12,40 @@ #include #include -int main() +// Uso: ./test_ipout ip dst msg mtu proto queue_id + +int main(int argc, char* argv[]) { - int que_id = msgget(DEV_DEFAULT_KEY, IPC_CREAT | 0666); - assert(que_id != -1); IPAddr addr("10.10.10.2"); - Dev dev(addr); - IPOut ipout(addr, dev); - if (ipout.send("hola mundo", 0, IPAddr("10.10.10.1"))) - std::cout << "Enviado 'hola mundo' a 10.10.10.1\n"; + IPAddr dst("10.10.10.1"); + std::string msg = "hola mundo"; + unsigned mtu = 25; + unsigned proto = 0; + key_t queue_id = DEV_DEFAULT_KEY; + if (argc > 1) + addr = IPAddr(argv[1]); + if (argc > 2) + dst = IPAddr(argv[2]); + if (argc > 3) + msg = argv[3]; + if (argc > 4) + mtu = atoi(argv[4]); + if (argc > 5) + proto = atoi(argv[5]); + if (argc > 6) + queue_id = atoi(argv[6]); + int que_id = msgget(queue_id, IPC_CREAT | 0666); + assert(que_id != -1); + Dev dev(addr, mtu, queue_id); + RouteTable table(dev); + table.add("10.10.10.1", 0, 0, dev); + table.add("10.10.10.2", 0, 0, dev); + table.add("10.10.10.3", "10.10.10.10", 0, dev); + IPOut ipout(addr, table); + if (ipout.send(msg, proto, dst)) + std::cout << "Enviado '" << msg << "' a " << dst << "\n"; else - std::cout << "NO SE PUDO ENVIAR 'hola mundo' a 10.10.10.1\n"; + std::cout << "NO SE PUDO ENVIAR '" << msg << "' a " << dst << "\n"; return 0; }