mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-05 00:44:10 -04:00
[client] change notifyDisconnected call (#5138)
On handleJobStream, when handling error codes from receiveJobRequest in the switch-case, notifying disconnected in cases where it isn't a disconnection breaks connection status reporting on mobile peers. This commit changes it so it isn't called on Canceled or Unimplemented status codes.
This commit is contained in:
@@ -185,10 +185,10 @@ func (c *GrpcClient) handleJobStream(
|
|||||||
for {
|
for {
|
||||||
jobReq, err := c.receiveJobRequest(ctx, stream, serverPubKey)
|
jobReq, err := c.receiveJobRequest(ctx, stream, serverPubKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.notifyDisconnected(err)
|
|
||||||
if s, ok := gstatus.FromError(err); ok {
|
if s, ok := gstatus.FromError(err); ok {
|
||||||
switch s.Code() {
|
switch s.Code() {
|
||||||
case codes.PermissionDenied:
|
case codes.PermissionDenied:
|
||||||
|
c.notifyDisconnected(err)
|
||||||
return backoff.Permanent(err) // unrecoverable error, propagate to the upper layer
|
return backoff.Permanent(err) // unrecoverable error, propagate to the upper layer
|
||||||
case codes.Canceled:
|
case codes.Canceled:
|
||||||
log.Debugf("management connection context has been canceled, this usually indicates shutdown")
|
log.Debugf("management connection context has been canceled, this usually indicates shutdown")
|
||||||
@@ -198,11 +198,13 @@ func (c *GrpcClient) handleJobStream(
|
|||||||
"Please update the management service to use this feature.")
|
"Please update the management service to use this feature.")
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
|
c.notifyDisconnected(err)
|
||||||
log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err)
|
log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// non-gRPC error
|
// non-gRPC error
|
||||||
|
c.notifyDisconnected(err)
|
||||||
log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err)
|
log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user