netbird/sharedsock/example
Yury Gargay 9e8725618e
Extend linter rules (#1300)
- dupword checks for duplicate words in the source code
- durationcheck checks for two durations multiplied together
- forbidigo forbids identifiers
- mirror reports wrong mirror patterns of bytes/strings usage
- misspell finds commonly misspelled English words in comments
- predeclared finds code that shadows one of Go's predeclared identifiers
- thelper detects Go test helpers without t.Helper() call and checks the consistency of test helpers
2023-11-10 16:33:13 +01:00
..
main.go Extend linter rules (#1300) 2023-11-10 16:33:13 +01:00
README.md Add sharedsock example (#1116) 2023-08-31 17:01:32 +02:00

How to run

This will only work on Linux

  1. Run netcat listening on the UDP port 51820. This is going to be our external process:
nc -kluvw 1 51820
  1. Build and run the example Go code:
 go build -o sharedsock && sudo ./sharedsock
  1. Test the logic by sending a STUN binding request
STUN_PACKET="000100002112A4425454" 
echo -n $STUN_PACKET | xxd -r -p | nc -u -w 1 localhost 51820
  1. You should see a similar output of the Go program. Note that you'll see some binary output in the netcat server too. This is due to the fact that kernel copies packets to both processes.
 read a STUN packet of size 18 from ...
  1. Send a non-STUN packet
echo -n 'hello' |  nc -u -w 1 localhost 51820
  1. The Go program won't print anything.