Skip to content

Commit

Permalink
Merge 241b2b9 into 2e686dd
Browse files Browse the repository at this point in the history
  • Loading branch information
ed2k committed Jan 3, 2015
2 parents 2e686dd + 241b2b9 commit abce24d
Showing 1 changed file with 35 additions and 4 deletions.
39 changes: 35 additions & 4 deletions demo/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"log"
"net"
"sync"

"encoding/hex"
"github.com/getlantern/go-natty/natty"
"github.com/getlantern/waddell"
)
Expand Down Expand Up @@ -82,7 +82,11 @@ func (p *peer) answer(wm *waddell.MessageIn) {
}

log.Printf("Got five tuple: %s", ft)
go readUDP(p.id, traversalId, ft)
if ft.Proto == "tcp" {
go readTCP(p.id, traversalId, ft)
} else if ft.Proto == "udp" {
go readUDP(p.id, traversalId, ft)
}
}()
p.traversals[traversalId] = t
}
Expand All @@ -107,11 +111,38 @@ func readUDP(peerId waddell.PeerId, traversalId uint32, ft *natty.FiveTuple) {
if err != nil {
log.Fatalf("Unable to read from UDP: %s", err)
}
msg := string(b[:n])
log.Printf("Got UDP message from %s: '%s'", addr, msg)
msg := hex.Dump(b[:n])
log.Printf("Got UDP message from %s: \n%s", addr, msg)
}
}

func readTCP(peerId waddell.PeerId, traversalId uint32, ft *natty.FiveTuple) {
local, err := net.ResolveTCPAddr("tcp", ft.Local)
if err != nil {
log.Fatalf("Unknown TCP addr: %s", err)
}
tcplisten, err := net.ListenTCP("tcp", local)
if err != nil {
log.Fatalf("Unable to listen on TCP: %s", err)
}
log.Printf("Listening for TCP packets at: %s", local)
notifyClientOfServerReady(peerId, traversalId)
b := make([]byte, 1024)
conn, err := tcplisten.Accept()
if err != nil {
log.Fatalf("Unable to accept on TCP: %s", err)
}
addr := conn.RemoteAddr()
for {
n, err := conn.Read(b)
if err != nil {
log.Fatalf("Unable to read from TCP: %s", err)
}
msg := hex.Dump(b[:n])
log.Printf("Got TCP message from %s: \n%s", addr, msg)
}
}

func notifyClientOfServerReady(peerId waddell.PeerId, traversalId uint32) {
out <- waddell.Message(peerId, idToBytes(traversalId), []byte(READY))
}

0 comments on commit abce24d

Please sign in to comment.