@@ -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"`
@@ -71,6 +74,18 @@ func (c *NetworkConfig) GetMDNSMode() *mdns.MDNSListenOptions {
7174
7275 return listenOptions
7376}
77+
78+ func (s * NetworkConfig ) GetTransportProxyFunc () func (* http.Request ) (* url.URL , error ) {
79+ return func (* http.Request ) (* url.URL , error ) {
80+ if s .HTTPProxy .String == "" {
81+ return nil , nil
82+ } else {
83+ proxyUrl , _ := url .Parse (s .HTTPProxy .String )
84+ return proxyUrl , nil
85+ }
86+ }
87+ }
88+
7489func (s * NetworkInterfaceState ) GetHostname () string {
7590 hostname := ToValidHostname (s .config .Hostname .String )
7691
0 commit comments