|
@@ -0,0 +1,27 @@
|
|
|
|
+#!/usr/bin/ruby
|
|
|
|
+
|
|
|
|
+#
|
|
|
|
+# This can be used with the debug build option ZT_TRACE_MULTICAST to trace
|
|
|
|
+# a multicast cascade.
|
|
|
|
+#
|
|
|
|
+# Define ZT_TRACE_MULTICAST to the IP/port where this script will be listening.
|
|
|
|
+# The default port here is 6060, so an example would be to add:
|
|
|
|
+#
|
|
|
|
+# -DZT_TRACE_MULTICAST=\"10.0.0.1/6060\"
|
|
|
|
+#
|
|
|
|
+# ... to DEFS in the Makefile. Then build and run ZeroTier One on a testnet and
|
|
|
|
+# the box defined as the trace endpoint will get spammed with UDP packets
|
|
|
|
+# containing trace information for multicast propagation. This script then dumps
|
|
|
|
+# these trace packets to stdout. Look at the code in PacketDecoder.cpp to see
|
|
|
|
+# what this information entails.
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+require 'socket'
|
|
|
|
+
|
|
|
|
+s = UDPSocket.new
|
|
|
|
+s.bind('0.0.0.0',6060)
|
|
|
|
+
|
|
|
|
+loop {
|
|
|
|
+ m = s.recvfrom(4096)[0].chomp
|
|
|
|
+ puts m if m.length > 0
|
|
|
|
+}
|