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
|
||
|
}
|