mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 11:15:07 +03:00 
			
		
		
		
	Fix TAP support again
This commit is contained in:
		
							parent
							
								
									2b44f5d2f6
								
							
						
					
					
						commit
						75130f7735
					
				
					 2 changed files with 5 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -236,7 +236,7 @@ func (tun *TunAdapter) connReader(conn *yggdrasil.Conn) error {
 | 
			
		|||
			var dstAddr address.Address
 | 
			
		||||
			if b[0]&0xf0 == 0x60 {
 | 
			
		||||
				if len(b) < 40 {
 | 
			
		||||
					//panic("Tried to sendb a packet shorter than an IPv6 header...")
 | 
			
		||||
					//panic("Tried to send a packet shorter than an IPv6 header...")
 | 
			
		||||
					util.PutBytes(b)
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -301,8 +301,9 @@ func (tun *TunAdapter) connReader(conn *yggdrasil.Conn) error {
 | 
			
		|||
					ethernet.NotTagged,   // VLAN tagging
 | 
			
		||||
					proto,                // Ethertype
 | 
			
		||||
					len(b))               // Payload length
 | 
			
		||||
				copy(frame[tun_ETHER_HEADER_LENGTH:], b[:])
 | 
			
		||||
				w, err = tun.iface.Write(b[:n])
 | 
			
		||||
				copy(frame[tun_ETHER_HEADER_LENGTH:], b[:n])
 | 
			
		||||
				n += tun_ETHER_HEADER_LENGTH
 | 
			
		||||
				w, err = tun.iface.Write(frame[:n])
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			w, err = tun.iface.Write(b[:n])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,6 @@ import (
 | 
			
		|||
	"bytes"
 | 
			
		||||
	"encoding/hex"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"sync/atomic"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/yggdrasil-network/yggdrasil-go/src/address"
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +77,7 @@ type sessionPing struct {
 | 
			
		|||
// Updates session info in response to a ping, after checking that the ping is OK.
 | 
			
		||||
// Returns true if the session was updated, or false otherwise.
 | 
			
		||||
func (s *sessionInfo) update(p *sessionPing) bool {
 | 
			
		||||
	if !(p.Tstamp > atomic.LoadInt64(&s.tstamp)) {
 | 
			
		||||
	if !(p.Tstamp > s.tstamp) {
 | 
			
		||||
		// To protect against replay attacks
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue