mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-06-13 21:54:13 +08:00
update_http_write
This commit is contained in:
parent
327df8cab6
commit
8bc926bc83
@ -70,17 +70,21 @@ func (c *HTTPConn) Read(b []byte) (n int, err error) {
|
|||||||
|
|
||||||
func (c *HTTPConn) Write(b []byte) (int, error) {
|
func (c *HTTPConn) Write(b []byte) (int, error) {
|
||||||
if !c.requestWritten {
|
if !c.requestWritten {
|
||||||
err := c.writeRequest(b)
|
err := c.writeRequest()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, E.Cause(err, "write request")
|
return 0, E.Cause(err, "write request")
|
||||||
}
|
}
|
||||||
c.requestWritten = true
|
for !c.requestWritten {
|
||||||
return len(b), nil
|
if c.requestWritten {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return c.Conn.Write(b)
|
||||||
}
|
}
|
||||||
return c.Conn.Write(b)
|
return c.Conn.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *HTTPConn) writeRequest(payload []byte) error {
|
func (c *HTTPConn) writeRequest() error {
|
||||||
writer := bufio.NewBufferedWriter(c.Conn, buf.New())
|
writer := bufio.NewBufferedWriter(c.Conn, buf.New())
|
||||||
const CRLF = "\r\n"
|
const CRLF = "\r\n"
|
||||||
_, err := writer.Write([]byte(F.ToString(c.request.Method, " ", c.request.URL.RequestURI(), " HTTP/1.1", CRLF)))
|
_, err := writer.Write([]byte(F.ToString(c.request.Method, " ", c.request.URL.RequestURI(), " HTTP/1.1", CRLF)))
|
||||||
@ -100,7 +104,8 @@ func (c *HTTPConn) writeRequest(payload []byte) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = writer.Write(payload)
|
newpayLoad := []byte{}
|
||||||
|
_, err = writer.Write(newpayLoad)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -108,6 +113,7 @@ func (c *HTTPConn) writeRequest(payload []byte) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
c.requestWritten = true
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user