]> git.llucax.com Git - z.facultad/75.74/practicos.git/commitdiff
Bugfix: se usá data() en vez de c_str() para traducir los strings cuadno es
authorLeandro Lucarella <llucax@gmail.com>
Sun, 2 Jul 2006 06:15:38 +0000 (06:15 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 2 Jul 2006 06:15:38 +0000 (06:15 +0000)
necesario.

practicas/pipi/src/devque.cpp
practicas/pipi/src/devtcp.cpp
practicas/pipi/src/ipheader.cpp
practicas/pipi/src/nameserver.cpp
practicas/pipi/src/resolvproto.cpp

index 07913548f9eff59f063c73b9f677def3a5791d42..32b71a7e0cfe8f897113036590aaea5a2f77e97c 100644 (file)
@@ -35,7 +35,7 @@ void DevQue::transmit(const std::string& data, const mac_type& mac)
         throw std::runtime_error("No se puede reservar memoria");
     f->mac = mac;
     f->size = data.size();
-    memcpy(f->frame, data.c_str(), data.size());
+    memcpy(f->frame, data.data(), data.size());
     int res = msgsnd(que_id, f, mtu + sizeof(size_t), 0);
 #ifdef DEBUG2
     std::cout << "DevQue::transmit(msgtype/mac = " << f->mac << ", size = "
index 828e0e677ae6f9b4cc1ffa791ee9e3a9bb3ec12d..e8828f49f424c498aecdded8c562eb69a76c5414 100644 (file)
@@ -41,7 +41,7 @@ void DevTCP::transmit(const std::string& data, const mac_type& mac)
     size_t size = data.size();
     if (libtcp_send(tx_pool[mac], &size, sizeof(size_t)) != sizeof(size_t))
         throw std::runtime_error("Error al enviar por el socket");
-    if ((unsigned)libtcp_send(tx_pool[mac], data.c_str(), data.size()) != data.size())
+    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
     std::cout << "DevTCP::transmit(mac = " << mac << ", size = "
index facc22bbe5af525c0596970f81e8de4b49b3440f..60b16831c4ff328dc4570bc7cc381399a15a443b 100644 (file)
@@ -12,7 +12,7 @@ IPHeader::IPHeader(uint8_t version, uint16_t total_len, uint16_t id, bool df,
 
 IPHeader::IPHeader(const std::string& s)
 {
-    *this = *((IPHeader*)s.c_str());
+    *this = *((IPHeader*)s.data());
 }
 
 size_t IPHeader::header_len()
index b007975234b4a351056c8863f0613b9283570d45..46e571c687b0a3adf715959babd8a3aa63bb8d91 100644 (file)
@@ -367,7 +367,7 @@ void NameServer::recv_loop()
         if (proto == RESOLV_PROTO) // Si es para nosotros
         {
             rp_pkt_type_t type;
-            memcpy(&type, s.c_str(), sizeof(uint8_t));
+            memcpy(&type, s.data(), sizeof(uint8_t));
             switch (type)
             {
                 // Request
index f55bbf20d70dacf795e2fb93e8da9794e5478ef5..3b39419a885995e41f1111604fc5405e22692f8c 100644 (file)
@@ -11,10 +11,10 @@ ResolvProtoRequest::ResolvProtoRequest(std::string name, rp_pkt_type_t query_typ
 /// Constructor a partir de un buffer
 ResolvProtoRequest::ResolvProtoRequest(std::string buf)
 {
-    memcpy(&query_type, buf.c_str(), sizeof(uint8_t));
+    memcpy(&query_type, buf.data(), sizeof(uint8_t));
     uint16_t size;
-    memcpy(&size, buf.c_str() + sizeof(uint8_t), sizeof(uint16_t));
-    name.assign(buf.c_str() + sizeof(uint8_t) + sizeof(uint16_t), size);
+    memcpy(&size, buf.data() + sizeof(uint8_t), sizeof(uint16_t));
+    name.assign(buf.data() + sizeof(uint8_t) + sizeof(uint16_t), size);
 }
 
 /// Convierte a un buffer
@@ -47,16 +47,16 @@ ResolvProtoResponse::ResolvProtoResponse(): ret(RP_RES_NOTFOUND), ttl(0)
 /// Constructor
 ResolvProtoResponse::ResolvProtoResponse(std::string buf)
 {
-    memcpy(&ret, buf.c_str(), sizeof(uint8_t));
-    memcpy(&ttl, buf.c_str() + sizeof(uint8_t), sizeof(uint32_t));
+    memcpy(&ret, buf.data(), sizeof(uint8_t));
+    memcpy(&ttl, buf.data() + sizeof(uint8_t), sizeof(uint32_t));
     uint8_t count;
-    memcpy(&count, buf.c_str() + sizeof(uint8_t) + sizeof(uint32_t),
+    memcpy(&count, buf.data() + sizeof(uint8_t) + sizeof(uint32_t),
             sizeof(uint8_t));
     ips.reserve(count);
     for (uint8_t i = 0; i < count; ++i)
     {
         uint32_t ip;
-        memcpy(&ip, buf.c_str() + 2 * sizeof(uint8_t)
+        memcpy(&ip, buf.data() + 2 * sizeof(uint8_t)
                 + sizeof(uint32_t) * (i + 1), sizeof(uint32_t));
         ips.push_back(ip);
     }