@@ -3,6 +3,8 @@ package network
33import (
44 "fmt"
55 "net"
6+ "net/http"
7+ "net/url"
68 "time"
79
810 "github.com/guregu/null/v6"
@@ -32,8 +34,9 @@ type IPv6StaticConfig struct {
3234 DNS []string `json:"dns,omitempty" validate_type:"ipv6" required:"true"`
3335}
3436type NetworkConfig struct {
35- Hostname null.String `json:"hostname,omitempty" validate_type:"hostname"`
36- Domain null.String `json:"domain,omitempty" validate_type:"hostname"`
37+ Hostname null.String `json:"hostname,omitempty" validate_type:"hostname"`
38+ HTTPProxy null.String `json:"http_proxy,omitempty" validate_type:"proxy"`
39+ Domain null.String `json:"domain,omitempty" validate_type:"hostname"`
3740
3841 IPv4Mode null.String `json:"ipv4_mode,omitempty" one_of:"dhcp,static,disabled" default:"dhcp"`
3942 IPv4Static * IPv4StaticConfig `json:"ipv4_static,omitempty" required_if:"IPv4Mode=static"`
@@ -69,6 +72,18 @@ func (c *NetworkConfig) GetMDNSMode() *mdns.MDNSListenOptions {
6972
7073 return listenOptions
7174}
75+
76+ func (s * NetworkConfig ) GetTransportProxyFunc () func (* http.Request ) (* url.URL , error ) {
77+ return func (* http.Request ) (* url.URL , error ) {
78+ if s .HTTPProxy .String == "" {
79+ return nil , nil
80+ } else {
81+ proxyUrl , _ := url .Parse (s .HTTPProxy .String )
82+ return proxyUrl , nil
83+ }
84+ }
85+ }
86+
7287func (s * NetworkInterfaceState ) GetHostname () string {
7388 hostname := ToValidHostname (s .config .Hostname .String )
7489
0 commit comments