Created
December 28, 2022 09:43
-
-
Save kazuho/510d65ee261a729177df371cf18dd75d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/reflector.rb b/reflector.rb | |
index c47370b..39e4115 100644 | |
--- a/reflector.rb | |
+++ b/reflector.rb | |
@@ -4,12 +4,17 @@ | |
# sudo ip link set tap-e up | |
# sudo ip route add 10.1.2.0/24 via 10.1.2.3 | |
+require "fiber_scheduler" | |
require "./tun" | |
-TRUE_ADDR = "\xa\1\2\xfe".b | |
+TRUE_ADDR = "\xa\1\2\3".b | |
FAKE_ADDR = "\xa\1\2\4".b | |
-tun = Tun.new("rat") | |
+tun = Tun.new("tap-e") | |
+ | |
+Fiber.set_scheduler(FiberScheduler.new) | |
+ | |
+Fiber.schedule do | |
loop do | |
packet = tun.read() | |
if packet and packet.l4 | |
@@ -25,3 +30,4 @@ loop do | |
end | |
end | |
end | |
+end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$ /usr/local/ruby-3.2.0/bin/ruby --yjit reflector.rb
'Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1
Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2
/usr/local/ruby-3.2.0/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:175:in
io_read': wrong number of arguments (given 4, expected 3) (ArgumentError) from /home/kazuho/mydev/rat/tun.rb:300:in
sysread'from /home/kazuho/mydev/rat/tun.rb:300:in
read' from reflector.rb:19:in
block (2 levels) infrom reflector.rb:18:in
loop' from reflector.rb:18:in
block in 'from /usr/local/ruby-3.2.0/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:240:in `block in fiber'