]> git.llucax.com Git - z.facultad/75.74/practicos.git/commitdiff
Se emprolija un poco la info de debug.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 3 Jul 2006 22:55:16 +0000 (22:55 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 3 Jul 2006 22:55:16 +0000 (22:55 +0000)
practicas/pipi/src/Makefile
practicas/pipi/src/devque.cpp
practicas/pipi/src/devtcp.cpp
practicas/pipi/src/ipin.cpp
practicas/pipi/src/ipout.cpp
practicas/pipi/src/libtcp.c
practicas/pipi/src/nameserver.cpp
practicas/pipi/src/routetable.cpp

index 983c3c1bca2ddf8f743d6b25f234b9b70f8f3a39..6cd7baf03994d8f9b629c03d843a9fc47e488de6 100644 (file)
@@ -16,11 +16,18 @@ CFLAGS = -Wall -ansi -pedantic-errors
 
 # Para valgrind o debug
 CFLAGS += -ggdb -DDEBUG
 
 # Para valgrind o debug
 CFLAGS += -ggdb -DDEBUG
+debug = 1
 
 # Para más verbose
 
 # Para más verbose
-CFLAGS += -DDEBUG2
+ifdef debug
+#CFLAGS += -DDEBUG_IP
+#CFLAGS += -DDEBUG_QUE
+#CFLAGS += -DDEBUG_NAME
+#CFLAGS += -DDEBUG_ROUTE
+#CFLAGS += -DDEBUG_TRACE
 CFLAGS += -DDEBUG_RESOLV
 CFLAGS += -DDEBUG_RESOLV
-CFLAGS += -DDEBUG_TRACE
+#CFLAGS += -DDEBUG_LIBTCP
+endif
 
 # Opciones para el compilador C++.
 CXXFLAGS = $(CFLAGS) -fno-inline
 
 # Opciones para el compilador C++.
 CXXFLAGS = $(CFLAGS) -fno-inline
@@ -34,8 +41,7 @@ CC=g++
 # Programas
 targets=ip dns res
 tests=test_send test_recv test_ipaddr test_ipin test_ipout test_devtcp \
 # Programas
 targets=ip dns res
 tests=test_send test_recv test_ipaddr test_ipin test_ipout test_devtcp \
-      test_poll test_resolvproto test_nameserver_file \
-      test_nameserver_resolvnext
+      test_poll test_resolvproto
 
 # Fuentes
 fuentes ?= $(wildcard *.cpp) $(wildcard *.c)
 
 # Fuentes
 fuentes ?= $(wildcard *.cpp) $(wildcard *.c)
@@ -69,12 +75,6 @@ test_poll: test_poll.o libtcp.o
 
 test_resolvproto: test_resolvproto.o resolvproto.o ipaddr.o
 
 
 test_resolvproto: test_resolvproto.o resolvproto.o ipaddr.o
 
-test_nameserver_file: test_nameserver_file.o nameserver.o $(dns_objs) $(ip_objs)
-
-#FIXME no va libtcp.o, debe ir sobre mi implementación de ip.
-test_nameserver_resolvnext: test_nameserver_resolvnext.o nameserver.o \
-       $(dns_objs) $(ip_objs)
-
 ip: ip.o $(ip_objs)
 
 dns: dns.o nameserver.o $(ip_objs) $(dns_objs)
 ip: ip.o $(ip_objs)
 
 dns: dns.o nameserver.o $(ip_objs) $(dns_objs)
index 593f6630f89e50c4ee5c78b37d0044c21107fe7a..1e812ffaced2dc369015bf7636022826d2114763 100644 (file)
@@ -40,7 +40,7 @@ void DevQue::transmit(const std::string& data, const mac_type& mac)
     f->size = data.size();
     memcpy(f->frame, data.data(), data.size());
     int res = msgsnd(que_id, f, mtu + sizeof(size_t), 0);
     f->size = data.size();
     memcpy(f->frame, data.data(), data.size());
     int res = msgsnd(que_id, f, mtu + sizeof(size_t), 0);
-#ifdef DEBUG2
+#ifdef DEBUG_QUE
     std::cout << "DevQue[" << que_id << "]::transmit(msgtype/mac = "
         << f->mac << ", size = " << f->size << ")\n";
 #endif
     std::cout << "DevQue[" << que_id << "]::transmit(msgtype/mac = "
         << f->mac << ", size = " << f->size << ")\n";
 #endif
@@ -75,7 +75,7 @@ std::string DevQue::receive(mac_type& mac) throw (std::runtime_error)
     if (mac == 0)
         mac = f->mac;
     free(f);
     if (mac == 0)
         mac = f->mac;
     free(f);
-#ifdef DEBUG2
+#ifdef DEBUG_QUE
     std::cout << "DevQue[" << que_id << "]::receive(msgtype/mac = "
         << mac << ", size = " << s.size() << ")\n";
 #endif
     std::cout << "DevQue[" << que_id << "]::receive(msgtype/mac = "
         << mac << ", size = " << s.size() << ")\n";
 #endif
index e8828f49f424c498aecdded8c562eb69a76c5414..6bc709c4398786718d790bd9c595bb04e5540199 100644 (file)
@@ -26,12 +26,15 @@ DevTCP::DevTCP(mac_type mac, uint16_t port, size_t mtu)
 void DevTCP::transmit(const std::string& data, const mac_type& mac)
     throw (std::runtime_error, std::logic_error)
 {
 void DevTCP::transmit(const std::string& data, const mac_type& mac)
     throw (std::runtime_error, std::logic_error)
 {
+#ifdef DEBUG_TRACE
+    std::cout << "DevTCP[" << port << "]::transmit()\n";
+#endif
     if (data.size() > mtu)
         throw std::logic_error("Tamaño de datos mayor al MTU");
     if (tx_pool.find(mac) == tx_pool.end()) // No existe la conexión
     {
         std::string addr = IPAddr(mac);
     if (data.size() > mtu)
         throw std::logic_error("Tamaño de datos mayor al MTU");
     if (tx_pool.find(mac) == tx_pool.end()) // No existe la conexión
     {
         std::string addr = IPAddr(mac);
-#ifdef DEBUG2
+#ifdef DEBUG_QUE
         std::cout << "DevTCP::transmit: conectando a " << addr << ":" << port << "\n";
 #endif
         tx_pool[mac] = libtcp_open_activo(addr.c_str(), port);
         std::cout << "DevTCP::transmit: conectando a " << addr << ":" << port << "\n";
 #endif
         tx_pool[mac] = libtcp_open_activo(addr.c_str(), port);
@@ -43,7 +46,7 @@ void DevTCP::transmit(const std::string& data, const mac_type& mac)
         throw std::runtime_error("Error al enviar por el socket");
     if ((unsigned)libtcp_send(tx_pool[mac], data.data(), data.size()) != data.size())
         throw std::runtime_error("Error al enviar por el socket");
         throw std::runtime_error("Error al enviar por el socket");
     if ((unsigned)libtcp_send(tx_pool[mac], data.data(), data.size()) != data.size())
         throw std::runtime_error("Error al enviar por el socket");
-#ifdef DEBUG2
+#ifdef DEBUG_QUE
     std::cout << "DevTCP::transmit(mac = " << mac << ", size = "
         << data.size() << ")\n";
 #endif
     std::cout << "DevTCP::transmit(mac = " << mac << ", size = "
         << data.size() << ")\n";
 #endif
@@ -51,10 +54,13 @@ void DevTCP::transmit(const std::string& data, const mac_type& mac)
 
 std::string DevTCP::receive() throw (std::runtime_error)
 {
 
 std::string DevTCP::receive() throw (std::runtime_error)
 {
+#ifdef DEBUG_TRACE
+    std::cout << "DevTCP[" << port << "]::receive()\n";
+#endif
     // Nos fijamos en todos los file descriptors si hay algo para nosotros.
     while (true)
     {
     // Nos fijamos en todos los file descriptors si hay algo para nosotros.
     while (true)
     {
-        int res = poll(pfds, pfds_size, 5000);
+        int res = poll(pfds, pfds_size, -1);
         if (res == -1)
             throw std::runtime_error("Error al hacer poll");
         if (!res)
         if (res == -1)
             throw std::runtime_error("Error al hacer poll");
         if (!res)
@@ -89,7 +95,7 @@ std::string DevTCP::receive() throw (std::runtime_error)
                     continue;
                 std::string ret(buf, size);
                 free(buf);
                     continue;
                 std::string ret(buf, size);
                 free(buf);
-#ifdef DEBUG2
+#ifdef DEBUG_QUE
                 std::cout << "DevTCP::receive(msgtype/mac = " << mac << ", size = "
                     << ret.size() << ")\n";
 #endif
                 std::cout << "DevTCP::receive(msgtype/mac = " << mac << ", size = "
                     << ret.size() << ")\n";
 #endif
index 1ff0560965cdbc52c47ed605b67986cde674a729..7cb5abcfb95b42404fda0979ffe1721aa1126d84 100644 (file)
@@ -41,7 +41,7 @@ std::string IPIn::recv(uint8_t& proto, IPAddr& src, IPAddr& dst)
             continue;
         }
         IPHeader iph(buf);
             continue;
         }
         IPHeader iph(buf);
-#ifdef DEBUG
+#ifdef DEBUG_IP
         std::cout << "IPIn::recv (" << ip << "): IPHeader: " << iph << "\n";
         std::string tmp = buf.substr(iph.header_len());
         std::cout << "\tdata (" << tmp.size() << ") = " << tmp << "\n";
         std::cout << "IPIn::recv (" << ip << "): IPHeader: " << iph << "\n";
         std::string tmp = buf.substr(iph.header_len());
         std::cout << "\tdata (" << tmp.size() << ") = " << tmp << "\n";
@@ -99,7 +99,7 @@ std::string IPIn::recv(uint8_t& proto, IPAddr& src, IPAddr& dst)
             //TODO chequear que los fragmentos estén todos
             data += i->second;
         }
             //TODO chequear que los fragmentos estén todos
             data += i->second;
         }
-#ifdef DEBUG
+#ifdef DEBUG_IP
         std::cout << "IPIn::recv (" << ip << "): Paquete completo: data = '"
                 << data << "'\n";
 #endif
         std::cout << "IPIn::recv (" << ip << "): Paquete completo: data = '"
                 << data << "'\n";
 #endif
index 84a3733f7b32e330dc1d9a74283e950c8007c465..dea18de17fbcf2bc1462826e7eb04bacfd539665 100644 (file)
@@ -78,7 +78,7 @@ bool IPOut::send(IPHeader iph, std::string data) throw (std::runtime_error)
         iph2.do_checksum();
         std::string buf((char*) &iph2, sizeof(IPHeader));
         buf += data.substr(i * max_payload, max_payload);
         iph2.do_checksum();
         std::string buf((char*) &iph2, sizeof(IPHeader));
         buf += data.substr(i * max_payload, max_payload);
-#ifdef DEBUG
+#ifdef DEBUG_IP
         std::cout << "IPOut::send (" << ip << "): Fragmento " << i
                 << " => IPHeader: " << iph2 << "\n";
         std::string tmp = data.substr(i * max_payload, max_payload);
         std::cout << "IPOut::send (" << ip << "): Fragmento " << i
                 << " => IPHeader: " << iph2 << "\n";
         std::string tmp = data.substr(i * max_payload, max_payload);
@@ -97,7 +97,7 @@ void IPOut::forward_loop()
     {
         std::string buf = forward_que.receive();
         IPHeader iph(buf);
     {
         std::string buf = forward_que.receive();
         IPHeader iph(buf);
-#ifdef DEBUG
+#ifdef DEBUG_IP
         std::cout << "IPOut::forward_loop (" << ip << "): A forwardear (id "
                 << iph.id << ", offset " << iph.offset << ")\n";
 #endif
         std::cout << "IPOut::forward_loop (" << ip << "): A forwardear (id "
                 << iph.id << ", offset " << iph.offset << ")\n";
 #endif
index 68a6d2c52ff367814507f2d25f391efd734e4576..3184ff251b84c108257d4d70e8e6e67e1bc32f9f 100644 (file)
@@ -95,7 +95,7 @@ int libtcp_open_pasivo (int port)
                return -1;
        }
 
                return -1;
        }
 
-#ifdef DEBUG2
+#ifdef DEBUG_LIBTCP
        sprintf (mostrar, "LibTcp::ServerPasivo: socket creado %d\n", sockfd);
        write (fileno(stdout), mostrar, strlen (mostrar));
 #endif
        sprintf (mostrar, "LibTcp::ServerPasivo: socket creado %d\n", sockfd);
        write (fileno(stdout), mostrar, strlen (mostrar));
 #endif
@@ -105,7 +105,7 @@ int libtcp_open_pasivo (int port)
                return -1;
        }
 
                return -1;
        }
 
-#ifdef DEBUG2
+#ifdef DEBUG_LIBTCP
        sprintf (mostrar, "LibTcp::Server: se hizo el bind\n");
        write(fileno(stdout), mostrar, strlen(mostrar));
 #endif
        sprintf (mostrar, "LibTcp::Server: se hizo el bind\n");
        write(fileno(stdout), mostrar, strlen(mostrar));
 #endif
@@ -113,7 +113,7 @@ int libtcp_open_pasivo (int port)
   /* Definir la cola de espera = hasta 5 clientes */
        listen(sockfd, 5);
 
   /* Definir la cola de espera = hasta 5 clientes */
        listen(sockfd, 5);
 
-#ifdef DEBUG2
+#ifdef DEBUG_LIBTCP
        sprintf (mostrar, "LibTcp::Server: se hizo el listen con el socket %d\n", sockfd);
        write(fileno(stdout), mostrar, strlen(mostrar));
 #endif
        sprintf (mostrar, "LibTcp::Server: se hizo el listen con el socket %d\n", sockfd);
        write(fileno(stdout), mostrar, strlen(mostrar));
 #endif
index 4c646040672bdcca8a717a50a7a75f7299e9c060..f04b4ab3a33a862233cc4fb7e3ac7d10c97234b4 100644 (file)
@@ -110,7 +110,7 @@ NameServer::NameServer(std::istream& is, IPIn& ipin, IPOut& ipout,
 #endif
     }
 
 #endif
     }
 
-#ifdef DEBUG2
+#ifdef DEBUG_RESOLV
     std::cout << "NameServer: req_que_id = " << req_que.que_id
         << ", res_que_id = " << res_que.que_id
         << ", snd_que_id = " << snd_que.que_id << "\n";
     std::cout << "NameServer: req_que_id = " << req_que.que_id
         << ", res_que_id = " << res_que.que_id
         << ", snd_que_id = " << snd_que.que_id << "\n";
index 43e3377257d1da18324f7100d44c20d8647cb62b..f8e6cbd6fa8d78d7df7030c7c9e5e4a1853b24b5 100644 (file)
@@ -13,9 +13,9 @@ void RouteTable::add(const IPAddr& net, const IPAddr& gw, unsigned mtu,
         unsigned metric, Dev& iface)
 {
     table[net] = Route(gw, metric, mtu, iface);
         unsigned metric, Dev& iface)
 {
     table[net] = Route(gw, metric, mtu, iface);
-#ifdef DEBUG
-    //std::cout << "Se agregó tabla para " << net << ": gw = " << gw
-    //    << ", metric = " << metric << "\n";
+#ifdef DEBUG_ROUTE
+    std::cout << "Se agregó tabla para " << net << ": gw = " << gw
+        << ", metric = " << metric << "\n";
 #endif
 }
 
 #endif
 }