libt2n: (gerd) fixes & testcase
[libt2n] / src / connection.cpp
index 0b445ef..459194d 100644 (file)
@@ -31,16 +31,16 @@ connection::packet_size_indicator connection::bytes_available()
 
     // no size information -> no packet
     if (buffer.size() < sizeof(unsigned int))
-        return false;
+        return 0;
 
     packet_size_indicator psize=*((packet_size_indicator*)(buffer.data()));
 
     // enough data for one packet in buffer?
     if (buffer.size() < sizeof(unsigned int)+psize)
-        return false;
+        return 0;
 
     // ok, full packet there
-    return true;
+    return psize;
 }
 
 bool connection::get_packet(std::string& data)
@@ -62,11 +62,9 @@ void connection::write(const std::string& data)
     // prepend packet size to data
     packet_size_indicator psize=data.size();
     std::string send_data(data);
-    send_data.insert(0,(char*)psize,sizeof(packet_size_indicator));
+    send_data.insert(0,(char*)&psize,sizeof(packet_size_indicator));
 
     real_write(send_data);
 }
 
-
-
 }