Forráskód Böngészése

Fix: don't fragment write buffer after bytesToFragment satisfied

Rod Hynes 6 éve
szülő
commit
8f6d674d20
1 módosított fájl, 8 hozzáadás és 0 törlés
  1. 8 0
      psiphon/common/fragmentor/fragmentor.go

+ 8 - 0
psiphon/common/fragmentor/fragmentor.go

@@ -331,6 +331,14 @@ func (c *Conn) Write(buffer []byte) (int, error) {
 		}
 
 		buffer = buffer[writeBytes:]
+
+		// As soon as bytesToFragment has been satisfied, don't fragment the
+		// remainder of this write buffer.
+		if c.bytesFragmented >= c.bytesToFragment {
+			bytesWritten, err := c.Conn.Write(buffer)
+			totalBytesWritten += bytesWritten
+			return totalBytesWritten, err
+		}
 	}
 
 	if emitNotice {