Browse Source

2010-08-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Don't try to send empty string.
	* src/SocketBuffer.cc
	* src/SocketBuffer.h
Tatsuhiro Tsujikawa 15 years ago
parent
commit
d7902f0ed7
3 changed files with 21 additions and 1 deletions
  1. 6 0
      ChangeLog
  2. 5 0
      src/SocketBuffer.cc
  3. 10 1
      src/SocketBuffer.h

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2010-08-21  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Don't try to send empty string.
+	* src/SocketBuffer.cc
+	* src/SocketBuffer.h
+
 2010-08-14  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Listen both IPv4 and IPv6 for BitTorrent protocol.

+ 5 - 0
src/SocketBuffer.cc

@@ -68,6 +68,11 @@ ssize_t SocketBuffer::send()
   size_t totalslen = 0;
   while(!bufq_.empty()) {
     BufEntry& buf = bufq_[0];
+    if(buf.size() == 0) {
+      buf.deleteBuf();
+      bufq_.pop_front();
+      continue;
+    }
     const char* data;
     ssize_t r;
     if(buf.type == TYPE_BYTES) {

+ 10 - 1
src/SocketBuffer.h

@@ -66,7 +66,16 @@ private:
         delete str;
       }
     }
-      
+    
+    size_t size() const
+    {
+      if(type == TYPE_BYTES) {
+        return bytesLen;
+      } else {
+        return str->size();
+      }
+    }
+
     BufEntry(unsigned char* bytes, size_t len):
       type(TYPE_BYTES), bytes(bytes), bytesLen(len) {}