functions

The Fool guy's FAAS
git clone git://git.lair.cx/functions
Log | Files | Refs | README

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 }