mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2026-04-22 16:17:16 +08:00
chore: simplify error handling code
This commit is contained in:
+21
-28
@@ -214,7 +214,6 @@ func NewClient(cfg *Config, makeTransport TransportMaker, makeDownloadTransport
|
||||
cancel: cancel,
|
||||
}
|
||||
if cfg.ReuseConfig != nil {
|
||||
var err error
|
||||
client.uploadManager, err = NewReuseManager(cfg.ReuseConfig, makeTransport)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -317,7 +316,7 @@ func (c *Client) DialStreamOne() (net.Conn, error) {
|
||||
}
|
||||
req.Host = c.cfg.Host
|
||||
|
||||
if err := c.cfg.FillStreamRequest(req, ""); err != nil {
|
||||
if err = c.cfg.FillStreamRequest(req, ""); err != nil {
|
||||
_ = pr.Close()
|
||||
_ = pw.Close()
|
||||
httputils.CloseTransport(transport)
|
||||
@@ -394,6 +393,25 @@ func (c *Client) DialStreamUp() (net.Conn, error) {
|
||||
}
|
||||
downloadReq.Host = downloadCfg.Host
|
||||
|
||||
uploadReq, err := http.NewRequestWithContext(
|
||||
c.ctx,
|
||||
http.MethodPost,
|
||||
streamURL.String(),
|
||||
pr,
|
||||
)
|
||||
if err != nil {
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = c.cfg.FillStreamRequest(uploadReq, sessionID); err != nil {
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
}
|
||||
uploadReq.Host = c.cfg.Host
|
||||
|
||||
downloadResp, err := downloadTransport.RoundTrip(downloadReq)
|
||||
if err != nil {
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
@@ -407,31 +425,6 @@ func (c *Client) DialStreamUp() (net.Conn, error) {
|
||||
return nil, fmt.Errorf("xhttp stream-up download bad status: %s", downloadResp.Status)
|
||||
}
|
||||
|
||||
uploadReq, err := http.NewRequestWithContext(
|
||||
c.ctx,
|
||||
http.MethodPost,
|
||||
streamURL.String(),
|
||||
pr,
|
||||
)
|
||||
if err != nil {
|
||||
_ = downloadResp.Body.Close()
|
||||
_ = pr.Close()
|
||||
_ = pw.Close()
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := c.cfg.FillStreamRequest(uploadReq, sessionID); err != nil {
|
||||
_ = downloadResp.Body.Close()
|
||||
_ = pr.Close()
|
||||
_ = pw.Close()
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
}
|
||||
uploadReq.Host = c.cfg.Host
|
||||
|
||||
go func() {
|
||||
resp, err := uploadTransport.RoundTrip(uploadReq)
|
||||
if err != nil {
|
||||
@@ -497,7 +490,7 @@ func (c *Client) DialPacketUp() (net.Conn, error) {
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
}
|
||||
if err := downloadCfg.FillDownloadRequest(downloadReq, sessionID); err != nil {
|
||||
if err = downloadCfg.FillDownloadRequest(downloadReq, sessionID); err != nil {
|
||||
httputils.CloseTransport(uploadTransport)
|
||||
httputils.CloseTransport(downloadTransport)
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user