conn: harmonize GOOS checks between "linux" and "android"
Otherwise GRO gets enabled on Android, but the conn doesn't use it, resulting in bundled packets being discarded. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							parent
							
								
									177caa7e44
								
							
						
					
					
						commit
						24ea13351e
					
				| @ -175,7 +175,7 @@ again: | ||||
| 	var fns []ReceiveFunc | ||||
| 	if v4conn != nil { | ||||
| 		s.ipv4TxOffload, s.ipv4RxOffload = supportsUDPOffload(v4conn) | ||||
| 		if runtime.GOOS == "linux" { | ||||
| 		if runtime.GOOS == "linux" || runtime.GOOS == "android" { | ||||
| 			v4pc = ipv4.NewPacketConn(v4conn) | ||||
| 			s.ipv4PC = v4pc | ||||
| 		} | ||||
| @ -184,7 +184,7 @@ again: | ||||
| 	} | ||||
| 	if v6conn != nil { | ||||
| 		s.ipv6TxOffload, s.ipv6RxOffload = supportsUDPOffload(v6conn) | ||||
| 		if runtime.GOOS == "linux" { | ||||
| 		if runtime.GOOS == "linux" || runtime.GOOS == "android" { | ||||
| 			v6pc = ipv6.NewPacketConn(v6conn) | ||||
| 			s.ipv6PC = v6pc | ||||
| 		} | ||||
| @ -237,7 +237,7 @@ func (s *StdNetBind) receiveIP( | ||||
| 	} | ||||
| 	defer s.putMessages(msgs) | ||||
| 	var numMsgs int | ||||
| 	if runtime.GOOS == "linux" { | ||||
| 	if runtime.GOOS == "linux" || runtime.GOOS == "android" { | ||||
| 		if rxOffload { | ||||
| 			readAt := len(*msgs) - (IdealBatchSize / udpSegmentMaxDatagrams) | ||||
| 			numMsgs, err = br.ReadBatch((*msgs)[readAt:], 0) | ||||
| @ -291,7 +291,7 @@ func (s *StdNetBind) makeReceiveIPv6(pc *ipv6.PacketConn, conn *net.UDPConn, rxO | ||||
| // TODO: When all Binds handle IdealBatchSize, remove this dynamic function and
 | ||||
| // rename the IdealBatchSize constant to BatchSize.
 | ||||
| func (s *StdNetBind) BatchSize() int { | ||||
| 	if runtime.GOOS == "linux" { | ||||
| 	if runtime.GOOS == "linux" || runtime.GOOS == "android" { | ||||
| 		return IdealBatchSize | ||||
| 	} | ||||
| 	return 1 | ||||
| @ -414,7 +414,7 @@ func (s *StdNetBind) send(conn *net.UDPConn, pc batchWriter, msgs []ipv6.Message | ||||
| 		err   error | ||||
| 		start int | ||||
| 	) | ||||
| 	if runtime.GOOS == "linux" { | ||||
| 	if runtime.GOOS == "linux" || runtime.GOOS == "android" { | ||||
| 		for { | ||||
| 			n, err = pc.WriteBatch(msgs[start:], 0) | ||||
| 			if err != nil || n == len(msgs[start:]) { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user