diff --git a/proxy/trojan/protocol.go b/proxy/trojan/protocol.go index dd20e7248..962f5db73 100644 --- a/proxy/trojan/protocol.go +++ b/proxy/trojan/protocol.go @@ -37,7 +37,7 @@ type ConnWriter struct { // Write implements io.Writer func (c *ConnWriter) Write(p []byte) (n int, err error) { if !c.headerSent { - if err := c.WriteHeader(); err != nil { + if err := c.writeHeader(); err != nil { return 0, newError("failed to write request header").Base(err) } } @@ -61,6 +61,15 @@ func (c *ConnWriter) WriteMultiBuffer(mb buf.MultiBuffer) error { } func (c *ConnWriter) WriteHeader() error { + if !c.headerSent { + if err := c.writeHeader(); err != nil { + return err + } + } + return nil +} + +func (c *ConnWriter) writeHeader() error { buffer := buf.StackNew() defer buffer.Release()