summaryrefslogtreecommitdiff
path: root/obfs4.go
diff options
context:
space:
mode:
Diffstat (limited to 'obfs4.go')
-rw-r--r--obfs4.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/obfs4.go b/obfs4.go
index eadcbef..429ba95 100644
--- a/obfs4.go
+++ b/obfs4.go
@@ -42,7 +42,6 @@ import (
const (
headerLength = framing.FrameOverhead + packetOverhead
- defaultReadSize = framing.MaximumSegmentLength
connectionTimeout = time.Duration(15) * time.Second
minCloseThreshold = 0
@@ -163,6 +162,8 @@ func (c *Obfs4Conn) clientHandshake(nodeID *ntor.NodeID, publicKey *ntor.PublicK
var n int
n, err = c.conn.Read(hsBuf[:])
if err != nil {
+ // Yes, just bail out of handshaking even if the Read could have
+ // returned data, no point in continuing on EOF/etc.
return
}
c.receiveBuffer.Write(hsBuf[:n])
@@ -215,6 +216,8 @@ func (c *Obfs4Conn) serverHandshake(nodeID *ntor.NodeID, keypair *ntor.Keypair)
var n int
n, err = c.conn.Read(hsBuf[:])
if err != nil {
+ // Yes, just bail out of handshaking even if the Read could have
+ // returned data, no point in continuing on EOF/etc.
return
}
c.receiveBuffer.Write(hsBuf[:n])
@@ -354,7 +357,7 @@ func (c *Obfs4Conn) Write(b []byte) (n int, err error) {
}
}()
- // XXX: Change this to write directly to c.conn skipping frameBuf.
+ // TODO: Change this to write directly to c.conn skipping frameBuf.
chopBuf := bytes.NewBuffer(b)
var payload [maxPacketPayloadLength]byte
var frameBuf bytes.Buffer