Files
gluetun/internal/natpmp/natpmp.go
2023-07-06 06:50:17 +00:00

27 lines
628 B
Go

package natpmp
import (
"time"
)
// Client is a NAT-PMP protocol client.
type Client struct {
serverPort uint16
initialConnectionDuration time.Duration
maxRetries uint
}
// New creates a new NAT-PMP client.
func New() (client *Client) {
const natpmpPort = 5351
// Parameters described in https://www.ietf.org/rfc/rfc6886.html#section-3.1
const initialConnectionDuration = 250 * time.Millisecond
const maxTries = 9 // 64 seconds
return &Client{
serverPort: natpmpPort,
initialConnectionDuration: initialConnectionDuration,
maxRetries: maxTries,
}
}