http.go (715B)
1 package vmutils 2 3 import ( 4 "context" 5 "net" 6 "net/http" 7 "time" 8 9 "github.com/firecracker-microvm/firecracker-go-sdk" 10 "github.com/firecracker-microvm/firecracker-go-sdk/vsock" 11 ) 12 13 func NewHTTPClient(m *firecracker.Machine) (*http.Client, error) { 14 if len(m.Cfg.VsockDevices) == 0 { 15 return nil, ErrNoVsockDevice 16 } 17 18 vsockDevice := m.Cfg.VsockDevices[0] 19 20 return &http.Client{ 21 Timeout: time.Minute * 120, 22 Transport: &http.Transport{ 23 DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { 24 return vsock.DialContext(ctx, vsockDevice.Path, HTTPPort) 25 }, 26 }, 27 }, nil 28 } 29 30 func VsockListener(ctx context.Context) (net.Listener, error) { 31 return vsock.Listener(ctx, nil, HTTPPort) 32 }