Files
livekit/pkg/utils/context.go
David Zhao 2fa46e2df4 Retry initial connection attempt should it fail (#1335)
Sometimes the initial selected node could fail. In that case, we'll give it a few more attempts to locate a media node for the session instead of failing it after the first try.
2023-01-25 22:59:57 -08:00

33 lines
918 B
Go

/*
* Copyright 2023 LiveKit, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package utils
import "context"
var attemptKey = struct{}{}
func ContextWithAttempt(ctx context.Context, attempt int) context.Context {
return context.WithValue(ctx, attemptKey, attempt)
}
func GetAttempt(ctx context.Context) int {
if attempt, ok := ctx.Value(attemptKey).(int); ok {
return attempt
}
return 0
}