in correlation/grpc/server_interceptors.go [12:36]
func extractFromContext(ctx context.Context, propagateIncomingCorrelationID bool) (context.Context, string) {
var correlationID string
md, ok := metadata.FromIncomingContext(ctx)
if ok {
if propagateIncomingCorrelationID {
// Extract correlation_id
correlationID = CorrelationIDFromMetadata(md)
}
// Extract client name
clientNames := md.Get(metadataClientNameKey)
if len(clientNames) > 0 {
ctx = correlation.ContextWithClientName(ctx, clientNames[0])
}
}
if correlationID == "" {
correlationID = correlation.SafeRandomID()
}
ctx = correlation.ContextWithCorrelation(ctx, correlationID)
return ctx, correlationID
}