mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-02 20:40:52 +08:00
fix(auth): handle context cancellation in executor methods
This commit is contained in:
@@ -598,6 +598,9 @@ func (m *Manager) executeMixedOnce(ctx context.Context, providers []string, req
|
|||||||
resp, errExec := executor.Execute(execCtx, auth, execReq, opts)
|
resp, errExec := executor.Execute(execCtx, auth, execReq, opts)
|
||||||
result := Result{AuthID: auth.ID, Provider: provider, Model: routeModel, Success: errExec == nil}
|
result := Result{AuthID: auth.ID, Provider: provider, Model: routeModel, Success: errExec == nil}
|
||||||
if errExec != nil {
|
if errExec != nil {
|
||||||
|
if errCtx := execCtx.Err(); errCtx != nil {
|
||||||
|
return cliproxyexecutor.Response{}, errCtx
|
||||||
|
}
|
||||||
result.Error = &Error{Message: errExec.Error()}
|
result.Error = &Error{Message: errExec.Error()}
|
||||||
var se cliproxyexecutor.StatusError
|
var se cliproxyexecutor.StatusError
|
||||||
if errors.As(errExec, &se) && se != nil {
|
if errors.As(errExec, &se) && se != nil {
|
||||||
@@ -648,6 +651,9 @@ func (m *Manager) executeCountMixedOnce(ctx context.Context, providers []string,
|
|||||||
resp, errExec := executor.CountTokens(execCtx, auth, execReq, opts)
|
resp, errExec := executor.CountTokens(execCtx, auth, execReq, opts)
|
||||||
result := Result{AuthID: auth.ID, Provider: provider, Model: routeModel, Success: errExec == nil}
|
result := Result{AuthID: auth.ID, Provider: provider, Model: routeModel, Success: errExec == nil}
|
||||||
if errExec != nil {
|
if errExec != nil {
|
||||||
|
if errCtx := execCtx.Err(); errCtx != nil {
|
||||||
|
return cliproxyexecutor.Response{}, errCtx
|
||||||
|
}
|
||||||
result.Error = &Error{Message: errExec.Error()}
|
result.Error = &Error{Message: errExec.Error()}
|
||||||
var se cliproxyexecutor.StatusError
|
var se cliproxyexecutor.StatusError
|
||||||
if errors.As(errExec, &se) && se != nil {
|
if errors.As(errExec, &se) && se != nil {
|
||||||
@@ -697,6 +703,9 @@ func (m *Manager) executeStreamMixedOnce(ctx context.Context, providers []string
|
|||||||
execReq.Model = m.applyAPIKeyModelAlias(auth, execReq.Model)
|
execReq.Model = m.applyAPIKeyModelAlias(auth, execReq.Model)
|
||||||
chunks, errStream := executor.ExecuteStream(execCtx, auth, execReq, opts)
|
chunks, errStream := executor.ExecuteStream(execCtx, auth, execReq, opts)
|
||||||
if errStream != nil {
|
if errStream != nil {
|
||||||
|
if errCtx := execCtx.Err(); errCtx != nil {
|
||||||
|
return nil, errCtx
|
||||||
|
}
|
||||||
rerr := &Error{Message: errStream.Error()}
|
rerr := &Error{Message: errStream.Error()}
|
||||||
var se cliproxyexecutor.StatusError
|
var se cliproxyexecutor.StatusError
|
||||||
if errors.As(errStream, &se) && se != nil {
|
if errors.As(errStream, &se) && se != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user