Browse Source

Merge branch 'master' of https://github.com/Psiphon-Labs/psiphon-tunnel-core

Rod Hynes 9 years ago
parent
commit
3eca89941e
1 changed files with 18 additions and 0 deletions
  1. 18 0
      psiphon/TCPConn.go

+ 18 - 0
psiphon/TCPConn.go

@@ -211,3 +211,21 @@ func (conn *TCPConn) Close() (err error) {
 
 
 	return err
 	return err
 }
 }
+
+// CloseWrite calls net.TCPConn.CloseWrite when the underlying
+// conn is a *net.TCPConn.
+func (conn *TCPConn) CloseWrite() (err error) {
+	conn.mutex.Lock()
+	defer conn.mutex.Unlock()
+
+	if conn.isClosed {
+		return errors.New("already closed")
+	}
+
+	tcpConn, ok := conn.Conn.(*net.TCPConn)
+	if !ok {
+		return errors.New("conn is not a *net.TCPConn")
+	}
+
+	return tcpConn.CloseWrite()
+}