mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-27 18:41:33 +08:00
fix iOS conn close
This commit is contained in:
@@ -147,7 +147,7 @@ func (wd *Driver) uia2HttpDELETE(pathElem ...string) (rawResp rawResponse, err e
|
||||
return wd.uia2HttpRequest(http.MethodDelete, wd.concatURL(nil, pathElem...), nil)
|
||||
}
|
||||
|
||||
func (wd *Driver) resetWDASession() (string, error) {
|
||||
func (wd *Driver) resetWDASession() error {
|
||||
capabilities := NewCapabilities()
|
||||
capabilities.WithDefaultAlertAction(AlertActionAccept)
|
||||
|
||||
@@ -158,13 +158,14 @@ func (wd *Driver) resetWDASession() (string, error) {
|
||||
var rawResp rawResponse
|
||||
var err error
|
||||
if rawResp, err = wd.httpPOST(data, "/session"); err != nil {
|
||||
return "", err
|
||||
return err
|
||||
}
|
||||
var sessionInfo SessionInfo
|
||||
if sessionInfo, err = rawResp.valueConvertToSessionInfo(); err != nil {
|
||||
return "", err
|
||||
return err
|
||||
}
|
||||
return sessionInfo.SessionId, nil
|
||||
wd.sessionId = sessionInfo.SessionId
|
||||
return nil
|
||||
}
|
||||
|
||||
func (wd *Driver) wdaHttpRequest(method string, rawURL string, rawBody []byte, disableRetry ...bool) (rawResp rawResponse, err error) {
|
||||
@@ -174,7 +175,9 @@ func (wd *Driver) wdaHttpRequest(method string, rawURL string, rawBody []byte, d
|
||||
if err == nil || disableRetryBool {
|
||||
return
|
||||
}
|
||||
if _, err = wd.resetWDASession(); err != nil {
|
||||
// wait for WDA to resume automatically
|
||||
time.Sleep(20 * time.Second)
|
||||
if err = wd.resetWDASession(); err != nil {
|
||||
log.Err(err).Msgf("failed to reset wda session, retry count: %v", retryCount)
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -474,7 +474,7 @@ func (dev *IOSDevice) forward(localPort, remotePort int) error {
|
||||
rInnerConn, err := device.NewConnect(remotePort)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("connect to ios device failed")
|
||||
os.Exit(code.GetErrorCode(code.IOSDeviceConnectionError))
|
||||
continue
|
||||
}
|
||||
|
||||
rConn := rInnerConn.RawConn()
|
||||
@@ -484,11 +484,15 @@ func (dev *IOSDevice) forward(localPort, remotePort int) error {
|
||||
go func(lConn, rConn net.Conn) {
|
||||
if _, err := io.Copy(lConn, rConn); err != nil {
|
||||
log.Error().Err(err).Msg("copy local -> remote")
|
||||
rConn.Close()
|
||||
accept.Close()
|
||||
}
|
||||
}(lConn, rConn)
|
||||
go func(lConn, rConn net.Conn) {
|
||||
if _, err := io.Copy(rConn, lConn); err != nil {
|
||||
log.Error().Err(err).Msg("copy local <- remote")
|
||||
rConn.Close()
|
||||
accept.Close()
|
||||
}
|
||||
}(lConn, rConn)
|
||||
}(accept)
|
||||
|
||||
Reference in New Issue
Block a user