@@ -1073,43 +1073,48 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
10731073 var iter = reader . AggregateChildren ( ) ;
10741074 while ( iter . MoveNext ( ) )
10751075 {
1076- var key = iter . Value ;
10771076 HelloField field ;
10781077 unsafe
10791078 {
1080- if ( ! key . TryParseScalar ( & HelloFieldMetadata . TryParse , out field ) )
1079+ if ( ! iter . Value . TryParseScalar ( & HelloFieldMetadata . TryParse , out field ) )
10811080 {
10821081 field = HelloField . Unknown ;
10831082 }
1084- }
10851083
1086- if ( ! iter . MoveNext ( ) ) break ;
1087- var val = iter . Value ;
1084+ if ( ! iter . MoveNext ( ) ) break ;
10881085
1089- switch ( field )
1090- {
1091- case HelloField . Version when Format . TryParseVersion ( val . ReadString ( ) , out var version ) :
1092- server . Version = version ;
1093- Log ? . LogInformationAutoConfiguredHelloServerVersion ( new ( server ) , version ) ;
1094- break ;
1095- case HelloField . Proto when val . TryReadInt64 ( out var i64 ) :
1096- connection . SetProtocol ( i64 >= 3 ? RedisProtocol . Resp3 : RedisProtocol . Resp2 ) ;
1097- Log ? . LogInformationAutoConfiguredHelloProtocol ( new ( server ) , connection . Protocol ?? RedisProtocol . Resp2 ) ;
1098- break ;
1099- case HelloField . Id when val . TryReadInt64 ( out var i64 ) :
1100- connection . ConnectionId = i64 ;
1101- Log ? . LogInformationAutoConfiguredHelloConnectionId ( new ( server ) , i64 ) ;
1102- break ;
1103- case HelloField . Mode when ServerTypeMetadata . TryParse ( val . ReadString ( ) , out var serverType ) :
1104- server . ServerType = serverType ;
1105- Log ? . LogInformationAutoConfiguredHelloServerType ( new ( server ) , serverType ) ;
1106- break ;
1107- case HelloField . Role when RoleTypeMetadata . TryParse ( val . ReadString ( ) , out bool isReplica ) :
1108- server . IsReplica = isReplica ;
1109- Log ? . LogInformationAutoConfiguredHelloRole ( new ( server ) , isReplica ? "replica" : "primary" ) ;
1110- break ;
1086+ switch ( field )
1087+ {
1088+ case HelloField . Version when iter . Value . TryParseScalar ( Format . TryParseVersion ! , out Version version ) :
1089+ server . Version = version ;
1090+ Log ? . LogInformationAutoConfiguredHelloServerVersion ( new ( server ) , version ) ;
1091+ break ;
1092+ case HelloField . Proto when iter . Value . TryReadInt64 ( out var i64 ) :
1093+ connection . SetProtocol ( i64 >= 3 ? RedisProtocol . Resp3 : RedisProtocol . Resp2 ) ;
1094+ Log ? . LogInformationAutoConfiguredHelloProtocol (
1095+ new ( server ) ,
1096+ connection . Protocol ?? RedisProtocol . Resp2 ) ;
1097+ break ;
1098+ case HelloField . Id when iter . Value . TryReadInt64 ( out var i64 ) :
1099+ connection . ConnectionId = i64 ;
1100+ Log ? . LogInformationAutoConfiguredHelloConnectionId ( new ( server ) , i64 ) ;
1101+ break ;
1102+ case HelloField . Mode
1103+ when iter . Value . TryParseScalar ( & ServerTypeMetadata . TryParse , out ServerType serverType ) :
1104+ server . ServerType = serverType ;
1105+ Log ? . LogInformationAutoConfiguredHelloServerType ( new ( server ) , serverType ) ;
1106+ break ;
1107+ case HelloField . Role
1108+ when iter . Value . TryParseScalar ( & KnownRoleMetadata . TryParse , out bool isReplica ) :
1109+ server . IsReplica = isReplica ;
1110+ Log ? . LogInformationAutoConfiguredHelloRole (
1111+ new ( server ) ,
1112+ isReplica ? "replica" : "primary" ) ;
1113+ break ;
1114+ }
11111115 }
11121116 }
1117+
11131118 SetResult ( message , true ) ;
11141119 return true ;
11151120 }
0 commit comments