fix: don't ignore http.NewRequest's error

This commit is contained in:
wwqgtxx
2024-05-15 13:53:18 +08:00
parent 1bc3c16b59
commit 87877d1b80
3 changed files with 13 additions and 4 deletions

View File

@@ -65,7 +65,10 @@ func (ho *HTTPObfs) Write(b []byte) (int, error) {
if ho.firstRequest {
randBytes := make([]byte, 16)
fastrand.Read(randBytes)
req, _ := http.NewRequest("GET", fmt.Sprintf("http://%s/", ho.host), bytes.NewBuffer(b[:]))
req, err := http.NewRequest("GET", fmt.Sprintf("http://%s/", ho.host), bytes.NewBuffer(b[:]))
if err != nil {
return 0, err
}
req.Header.Set("User-Agent", fmt.Sprintf("curl/7.%d.%d", fastrand.Int()%54, fastrand.Int()%2))
req.Header.Set("Upgrade", "websocket")
req.Header.Set("Connection", "Upgrade")
@@ -75,7 +78,7 @@ func (ho *HTTPObfs) Write(b []byte) (int, error) {
}
req.Header.Set("Sec-WebSocket-Key", base64.URLEncoding.EncodeToString(randBytes))
req.ContentLength = int64(len(b))
err := req.Write(ho.Conn)
err = req.Write(ho.Conn)
ho.firstRequest = false
return len(b), err
}

View File

@@ -66,7 +66,10 @@ func (hc *httpConn) Write(b []byte) (int, error) {
}
u := fmt.Sprintf("http://%s%s", net.JoinHostPort(host, "80"), path)
req, _ := http.NewRequest(utils.EmptyOr(hc.cfg.Method, http.MethodGet), u, bytes.NewBuffer(b))
req, err := http.NewRequest(utils.EmptyOr(hc.cfg.Method, http.MethodGet), u, bytes.NewBuffer(b))
if err != nil {
return 0, err
}
for key, list := range hc.cfg.Headers {
req.Header.Set(key, list[fastrand.Intn(len(list))])
}