diff --git a/vendor/github.com/ccding/go-stun/stun/LICENSE b/vendor/github.com/ccding/go-stun/LICENSE similarity index 100% rename from vendor/github.com/ccding/go-stun/stun/LICENSE rename to vendor/github.com/ccding/go-stun/LICENSE diff --git a/vendor/github.com/ccding/go-stun/main.go b/vendor/github.com/ccding/go-stun/main.go new file mode 100644 index 000000000..925f7d20f --- /dev/null +++ b/vendor/github.com/ccding/go-stun/main.go @@ -0,0 +1,56 @@ +// Copyright 2013, Cong Ding. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// author: Cong Ding + +package main + +import ( + "flag" + "fmt" + + "github.com/ccding/go-stun/stun" +) + +func main() { + var serverAddr = flag.String("s", stun.DefaultServerAddr, "STUN server address") + var v = flag.Bool("v", false, "verbose mode") + var vv = flag.Bool("vv", false, "double verbose mode (includes -v)") + var vvv = flag.Bool("vvv", false, "triple verbose mode (includes -v and -vv)") + flag.Parse() + + // Creates a STUN client. NewClientWithConnection can also be used if + // you want to handle the UDP listener by yourself. + client := stun.NewClient() + // The default addr (stun.DefaultServerAddr) will be used unless we + // call SetServerAddr. + client.SetServerAddr(*serverAddr) + // Non verbose mode will be used by default unless we call + // SetVerbose(true) or SetVVerbose(true). + client.SetVerbose(*v || *vv || *vvv) + client.SetVVerbose(*vv || *vvv) + // Discover the NAT and return the result. + nat, host, err := client.Discover() + if err != nil { + fmt.Println(err) + return + } + + fmt.Println("NAT Type:", nat) + if host != nil { + fmt.Println("External IP Family:", host.Family()) + fmt.Println("External IP:", host.IP()) + fmt.Println("External Port:", host.Port()) + } +} diff --git a/vendor/github.com/ccding/go-stun/stun/const.go b/vendor/github.com/ccding/go-stun/stun/const.go index cc87fd133..c0285588b 100644 --- a/vendor/github.com/ccding/go-stun/stun/const.go +++ b/vendor/github.com/ccding/go-stun/stun/const.go @@ -41,20 +41,24 @@ const ( NATRestricted NATPortRestricted NATSymmetricUDPFirewall + + // Deprecated spellings of these constants + NATSymetric = NATSymmetric + NATSymetricUDPFirewall = NATSymmetricUDPFirewall ) var natStr map[NATType]string func init() { natStr = map[NATType]string{ - NATError: "Test failed", - NATUnknown: "Unexpected response from the STUN server", - NATBlocked: "UDP is blocked", - NATFull: "Full cone NAT", + NATError: "Test failed", + NATUnknown: "Unexpected response from the STUN server", + NATBlocked: "UDP is blocked", + NATFull: "Full cone NAT", NATSymmetric: "Symmetric NAT", - NATRestricted: "Restricted NAT", - NATPortRestricted: "Port restricted NAT", - NATNone: "Not behind a NAT", + NATRestricted: "Restricted NAT", + NATPortRestricted: "Port restricted NAT", + NATNone: "Not behind a NAT", NATSymmetricUDPFirewall: "Symmetric UDP firewall", } } diff --git a/vendor/github.com/ccding/go-stun/stun/net.go b/vendor/github.com/ccding/go-stun/stun/net.go index be55b67c9..a9c7ae5f4 100644 --- a/vendor/github.com/ccding/go-stun/stun/net.go +++ b/vendor/github.com/ccding/go-stun/stun/net.go @@ -78,7 +78,7 @@ func (c *Client) send(pkt *packet, conn net.PacketConn, addr net.Addr) (*respons // Read from the port. length, raddr, err := conn.ReadFrom(packetBytes) if err != nil { - if err.(net.Error).Timeout() { + if nerr, ok := err.(net.Error); ok && nerr.Timeout() { break } return nil, err diff --git a/vendor/manifest b/vendor/manifest index fbcb937e1..53774d1b6 100644 --- a/vendor/manifest +++ b/vendor/manifest @@ -58,12 +58,11 @@ "notests": true }, { - "importpath": "github.com/ccding/go-stun/stun", - "repository": "https://github.com/calmh/go-stun", + "importpath": "github.com/ccding/go-stun", + "repository": "https://github.com/ccding/go-stun", "vcs": "git", - "revision": "9d33469f1f20a1674659be94ac9ca94ab5f06f58", + "revision": "d9bbe8f8fa7bf7ed03e6cfc6a2796bb36139e1f4", "branch": "master", - "path": "/stun", "notests": true }, {