@@ -68,47 +68,42 @@ static async Task ConfigureHttpClientsAsync(WebApplicationBuilder builder, ISett
68
68
{
69
69
ServicePointManager . SecurityProtocol = SecurityProtocolType . Tls | SecurityProtocolType . Tls11 | SecurityProtocolType . Tls12 | SecurityProtocolType . Tls13 ;
70
70
71
- var selectedAdapterName = ( await settingsService . GetAsync ( ) ) . NetworkAdapter ;
71
+ var settings = await settingsService . GetAsync ( ) ;
72
+ var selectedAdapterName = settings . NetworkAdapter ;
72
73
bool needsCustomHandler = ! string . IsNullOrWhiteSpace ( selectedAdapterName ) && selectedAdapterName != "_DEFAULT_" ;
73
74
74
- IHttpClientBuilder httpClientBuilder ;
75
-
76
- httpClientBuilder = builder . Services . AddHttpClient (
77
- HttpClientName . Cloudflare . ToString ( ) ,
78
- client =>
75
+ var clientConfigurations = new Dictionary < string , Action < HttpClient > >
76
+ {
77
+ [ HttpClientName . Cloudflare . ToString ( ) ] = client =>
79
78
{
80
79
client . BaseAddress = new Uri ( "https://api.cloudflare.com/client/v4/" ) ;
81
80
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/json" ) ) ;
82
81
client . DefaultRequestHeaders . UserAgent . ParseAdd ( "DnsTube" ) ;
83
- } ) ;
84
- if ( needsCustomHandler )
85
- {
86
- ConfigureHandler ( httpClientBuilder , selectedAdapterName ! ) ;
87
- }
88
-
89
- httpClientBuilder = builder . Services . AddHttpClient (
90
- HttpClientName . GitHub . ToString ( ) ,
91
- client =>
82
+ } ,
83
+ [ HttpClientName . GitHub . ToString ( ) ] = client =>
92
84
{
93
85
client . BaseAddress = new Uri ( "https://api.github.com/" ) ;
94
86
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/vnd.github.v3+json" ) ) ;
95
87
client . DefaultRequestHeaders . UserAgent . ParseAdd ( "DnsTube" ) ;
96
88
client . DefaultRequestHeaders . Add ( "Cache-Control" , "no-cache" ) ;
97
- } ) ;
98
- if ( needsCustomHandler )
99
- {
100
- ConfigureHandler ( httpClientBuilder , selectedAdapterName ! ) ;
101
- }
102
-
103
- httpClientBuilder = builder . Services . AddHttpClient (
104
- HttpClientName . IpAddress . ToString ( ) ,
105
- ( client ) =>
89
+ } ,
90
+ [ HttpClientName . IpAddressV4 . ToString ( ) ] = client =>
91
+ {
92
+ client . DefaultRequestHeaders . UserAgent . ParseAdd ( "DnsTube" ) ;
93
+ } ,
94
+ [ HttpClientName . IpAddressV6 . ToString ( ) ] = client =>
106
95
{
107
96
client . DefaultRequestHeaders . UserAgent . ParseAdd ( "DnsTube" ) ;
108
- } ) ;
109
- if ( needsCustomHandler )
97
+ }
98
+ } ;
99
+
100
+ foreach ( var config in clientConfigurations )
110
101
{
111
- ConfigureHandler ( httpClientBuilder , selectedAdapterName ! ) ;
102
+ var httpClientBuilder = builder . Services . AddHttpClient ( config . Key , config . Value ) ;
103
+ if ( needsCustomHandler )
104
+ {
105
+ ConfigureHandler ( httpClientBuilder , selectedAdapterName ! ) ;
106
+ }
112
107
}
113
108
}
114
109
0 commit comments