Explorar o código

refactor trojan WriteHeader function.

Shelikhoo %!s(int64=2) %!d(string=hai) anos
pai
achega
680d5bb2ac
Modificáronse 1 ficheiros con 10 adicións e 1 borrados
  1. 10 1
      proxy/trojan/protocol.go

+ 10 - 1
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()