summaryrefslogtreecommitdiff
path: root/attic/multicast-trace-receiver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'attic/multicast-trace-receiver.rb')
-rwxr-xr-xattic/multicast-trace-receiver.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/attic/multicast-trace-receiver.rb b/attic/multicast-trace-receiver.rb
new file mode 100755
index 00000000..74593859
--- /dev/null
+++ b/attic/multicast-trace-receiver.rb
@@ -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
+}