11using System ;
2+ using System . Collections . Generic ;
23using System . Runtime . InteropServices ;
34using System . Threading ;
45
56namespace Docker . DotNet
67{
78 public class DockerClientConfiguration : IDisposable
89 {
9- public DockerClientConfiguration ( Credentials credentials = null , TimeSpan defaultTimeout = default )
10- : this ( GetLocalDockerEndpoint ( ) , credentials , defaultTimeout )
10+ public DockerClientConfiguration (
11+ Credentials credentials = null ,
12+ TimeSpan defaultTimeout = default ,
13+ TimeSpan namedPipeConnectTimeout = default ,
14+ IReadOnlyDictionary < string , string > defaultHttpRequestHeaders = null )
15+ : this ( GetLocalDockerEndpoint ( ) , credentials , defaultTimeout , namedPipeConnectTimeout , defaultHttpRequestHeaders )
1116 {
1217 }
1318
14- public DockerClientConfiguration ( Uri endpoint , Credentials credentials = null , TimeSpan defaultTimeout = default )
19+ public DockerClientConfiguration (
20+ Uri endpoint ,
21+ Credentials credentials = null ,
22+ TimeSpan defaultTimeout = default ,
23+ TimeSpan namedPipeConnectTimeout = default ,
24+ IReadOnlyDictionary < string , string > defaultHttpRequestHeaders = null )
1525 {
1626 if ( endpoint == null )
1727 {
@@ -23,29 +33,25 @@ public DockerClientConfiguration(Uri endpoint, Credentials credentials = null, T
2333 throw new ArgumentException ( "Default timeout must be greater than -1" , nameof ( defaultTimeout ) ) ;
2434 }
2535
26- if ( credentials == null )
27- {
28- credentials = new AnonymousCredentials ( ) ;
29- }
30-
31- if ( defaultTimeout == default )
32- {
33- defaultTimeout = TimeSpan . FromSeconds ( 100 ) ;
34- }
35-
3636 EndpointBaseUri = endpoint ;
37- Credentials = credentials ;
38- DefaultTimeout = defaultTimeout ;
39- NamedPipeConnectTimeout = TimeSpan . FromMilliseconds ( 100 ) ;
37+ Credentials = credentials ?? new AnonymousCredentials ( ) ;
38+ DefaultTimeout = TimeSpan . Equals ( default , defaultTimeout ) ? TimeSpan . FromSeconds ( 100 ) : defaultTimeout ;
39+ NamedPipeConnectTimeout = TimeSpan . Equals ( default , namedPipeConnectTimeout ) ? TimeSpan . FromMilliseconds ( 100 ) : namedPipeConnectTimeout ;
40+ DefaultHttpRequestHeaders = defaultHttpRequestHeaders ?? new Dictionary < string , string > ( ) ;
4041 }
4142
43+ /// <summary>
44+ /// Gets the collection of default HTTP request headers.
45+ /// </summary>
46+ public IReadOnlyDictionary < string , string > DefaultHttpRequestHeaders { get ; }
47+
4248 public Uri EndpointBaseUri { get ; }
4349
4450 public Credentials Credentials { get ; }
4551
4652 public TimeSpan DefaultTimeout { get ; }
4753
48- public TimeSpan NamedPipeConnectTimeout { get ; set ; }
54+ public TimeSpan NamedPipeConnectTimeout { get ; }
4955
5056 public DockerClient CreateClient ( Version requestedApiVersion = null )
5157 {
0 commit comments