aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/nat.go
blob: 9b771c3e8c12cb8fbfd1c3f4113efb755a13bed7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package p2p

import (
    "fmt"
    "net"
)

func ParseNAT(natType string, gateway string) (nat NAT, err error) {
    switch natType {
    case "UPNP":
        nat = UPNP()
    case "PMP":
        ip := net.ParseIP(gateway)
        if ip == nil {
            return nil, fmt.Errorf("cannot resolve PMP gateway IP %s", gateway)
        }
        nat = PMP(ip)
    case "":
    default:
        return nil, fmt.Errorf("unrecognised NAT type '%s'", natType)
    }
    return
}