24 lines
402 B
Go
24 lines
402 B
Go
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
|
|
}
|