1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright (c) 2016 Arista Networks, Inc.
- // Use of this source code is governed by the Apache License 2.0
- // that can be found in the COPYING file.
- package netns_test
- import (
- "net"
- "net/http"
- "time"
- "notabug.org/themusicgod1/goarista/netns"
- )
- func ExampleDo_httpClient() {
- vrf := "management"
- vrf = netns.VRFToNetNS(vrf) // vrf is now "ns-management"
- dial := func(network, address string) (net.Conn, error) {
- var conn net.Conn
- err := netns.Do(vrf, func() error {
- var err error
- conn, err = (&net.Dialer{
- Timeout: 30 * time.Second, // This is the connection timeout
- KeepAlive: 30 * time.Second,
- }).Dial(network, address)
- return err
- })
- return conn, err
- }
- client := &http.Client{
- Transport: &http.Transport{
- //TLSClientConfig: ..., <- if you need SSL/TLS.
- Dial: dial,
- },
- Timeout: 30 * time.Second, // This is the request timeout
- }
- resp, err := client.Get("http://example.com")
- _ = resp
- _ = err
- }
|