| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Network contains a default implementation of the network.
- //
- // Please see [mtglib.Network] interface to get some basic idea behind this
- // abstraction.
- //
- // This implementation is more simple that v1 because life shows that all
- // this complexity, especially around circuit breakers and DoH is not really
- // required. There is no chance that if DNS address is spoofed, that real
- // IP would work as expected.
- package network
-
- import (
- "errors"
- "net"
- "time"
-
- "github.com/9seconds/mtg/v2/mtglib"
- )
-
- const (
- // DefaultTimeout is a default timeout for establishing TCP connection.
- DefaultTimeout = 10 * time.Second
-
- // DefaultHTTPTimeout defines a default timeout for making HTTP request.
- DefaultHTTPTimeout = 10 * time.Second
-
- // DefaultIdleTimeout defines a timeout for idle HTTP connections
- DefaultIdleTimeout = time.Minute
-
- // DefaultTCPKeepAlivePeriod defines a time period between 2 consecuitive
- // probes.
- DefaultTCPKeepAlivePeriod = 10 * time.Second
-
- // tcpLingerTimeout defines a number of seconds to wait for sending
- // unacknowledged data.
- tcpLingerTimeout = 1
- )
-
- var ErrCannotDial = errors.New("cannot dial to any address")
-
- type Network interface {
- mtglib.Network
-
- NativeDialer() *net.Dialer
- }
|