mirror of
				https://github.com/yggdrasil-network/yggdrasil-android.git
				synced 2025-11-04 03:05:08 +03:00 
			
		
		
		
	Optimized packet buffers. (#26)
This commit is contained in:
		
							parent
							
								
									aa725fbf8f
								
							
						
					
					
						commit
						8615d43761
					
				
					 1 changed files with 6 additions and 7 deletions
				
			
		| 
						 | 
					@ -1,16 +1,12 @@
 | 
				
			||||||
package eu.neilalexander.yggdrasil
 | 
					package eu.neilalexander.yggdrasil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import android.content.*
 | 
					import android.content.*
 | 
				
			||||||
import android.net.Uri
 | 
					 | 
				
			||||||
import android.net.VpnService
 | 
					import android.net.VpnService
 | 
				
			||||||
import android.os.Handler
 | 
					 | 
				
			||||||
import android.os.Message
 | 
					 | 
				
			||||||
import android.os.ParcelFileDescriptor
 | 
					import android.os.ParcelFileDescriptor
 | 
				
			||||||
import android.system.OsConstants
 | 
					import android.system.OsConstants
 | 
				
			||||||
import android.util.Log
 | 
					import android.util.Log
 | 
				
			||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
 | 
					import androidx.localbroadcastmanager.content.LocalBroadcastManager
 | 
				
			||||||
import mobile.Yggdrasil
 | 
					import mobile.Yggdrasil
 | 
				
			||||||
import org.json.JSONArray
 | 
					 | 
				
			||||||
import java.io.FileInputStream
 | 
					import java.io.FileInputStream
 | 
				
			||||||
import java.io.FileOutputStream
 | 
					import java.io.FileOutputStream
 | 
				
			||||||
import java.util.concurrent.atomic.AtomicBoolean
 | 
					import java.util.concurrent.atomic.AtomicBoolean
 | 
				
			||||||
| 
						 | 
					@ -208,6 +204,7 @@ class PacketTunnelProvider: VpnService() {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun writer() {
 | 
					    private fun writer() {
 | 
				
			||||||
 | 
					        val buf = ByteArray(65535)
 | 
				
			||||||
        writes@ while (started.get()) {
 | 
					        writes@ while (started.get()) {
 | 
				
			||||||
            val writerStream = writerStream
 | 
					            val writerStream = writerStream
 | 
				
			||||||
            val writerThread = writerThread
 | 
					            val writerThread = writerThread
 | 
				
			||||||
| 
						 | 
					@ -218,8 +215,10 @@ class PacketTunnelProvider: VpnService() {
 | 
				
			||||||
                break@writes
 | 
					                break@writes
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                val b = yggdrasil.recv()
 | 
					                val len = yggdrasil.recvBuffer(buf)
 | 
				
			||||||
                writerStream.write(b)
 | 
					                if (len > 0) {
 | 
				
			||||||
 | 
					                    writerStream.write(buf, 0, len.toInt())
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            } catch (e: Exception) {
 | 
					            } catch (e: Exception) {
 | 
				
			||||||
                break@writes
 | 
					                break@writes
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -243,7 +242,7 @@ class PacketTunnelProvider: VpnService() {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                val n = readerStream.read(b)
 | 
					                val n = readerStream.read(b)
 | 
				
			||||||
                yggdrasil.send(b.sliceArray(0..n))
 | 
					                yggdrasil.sendBuffer(b, n.toLong())
 | 
				
			||||||
            } catch (e: Exception) {
 | 
					            } catch (e: Exception) {
 | 
				
			||||||
                break@reads
 | 
					                break@reads
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue