Created
October 27, 2020 21:14
-
-
Save cure/639ebbd6a7d7b72f7546975e2ae55096 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/src/tuntap/iface.go b/src/tuntap/iface.go | |
index bd849c7..e33c4f9 100644 | |
--- a/src/tuntap/iface.go | |
+++ b/src/tuntap/iface.go | |
@@ -54,24 +54,28 @@ type tunReader struct { | |
} | |
func (r *tunReader) _read() { | |
- // Get a slice to store the packet in | |
- recvd := util.ResizeBytes(util.GetBytes(), int(r.tun.mtu)+TUN_OFFSET_BYTES) | |
- // Wait for a packet to be delivered to us through the TUN adapter | |
- n, err := r.tun.iface.Read(recvd, TUN_OFFSET_BYTES) | |
- if n <= TUN_OFFSET_BYTES || err != nil { | |
- r.tun.log.Errorln("Error reading TUN:", err) | |
- ferr := r.tun.iface.Flush() | |
- if ferr != nil { | |
- r.tun.log.Errorln("Unable to flush packets:", ferr) | |
+ for { | |
+ // Get a slice to store the packet in | |
+ recvd := util.ResizeBytes(util.GetBytes(), int(r.tun.mtu)+TUN_OFFSET_BYTES) | |
+ // Wait for a packet to be delivered to us through the TUN adapter | |
+ r.tun.log.Errorln("################### about to enter r.tun.iface.Read ##############") | |
+ n, err := r.tun.iface.Read(recvd, TUN_OFFSET_BYTES) | |
+ r.tun.log.Errorf("******************* Read %d bytes from tunnel *********************\n", n) | |
+ if n <= TUN_OFFSET_BYTES || err != nil { | |
+ r.tun.log.Errorln("Error reading TUN:", err) | |
+ ferr := r.tun.iface.Flush() | |
+ if ferr != nil { | |
+ r.tun.log.Errorln("Unable to flush packets:", ferr) | |
+ } | |
+ util.PutBytes(recvd) | |
+ } else { | |
+ r.tun.handlePacketFrom(r, recvd[TUN_OFFSET_BYTES:n+TUN_OFFSET_BYTES], err) | |
} | |
- util.PutBytes(recvd) | |
- } else { | |
- r.tun.handlePacketFrom(r, recvd[TUN_OFFSET_BYTES:n+TUN_OFFSET_BYTES], err) | |
} | |
- if err == nil { | |
+ /* if err == nil { | |
// Now read again | |
r.Act(nil, r._read) | |
- } | |
+ } */ | |
} | |
func (tun *TunAdapter) handlePacketFrom(from phony.Actor, packet []byte, err error) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment