Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
com.ccwangluo.accelerator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
com.ccwangluo.accelerator
Commits
b9828bfe
Commit
b9828bfe
authored
Mar 22, 2022
by
chenhuaqing
Committed by
hanakeichen
Mar 22, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix test latency
parent
38f8993c
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
120 additions
and
59 deletions
+120
-59
core/src/main/java/com/ccnet/acc/AccVpnService.kt
core/src/main/java/com/ccnet/acc/AccVpnService.kt
+1
-1
core/src/main/java/com/ccnet/acc/NetworkAdapter.kt
core/src/main/java/com/ccnet/acc/NetworkAdapter.kt
+1
-1
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
+110
-56
core/src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
...src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
+8
-1
core/src/main/jniLibs/arm64-v8a/libccnetacc.so
core/src/main/jniLibs/arm64-v8a/libccnetacc.so
+0
-0
core/src/main/jniLibs/armeabi-v7a/libccnetacc.so
core/src/main/jniLibs/armeabi-v7a/libccnetacc.so
+0
-0
No files found.
core/src/main/java/com/ccnet/acc/AccVpnService.kt
View file @
b9828bfe
...
...
@@ -34,5 +34,5 @@ class AccVpnService {
}
interface
TestLatencyCallback
{
fun
onLatency
(
latency
:
Int
)
fun
onLatency
(
latency
:
Int
)
:
Boolean
}
\ No newline at end of file
core/src/main/java/com/ccnet/acc/NetworkAdapter.kt
View file @
b9828bfe
...
...
@@ -17,8 +17,8 @@ object NetworkAdapter {
var
wifiNetwork
:
Network
?
=
null
var
cellularNetwork
:
Network
?
=
null
var
bindNetwork
:
Network
?
=
null
private
var
bindNetwork
:
Network
?
=
null
private
val
FD_FIELD
:
Field
val
wifiRequest
:
NetworkRequest
=
NetworkRequest
.
Builder
()
...
...
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
View file @
b9828bfe
package
com.github.shadowsocks.bg
import
android.net.Network
import
android.os.Build
import
com.ccnet.acc.AccVpn
import
com.ccnet.acc.NetworkAdapter
import
com.github.shadowsocks.Core
...
...
@@ -10,7 +9,6 @@ import com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.http.*
import
com.github.shadowsocks.preference.DataStore
import
com.google.gson.Gson
import
com.google.gson.JsonStreamParser
import
com.google.gson.reflect.TypeToken
import
com.tencent.mmkv.MMKV
import
kotlinx.coroutines.*
...
...
@@ -20,8 +18,8 @@ import okhttp3.Request
import
okhttp3.RequestBody
import
okhttp3.RequestBody.Companion.toRequestBody
import
timber.log.Timber
import
java.io.File
import
java.io.IOException
import
java.net.InetAddress
import
java.net.InetSocketAddress
import
java.net.Socket
import
java.security.SecureRandom
...
...
@@ -39,7 +37,7 @@ object AuthManager {
var
scheduleAtFixedRate
:
ScheduledFuture
<
*
>?
=
null
var
scheduleAtFixedRate1
:
ScheduledFuture
<
*
>?
=
null
val
okHttpClient
:
OkHttpClient
private
val
okHttpClient
:
OkHttpClient
val
gson
:
Gson
val
mmkv
=
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
...
...
@@ -126,7 +124,7 @@ object AuthManager {
if
(
data
.
state
!=
BaseService
.
State
.
Connected
)
{
return
}
NetworkAdapter
.
initNetworks
(
Core
.
deviceStorage
)
NetworkAdapter
.
initNetworks
(
Core
.
app
)
scheduleAtFixedRate
?.
cancel
(
false
)
var
failedCount
:
Int
=
0
scheduleAtFixedRate
=
executor
.
scheduleAtFixedRate
({
...
...
@@ -170,16 +168,18 @@ object AuthManager {
val
celavg
=
cellularLatencyList
.
average
().
toInt
()
if
(
wifiavg
>
celavg
&&
wifiavg
>
200
&&
celavg
!=
-
1
)
{
NetworkAdapter
.
useCellular
(
Core
.
deviceStorage
)
Timber
.
d
(
"switch to cellular"
)
}
else
if
(
celavg
>
wifiavg
&&
wifiavg
!=
-
1
)
{
NetworkAdapter
.
useWifi
(
Core
.
deviceStorage
)
Timber
.
d
(
"switch to wifi"
)
}
wifiLatencyList
.
clear
()
cellularLatencyList
.
clear
()
}
}
},
20
,
20
,
1
,
1
,
TimeUnit
.
SECONDS
)
}
...
...
@@ -240,9 +240,9 @@ object AuthManager {
var
loginAuthToken
:
String
=
"1"
val
jsonType
get
()
=
"application/json; charset=utf-8"
.
toMediaTypeOrNull
()
private
val
jsonType
get
()
=
"application/json; charset=utf-8"
.
toMediaTypeOrNull
()
inline
fun
<
reified
T
>
postSync
(
private
inline
fun
<
reified
T
>
postSync
(
url
:
String
,
token
:
String
?,
params
:
Any
...
...
@@ -282,7 +282,61 @@ object AuthManager {
}
return
sslContext
!!
.
socketFactory
return
AutoSwitchNetworkSocketFactory
(
sslContext
!!
.
socketFactory
)
}
private
class
AutoSwitchNetworkSocketFactory
(
private
val
delegate
:
SSLSocketFactory
)
:
SSLSocketFactory
()
{
override
fun
createSocket
(
s
:
Socket
?,
host
:
String
?,
port
:
Int
,
autoClose
:
Boolean
):
Socket
{
val
bindNetwork
=
NetworkAdapter
.
bindNetwork
val
createSocket
=
delegate
.
createSocket
(
s
,
host
,
port
,
autoClose
)
bindNetwork
?.
bindSocket
(
createSocket
)
return
createSocket
}
override
fun
createSocket
(
host
:
String
?,
port
:
Int
):
Socket
{
val
bindNetwork
=
NetworkAdapter
.
bindNetwork
return
if
(
bindNetwork
!=
null
)
{
bindNetwork
.
socketFactory
.
createSocket
(
host
,
port
)
}
else
{
delegate
.
createSocket
(
host
,
port
)
}
}
override
fun
createSocket
(
host
:
String
?,
port
:
Int
,
localHost
:
InetAddress
?,
localPort
:
Int
):
Socket
{
val
bindNetwork
=
NetworkAdapter
.
bindNetwork
return
if
(
bindNetwork
!=
null
)
{
bindNetwork
.
socketFactory
.
createSocket
(
host
,
port
,
localHost
,
localPort
)
}
else
{
delegate
.
createSocket
(
host
,
port
,
localHost
,
localPort
)
}
}
override
fun
createSocket
(
host
:
InetAddress
?,
port
:
Int
):
Socket
{
val
bindNetwork
=
NetworkAdapter
.
bindNetwork
return
if
(
bindNetwork
!=
null
)
{
bindNetwork
.
socketFactory
.
createSocket
(
host
,
port
)
}
else
{
delegate
.
createSocket
(
host
,
port
)
}
}
override
fun
createSocket
(
address
:
InetAddress
?,
port
:
Int
,
localAddress
:
InetAddress
?,
localPort
:
Int
):
Socket
{
val
bindNetwork
=
NetworkAdapter
.
bindNetwork
return
if
(
bindNetwork
!=
null
)
{
bindNetwork
.
socketFactory
.
createSocket
(
address
,
port
,
localAddress
,
localPort
)
}
else
{
delegate
.
createSocket
(
address
,
port
,
localAddress
,
localPort
)
}
}
override
fun
getDefaultCipherSuites
():
Array
<
String
>
{
return
delegate
.
defaultCipherSuites
}
override
fun
getSupportedCipherSuites
():
Array
<
String
>
{
return
delegate
.
supportedCipherSuites
}
}
private
fun
initTrustManager
():
X509TrustManager
{
...
...
core/src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
View file @
b9828bfe
...
...
@@ -23,6 +23,7 @@ package com.github.shadowsocks.bg
import
android.net.LocalSocket
import
android.os.SystemClock
import
com.ccnet.acc.AccVpnService
import
com.ccnet.acc.NetworkAdapter
import
com.ccnet.acc.TestLatencyCallback
import
com.github.shadowsocks.aidl.TrafficStats
import
com.github.shadowsocks.database.ProfileManager
...
...
@@ -72,6 +73,7 @@ class TrafficMonitor(statFile: File?) {
override
fun
run
()
{
Timber
.
d
(
"TrafficMonitor-NativePing prepare test ${DataStore.pingAccHost}:${DataStore.pingAccPort}"
)
var
bindNetwork
=
NetworkAdapter
.
bindNetwork
while
(
running
)
{
val
resultCode
=
AccVpnService
.
instance
.
testLatency
(
DataStore
.
pingProxyServer
,
...
...
@@ -80,10 +82,15 @@ class TrafficMonitor(statFile: File?) {
DataStore
.
pingIntervalSec
,
DataStore
.
pingTimeoutMillis
,
object
:
TestLatencyCallback
{
override
fun
onLatency
(
latency
:
Int
)
{
override
fun
onLatency
(
latency
:
Int
)
:
Boolean
{
Timber
.
d
(
"TrafficMonitor-NativeTcpPing test ${current.latency}"
)
current
.
latency
=
latency
dirty
=
true
val
cont
=
bindNetwork
==
NetworkAdapter
.
bindNetwork
if
(!
cont
)
{
bindNetwork
=
NetworkAdapter
.
bindNetwork
}
return
cont
}
}
)
...
...
core/src/main/jniLibs/arm64-v8a/libccnetacc.so
View file @
b9828bfe
No preview for this file type
core/src/main/jniLibs/armeabi-v7a/libccnetacc.so
View file @
b9828bfe
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment