log for com.github.shadowsocks.tv:5020650
== Installed Android Tools ==
2022-05-10 03:32:09,950 DEBUG: Reading 'config.yml'
2022-05-10 03:32:09,960 INFO: Using /opt/android-sdk/build-tools/29.0.3/apksigner
2022-05-10 03:32:09,963 INFO: Creating log directory
2022-05-10 03:32:09,963 INFO: Creating temporary directory
2022-05-10 03:32:09,964 INFO: Creating output directory
2022-05-10 03:32:09,966 DEBUG: Getting git vcs interface for https://github.com/shadowsocks/shadowsocks-android.git
2022-05-10 03:32:09,966 DEBUG: > git --version
git version 2.11.0
2022-05-10 03:32:10,178 INFO: Using git version 2.11.0
2022-05-10 03:32:10,178 DEBUG: Checking 5.2.6-nightly
2022-05-10 03:32:10,178 INFO: Building version 5.2.6-nightly (5020650) of com.github.shadowsocks.tv
2022-05-10 03:32:10,179 INFO: Running 'sudo' commands in /home/vagrant
2022-05-10 03:32:10,179 DEBUG: > sudo DEBIAN_FRONTEND=noninteractive bash -x -c apt-get update || apt-get update && apt-get install openjdk-11-jdk-headless && update-alternatives --auto java
+ apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://security.debian.org/debian-security stretch/updates InRelease [53.0 kB]
Hit:3 http://deb.debian.org/debian stretch-updates InRelease
Get:4 http://deb.debian.org/debian stretch-backports-sloppy InRelease [46.7 kB]
Get:5 http://deb.debian.org/debian stretch-backports InRelease [91.8 kB]
Get:6 http://deb.debian.org/debian testing InRelease [130 kB]
Hit:7 http://deb.debian.org/debian stretch Release
Get:8 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [764 kB]
Get:9 http://security.debian.org/debian-security stretch/updates/main i386 Packages [764 kB]
Get:10 http://security.debian.org/debian-security stretch/updates/main Translation-en [357 kB]
Get:11 http://deb.debian.org/debian testing/main i386 Packages.diff/Index [63.6 kB]
Get:13 http://deb.debian.org/debian testing/main amd64 Packages.diff/Index [63.6 kB]
Get:14 http://deb.debian.org/debian testing/main Translation-en.diff/Index [63.6 kB]
Get:15 http://deb.debian.org/debian testing/main i386 Packages T-2022-05-10-0210.05-F-2022-05-09-2003.58.pdiff [26.3 kB]
Get:16 http://deb.debian.org/debian testing/main amd64 Packages T-2022-05-10-0210.05-F-2022-05-09-2003.58.pdiff [26.3 kB]
Get:15 http://deb.debian.org/debian testing/main i386 Packages T-2022-05-10-0210.05-F-2022-05-09-2003.58.pdiff [26.3 kB]
Get:16 http://deb.debian.org/debian testing/main amd64 Packages T-2022-05-10-0210.05-F-2022-05-09-2003.58.pdiff [26.3 kB]
Get:17 http://deb.debian.org/debian testing/main Translation-en T-2022-05-10-0210.05-F-2022-05-10-0210.05.pdiff [3,194 B]
Get:17 http://deb.debian.org/debian testing/main Translation-en T-2022-05-10-0210.05-F-2022-05-10-0210.05.pdiff [3,194 B]
Fetched 2,454 kB in 4s (547 kB/s)
Reading package lists...
+ apt-get install openjdk-11-jdk-headless
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libasound2 libasound2-data openjdk-11-jre-headless
Suggested packages:
libasound2-plugins alsa-utils openjdk-11-demo openjdk-11-source libnss-mdns
fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
The following NEW packages will be installed:
libasound2 libasound2-data openjdk-11-jdk-headless openjdk-11-jre-headless
0 upgraded, 4 newly installed, 0 to remove and 2 not upgraded.
Need to get 230 MB of archives.
After this operation, 374 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 libasound2-data all 1.1.3-5 [173 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 libasound2 amd64 1.1.3-5 [497 kB]
Get:3 http://deb.debian.org/debian stretch-backports/main amd64 openjdk-11-jre-headless amd64 11.0.6+10-1~bpo9+1 [37.4 MB]
Get:4 http://deb.debian.org/debian stretch-backports/main amd64 openjdk-11-jdk-headless amd64 11.0.6+10-1~bpo9+1 [192 MB]
Fetched 230 MB in 3s (72.4 MB/s)
Selecting previously unselected package libasound2-data.
(Reading database ... 64892 files and directories currently installed.)
Preparing to unpack .../libasound2-data_1.1.3-5_all.deb ...
Unpacking libasound2-data (1.1.3-5) ...
Selecting previously unselected package libasound2:amd64.
Preparing to unpack .../libasound2_1.1.3-5_amd64.deb ...
Unpacking libasound2:amd64 (1.1.3-5) ...
Selecting previously unselected package openjdk-11-jre-headless:amd64.
Preparing to unpack .../openjdk-11-jre-headless_11.0.6+10-1~bpo9+1_amd64.deb ...
Unpacking openjdk-11-jre-headless:amd64 (11.0.6+10-1~bpo9+1) ...
Selecting previously unselected package openjdk-11-jdk-headless:amd64.
Preparing to unpack .../openjdk-11-jdk-headless_11.0.6+10-1~bpo9+1_amd64.deb ...
Unpacking openjdk-11-jdk-headless:amd64 (11.0.6+10-1~bpo9+1) ...
Setting up libasound2-data (1.1.3-5) ...
Setting up libasound2:amd64 (1.1.3-5) ...
Processing triggers for libc-bin (2.24-11+deb9u4) ...
Setting up openjdk-11-jre-headless:amd64 (11.0.6+10-1~bpo9+1) ...
Setting up openjdk-11-jdk-headless:amd64 (11.0.6+10-1~bpo9+1) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jaotc to provide /usr/bin/jaotc (jaotc) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode
+ update-alternatives --auto java
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
2022-05-10 03:32:33,651 DEBUG: > sudo passwd --lock root
passwd: password expiry information changed.
2022-05-10 03:32:33,857 DEBUG: > sudo SUDO_FORCE_REMOVE=yes dpkg --purge sudo
(Reading database ... 65549 files and directories currently installed.)
Removing sudo (1.8.19p1-2.1+deb9u3) ...
Purging configuration files for sudo (1.8.19p1-2.1+deb9u3) ...
Processing triggers for systemd (232-25+deb9u13) ...
2022-05-10 03:32:38,721 INFO: Getting source for revision 1c73e48cc6e590aa628179ab6687558c901693a5
2022-05-10 03:32:38,721 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:38,721 DEBUG: > git rev-parse --show-toplevel
2022-05-10 03:32:38,925 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:38,925 DEBUG: > git submodule foreach --recursive git reset --hard
2022-05-10 03:32:39,332 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:39,332 DEBUG: > git reset --hard
2022-05-10 03:32:39,828 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:39,828 DEBUG: > git submodule foreach --recursive git clean -dffx
2022-05-10 03:32:40,307 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:40,308 DEBUG: > git clean -dffx
2022-05-10 03:32:40,412 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:40,412 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com fetch origin
2022-05-10 03:32:40,987 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:40,987 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com remote prune origin
2022-05-10 03:32:41,291 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:41,291 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com fetch --prune --tags --force origin
2022-05-10 03:32:41,599 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:41,600 DEBUG: > git remote set-head origin --auto
2022-05-10 03:32:42,005 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:42,005 DEBUG: > git checkout -f 1c73e48cc6e590aa628179ab6687558c901693a5
2022-05-10 03:32:42,220 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:42,221 DEBUG: > git clean -dffx
2022-05-10 03:32:42,326 INFO: Initialising submodules
2022-05-10 03:32:42,327 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:42,327 DEBUG: > git rev-parse --show-toplevel
2022-05-10 03:32:42,544 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:42,545 DEBUG: > git submodule sync
2022-05-10 03:32:42,861 DEBUG: Directory: build/com.github.shadowsocks.tv
2022-05-10 03:32:42,861 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com submodule update --init --force --recursive
Submodule path 'core/src/main/jni/badvpn': checked out 'fb01eb983915c9a09a690ad44c6028dd87500ec7'
Submodule path 'core/src/main/jni/libancillary': checked out '311e5d14f593f16c785bc6605220517eb1f21f6b'
Submodule path 'core/src/main/jni/libevent': checked out 'f29f07bc8c43eec96f227e6f6eede32b3af66168'
Submodule path 'core/src/main/jni/redsocks': checked out 'd9954892ba96627748efab2901f38d7e20d6d0a2'
Submodule path 'core/src/main/rust/shadowsocks-rust': checked out 'f35762cbb7f917261f6ea9735e760a1f1311215b'
2022-05-10 03:32:43,366 INFO: Collecting source libraries
2022-05-10 03:32:43,386 DEBUG: Removing debuggable flags from build/srclib/rustup
2022-05-10 03:32:43,395 INFO: Creating local.properties file at build/com.github.shadowsocks.tv/local.properties
2022-05-10 03:32:43,396 INFO: Creating local.properties file at build/com.github.shadowsocks.tv/tv/local.properties
2022-05-10 03:32:43,396 DEBUG: Removing debuggable flags from build/com.github.shadowsocks.tv/tv
2022-05-10 03:32:43,397 INFO: Removing specified files
2022-05-10 03:32:43,397 INFO: Removing core/src/main/jni/badvpn/lime
2022-05-10 03:32:43,398 INFO: Removing mobile
2022-05-10 03:32:43,402 INFO: Removing core/src/main/jni/badvpn/lwip/test/fuzz/inputs
2022-05-10 03:32:43,416 INFO: Running 'prebuild' commands in build/com.github.shadowsocks.tv/tv
2022-05-10 03:32:43,416 DEBUG: Directory: build/com.github.shadowsocks.tv/tv
2022-05-10 03:32:43,416 DEBUG: > bash -x -c -- echo "rust.rustcCommand=$HOME/.cargo/bin/rustc" >> ../local.properties && echo "rust.cargoCommand=$HOME/.cargo/bin/cargo" >> ../local.properties && echo "rust.pythonCommand=/usr/bin/python3" >> ../local.properties && sed -i -e '/gms/d' -e '/firebase/d' ../build.gradle.kts build.gradle.kts && sed -i -e '/gms/d' -e '/firebase/d' -e '/kotlinx-coroutines-play-services/d' ../core/build.gradle.kts && pushd ../core/src/main && sed -i -E -e '/service_subscription_working/s/%d(.*)%d/%1$d\1%2$d/' res/*/strings.xml && cd java/com/github/shadowsocks && sed -i -e '/firebase/Id' Core.kt bg/BaseService.kt && popd && sed -i -e '/OssLicensesMenuActivity/d' src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt && sed -i -z -E -e 's/<Preference[^<]+ossLicenses[^>]+>//' src/main/res/xml/pref_main.xml && sed -i -e '/isEnable/s/true/false/' ../buildSrc/src/main/kotlin/Helpers.kt
+ echo rust.rustcCommand=/home/vagrant/.cargo/bin/rustc
+ echo rust.cargoCommand=/home/vagrant/.cargo/bin/cargo
+ echo rust.pythonCommand=/usr/bin/python3
+ sed -i -e /gms/d -e /firebase/d ../build.gradle.kts build.gradle.kts
+ sed -i -e /gms/d -e /firebase/d -e /kotlinx-coroutines-play-services/d ../core/build.gradle.kts
+ pushd ../core/src/main
~/build/com.github.shadowsocks.tv/core/src/main ~/build/com.github.shadowsocks.tv/tv
+ sed -i -E -e '/service_subscription_working/s/%d(.*)%d/%1$d\1%2$d/' res/values-ar/strings.xml res/values-es/strings.xml res/values-fa/strings.xml res/values-fr/strings.xml res/values-ja/strings.xml res/values-ko/strings.xml res/values-ru/strings.xml res/values/strings.xml res/values-tr/strings.xml res/values-zh-rCN/strings.xml res/values-zh-rTW/strings.xml
+ cd java/com/github/shadowsocks
+ sed -i -e /firebase/Id Core.kt bg/BaseService.kt
+ popd
~/build/com.github.shadowsocks.tv/tv
+ sed -i -e /OssLicensesMenuActivity/d src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
+ sed -i -z -E -e 's/<Preference[^<]+ossLicenses[^>]+>//' src/main/res/xml/pref_main.xml
+ sed -i -e /isEnable/s/true/false/ ../buildSrc/src/main/kotlin/Helpers.kt
2022-05-10 03:32:43,622 INFO: Cleaning Gradle project...
2022-05-10 03:32:43,623 DEBUG: Directory: build/com.github.shadowsocks.tv/tv
2022-05-10 03:32:43,623 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid clean
Found 7.2 via distributionUrl
Downloading missing gradle version 7.2
cachedir /home/vagrant/.cache/fdroidserver
/home/vagrant/.cache/fdroidserver/gradle-7.2-bin.zip: OK
Running /opt/gradle/versions/7.2/bin/gradle clean
Welcome to Gradle 7.2!
Here are the highlights of this release:
- Toolchain support for Scala
- More cache hits when Java source files have platform-specific line endings
- More resilient remote HTTP build cache behavior
For more details see https://docs.gradle.org/7.2/release-notes.html
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.2/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build
> Task :buildSrc:compileKotlin
w: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Java
w: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (115, 65): 'VariantOutput' is deprecated. Deprecated in Java
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy NO-SOURCE
> Task :buildSrc:pluginDescriptors
> Task :buildSrc:processResources NO-SOURCE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:inspectClassesForKotlinIC
> Task :buildSrc:jar
:jar: No valid plugin descriptors were found in META-INF/gradle-plugins
> Task :buildSrc:assemble
> Task :buildSrc:compileTestKotlin NO-SOURCE
> Task :buildSrc:pluginUnderTestMetadata
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:validatePlugins
> Task :buildSrc:check
> Task :buildSrc:build
> Configure project :core
WARNING:The option setting 'android.enableR8.fullMode=true' is experimental.
The current default is 'false'.
WARNING:The option setting 'android.enableResourceOptimizations=false' is deprecated.
The current default is 'true'.
It will be removed in version 8.0 of the Android Gradle plugin.
Warning: No match found for [DefaultTaskExecutionRequest{args=[clean],projectPath='null',rootDir='null'}]
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
IO exception while downloading manifest:
java.io.FileNotFoundException: https://dl.google.com/android/repository/sys-img/android-desktop/sys-img2-2.xml
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1915)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openUrl(DownloadCache.java:246)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.downloadAndCache(DownloadCache.java:622)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openCachedUrl(DownloadCache.java:545)
at com.android.sdklib.repository.legacy.LegacyDownloader.downloadAndStream(LegacyDownloader.java:65)
at com.android.repository.impl.downloader.LocalFileAwareDownloader.downloadAndStream(LocalFileAwareDownloader.java:51)
at com.android.repository.impl.manager.RemoteRepoLoaderImpl.lambda$fetchPackages$0(RemoteRepoLoaderImpl.java:138)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
> Configure project :plugin
Checking the license for package Android SDK Build-Tools 31 in /opt/android-sdk/licenses
License for package Android SDK Build-Tools 31 accepted.
Preparing "Install Android SDK Build-Tools 31 (revision: 31.0.0)".
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" ready.
Installing Android SDK Build-Tools 31 in /opt/android-sdk/build-tools/31.0.0
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" complete.
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" finished.
Checking the license for package Android SDK Platform 31 in /opt/android-sdk/licenses
License for package Android SDK Platform 31 accepted.
Preparing "Install Android SDK Platform 31 (revision: 1)".
"Install Android SDK Platform 31 (revision: 1)" ready.
Installing Android SDK Platform 31 in /opt/android-sdk/platforms/android-31
"Install Android SDK Platform 31 (revision: 1)" complete.
"Install Android SDK Platform 31 (revision: 1)" finished.
> Configure project :tv
Warning: No match found for [DefaultTaskExecutionRequest{args=[clean],projectPath='null',rootDir='null'}]
> Task :tv:clean UP-TO-DATE
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 1m 53s
7 actionable tasks: 6 executed, 1 up-to-date
2022-05-10 03:34:40,493 INFO: Scanning source for common problems...
2022-05-10 03:34:40,500 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
2022-05-10 03:34:40,593 INFO: Creating source tarball...
2022-05-10 03:34:41,910 INFO: Running 'build' commands in build/com.github.shadowsocks.tv/tv
2022-05-10 03:34:41,910 DEBUG: Directory: build/com.github.shadowsocks.tv/tv
2022-05-10 03:34:41,910 DEBUG: > bash -x -c /home/vagrant/build/srclib/rustup/rustup-init.sh -y && source $HOME/.cargo/env && rustup default 1.60.0 && cd ../core/src/main/rust/shadowsocks-rust && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
+ /home/vagrant/build/srclib/rustup/rustup-init.sh -y
info: downloading installer
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2022-04-07, rust version 1.60.0 (7737e0b5c 2022-04-04)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'
stable-x86_64-unknown-linux-gnu installed - rustc 1.60.0 (7737e0b5c 2022-04-04)
Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, run:
source $HOME/.cargo/env
+ source /home/vagrant/.cargo/env
++ case ":${PATH}:" in
++ export PATH=/home/vagrant/.cargo/bin:/opt/android-sdk/ndk/21.4.7075529:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/gradle/bin
++ PATH=/home/vagrant/.cargo/bin:/opt/android-sdk/ndk/21.4.7075529:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/gradle/bin
+ rustup default 1.60.0
info: syncing channel updates for '1.60.0-x86_64-unknown-linux-gnu'
info: latest update on 2022-04-07, rust version 1.60.0 (7737e0b5c 2022-04-04)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
info: default toolchain set to '1.60.0-x86_64-unknown-linux-gnu'
1.60.0-x86_64-unknown-linux-gnu installed - rustc 1.60.0 (7737e0b5c 2022-04-04)
+ cd ../core/src/main/rust/shadowsocks-rust
+ rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
info: syncing channel updates for 'nightly-2021-06-03-x86_64-unknown-linux-gnu'
info: latest update on 2021-06-03, rust version 1.54.0-nightly (dbe459ded 2021-06-02)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
info: downloading component 'rust-std' for 'armv7-linux-androideabi'
info: installing component 'rust-std' for 'armv7-linux-androideabi'
info: downloading component 'rust-std' for 'aarch64-linux-android'
info: installing component 'rust-std' for 'aarch64-linux-android'
info: downloading component 'rust-std' for 'i686-linux-android'
info: installing component 'rust-std' for 'i686-linux-android'
info: downloading component 'rust-std' for 'x86_64-linux-android'
info: installing component 'rust-std' for 'x86_64-linux-android'
2022-05-10 03:35:26,095 INFO: Building Gradle project...
2022-05-10 03:35:26,095 DEBUG: Directory: build/com.github.shadowsocks.tv/tv
2022-05-10 03:35:26,095 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid assembleFreedomRelease
Found 7.2 via distributionUrl
Running /opt/gradle/versions/7.2/bin/gradle assembleFreedomRelease
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.2/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build
> Task :buildSrc:compileKotlin
w: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Java
w: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (115, 65): 'VariantOutput' is deprecated. Deprecated in Java
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy NO-SOURCE
> Task :buildSrc:pluginDescriptors
> Task :buildSrc:processResources NO-SOURCE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:inspectClassesForKotlinIC
> Task :buildSrc:jar
:jar: No valid plugin descriptors were found in META-INF/gradle-plugins
> Task :buildSrc:assemble
> Task :buildSrc:compileTestKotlin NO-SOURCE
> Task :buildSrc:pluginUnderTestMetadata
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:validatePlugins
> Task :buildSrc:check
> Task :buildSrc:build
> Configure project :core
WARNING:The option setting 'android.enableR8.fullMode=true' is experimental.
The current default is 'false'.
WARNING:The option setting 'android.enableResourceOptimizations=false' is deprecated.
The current default is 'true'.
It will be removed in version 8.0 of the Android Gradle plugin.
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
WARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
> Task :core:preBuild UP-TO-DATE
> Task :core:preReleaseBuild UP-TO-DATE
> Task :plugin:preBuild UP-TO-DATE
> Task :plugin:preReleaseBuild UP-TO-DATE
> Task :plugin:compileReleaseAidl NO-SOURCE
> Task :plugin:packageReleaseRenderscript NO-SOURCE
> Task :core:compileReleaseRenderscript NO-SOURCE
> Task :core:generateReleaseBuildConfig
> Task :core:generateReleaseResValues
> Task :core:generateReleaseResources
> Task :core:compileReleaseAidl
> Task :core:packageReleaseResources
> Task :plugin:compileReleaseRenderscript NO-SOURCE
> Task :plugin:generateReleaseResValues
> Task :plugin:generateReleaseResources
> Task :plugin:packageReleaseResources
> Task :core:parseReleaseLocalResources
> Task :plugin:parseReleaseLocalResources
> Task :plugin:generateReleaseBuildConfig
> Task :plugin:processReleaseManifest
> Task :core:processReleaseManifest
/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/AndroidManifest.xml:113:9-114:40 Warning:
provider#com.google.firebase.provider.FirebaseInitProvider was tagged at AndroidManifest.xml:113 to remove other declarations but no other declaration present
> Task :plugin:javaPreCompileRelease
> Task :tv:preBuild UP-TO-DATE
> Task :tv:preFreedomReleaseBuild UP-TO-DATE
> Task :tv:compileFreedomReleaseAidl NO-SOURCE
> Task :core:packageReleaseRenderscript NO-SOURCE
> Task :tv:compileFreedomReleaseRenderscript NO-SOURCE
> Task :core:javaPreCompileRelease
> Task :tv:generateFreedomReleaseBuildConfig
> Task :core:writeReleaseAarMetadata
> Task :plugin:writeReleaseAarMetadata
> Task :tv:generateFreedomReleaseResValues
> Task :tv:generateFreedomReleaseResources
> Task :tv:createFreedomReleaseCompatibleScreenManifests
> Task :core:extractDeepLinksRelease
> Task :plugin:extractDeepLinksRelease
> Task :tv:extractDeepLinksFreedomRelease
> Task :tv:javaPreCompileFreedomRelease
> Task :tv:checkFreedomReleaseAarMetadata
> Task :tv:mergeFreedomReleaseResources
> Task :plugin:generateReleaseRFile
> Task :tv:processFreedomReleaseMainManifest
/home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/AndroidManifest.xml:124:9-126:35 Warning:
provider#com.google.firebase.provider.FirebaseInitProvider was tagged at AndroidManifest.xml:124 to remove other declarations but no other declaration present
> Task :tv:processFreedomReleaseManifest
> Task :core:configureNdkBuildRelease
> Task :core:buildNdkBuildRelease
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: arc4random_addrandom((unsigned char*)buf,
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: error = pipe2(&pump->request.read, O_NONBLOCK);
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warning
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparison
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 4 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 1 warning generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warning
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparison
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: } while (p = p->next);
C/C++: ~~^~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warning
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparison
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)
C/C++: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 13 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: error = pipe2(&pump->request.read, O_NONBLOCK);
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: arc4random_addrandom((unsigned char*)buf,
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warning
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparison
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 4 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 1 warning generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:450:63: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
C/C++: if ((sock2 = accept(sock, (struct sockaddr *)&remote, &t)) == -1) {
C/C++: ^~
C/C++: /opt/android-sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/socket.h:301:71: note: passing argument to parameter '__addr_length' here
C/C++: __socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);
C/C++: ^
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warning
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparison
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: } while (p = p->next);
C/C++: ~~^~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warning
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparison
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)
C/C++: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 14 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: arc4random_addrandom((unsigned char*)buf,
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: error = pipe2(&pump->request.read, O_NONBLOCK);
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warning
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparison
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 4 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 1 warning generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warning
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparison
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: } while (p = p->next);
C/C++: ~~^~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warning
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparison
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)
C/C++: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 13 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: error = pipe2(&pump->request.read, O_NONBLOCK);
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]
C/C++: arc4random_addrandom((unsigned char*)buf,
C/C++: ^
C/C++: 1 warning generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warning
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparison
C/C++: while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:183:56: warning: taking address of packed member 'data' of class or structure 'epoll_event' may result in an unaligned pointer value [-Waddress-of-packed-member]
C/C++: bfd->epoll_returned_ptr = (BFileDescriptor **)&event->data.ptr;
C/C++: ^~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warning
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparison
C/C++: while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 5 warnings generated.
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(res)
C/C++: ^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 1 warning generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: 10 warnings generated.
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:
C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = n1->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = n1->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[!side] = c) {
C/C++: ~~~~~~~~~~~~~~~~^~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[!side] = c) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->parent = n2->parent) {
C/C++: ~~~~~~~~~~~^~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->parent = n2->parent) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->parent = temp) {
C/C++: ~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->parent = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[0] = n2->link[0]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[0] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[0] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ~~~~~~~~~~~~^~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n1->link[1] = n2->link[1]) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: if (n2->link[1] = temp) {
C/C++: ~~~~~~~~~~~~^~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warning
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparison
C/C++: if (n2->link[1] = temp) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:450:63: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
C/C++: if ((sock2 = accept(sock, (struct sockaddr *)&remote, &t)) == -1) {
C/C++: ^~
C/C++: /opt/android-sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/socket.h:301:71: note: passing argument to parameter '__addr_length' here
C/C++: __socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);
C/C++: ^
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warning
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparison
C/C++: while (node = LinkedList1_GetFirst(&tcp_clients)) {
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
C/C++: } while (p = p->next);
C/C++: ~~^~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warning
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ( )
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparison
C/C++: } while (p = p->next);
C/C++: ^
C/C++: ==
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]
C/C++: ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)
C/C++: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C/C++: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'
C/C++: #define ASSERT_EXECUTE(e) { (e); }
C/C++: ^
C/C++: 14 warnings generated.
> Task :plugin:mergeReleaseJniLibFolders
> Task :plugin:mergeReleaseNativeLibs NO-SOURCE
> Task :plugin:stripReleaseDebugSymbols NO-SOURCE
> Task :plugin:copyReleaseJniLibsProjectOnly
> Task :generateLinkerWrapper
> Task :core:cargoBuildArm
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
Updating crates.io index
> Task :tv:processFreedomReleaseManifestForPackage
> Task :core:cargoBuildArm
Downloading crates ...
Downloaded humantime v2.1.0
Downloaded anyhow v1.0.42
Downloaded qrcode v0.12.0
Downloaded proc-macro-nested v0.1.7
Downloaded exitcode v1.1.2
Downloaded bloomfilter v1.0.5
Downloaded futures-channel v0.3.16
Downloaded spin v0.9.2
Downloaded parking_lot v0.11.1
Downloaded generic-array v0.12.4
Downloaded rand v0.8.4
Downloaded serde_yaml v0.8.17
Downloaded async-trait v0.1.50
Downloaded base64 v0.13.0
Downloaded crossbeam-channel v0.5.1
Downloaded sha-1 v0.8.2
Downloaded rand_chacha v0.3.1
Downloaded unicode-normalization v0.1.19
Downloaded json5 v0.3.0
Downloaded regex v1.5.4
Downloaded thiserror v1.0.26
Downloaded smallvec v1.6.1
Downloaded linked-hash-map v0.5.4
Downloaded shadowsocks-crypto v0.2.4
Downloaded num-traits v0.2.14
Downloaded unicode-width v0.1.8
Downloaded socket2 v0.4.0
Downloaded inotify-sys v0.1.5
Downloaded same-file v1.0.6
Downloaded proc-macro-hack v0.5.19
Downloaded regex-syntax v0.6.25
Downloaded pest v2.1.3
Downloaded pin-project v1.0.8
Downloaded unsafe-any v0.4.2
Downloaded match_cfg v0.1.0
Downloaded ipnet v2.3.1
Downloaded bit-vec v0.6.3
Downloaded traitobject v0.1.0
Downloaded log v0.4.14
Downloaded maplit v1.0.2
Downloaded fake-simd v0.1.2
Downloaded digest v0.8.1
Downloaded byte-tools v0.3.1
Downloaded boxfnonce v0.1.1
Downloaded block-buffer v0.7.3
Downloaded opaque-debug v0.2.3
Downloaded hostname v0.3.1
Downloaded futures-core v0.3.16
Downloaded checked_int_cast v1.0.0
Downloaded ansi_term v0.11.0
Downloaded ring v0.16.20
Downloaded serde_urlencoded v0.7.0
Downloaded strsim v0.8.0
Downloaded siphasher v0.3.5
Downloaded mio v0.7.13
Downloaded untrusted v0.7.1
Downloaded quote v1.0.9
Downloaded unicode-segmentation v1.8.0
Downloaded slab v0.4.3
Downloaded serde_derive v1.0.126
Downloaded ucd-trie v0.1.3
Downloaded unicode-xid v0.2.2
Downloaded vec_map v0.8.2
Downloaded tinyvec v1.3.1
Downloaded memoffset v0.6.4
Downloaded yaml-rust v0.4.5
Downloaded unicode-bidi v0.3.5
Downloaded tokio-macros v1.3.0
Downloaded trust-dns-proto v0.20.3
Downloaded matches v0.1.8
Downloaded trust-dns-resolver v0.20.3
Downloaded syn v1.0.74
Downloaded thread-id v3.3.0
Downloaded log4rs v1.0.0
Downloaded pin-project-internal v1.0.8
Downloaded resolv-conf v0.7.0
Downloaded pest_derive v2.1.0
Downloaded tokio-io-timeout v1.1.1
Downloaded walkdir v2.3.2
Downloaded tokio v1.9.0
Downloaded time v0.1.43
Downloaded futures-io v0.3.16
Downloaded serde v1.0.126
Downloaded bitflags v1.2.1
Downloaded inotify v0.9.3
Downloaded clap v2.33.3
Downloaded thiserror-impl v1.0.26
Downloaded crypto2 v0.1.2
Downloaded chrono v0.4.19
Downloaded daemonize v0.4.1
Downloaded cc v1.0.69
Downloaded bytes v1.0.1
Downloaded libc v0.2.98
Downloaded typenum v1.13.0
Downloaded data-encoding v2.3.2
Downloaded term_size v0.3.2
Downloaded futures-sink v0.3.16
Downloaded enum-as-inner v0.3.3
Downloaded url v2.2.2
Downloaded cfg-if v1.0.0
Downloaded byteorder v1.4.3
Downloaded textwrap v0.11.0
Downloaded pest_meta v2.1.3
Downloaded instant v0.1.10
Downloaded ppv-lite86 v0.2.10
Downloaded num-integer v0.1.44
Downloaded signal-hook-registry v1.4.0
Downloaded rand_core v0.6.3
Downloaded quick-error v1.2.3
Downloaded percent-encoding v2.1.0
Downloaded lru-cache v0.1.2
Downloaded lazy_static v1.4.0
Downloaded num_cpus v1.13.0
Downloaded aho-corasick v0.7.18
Downloaded getrandom v0.2.3
Downloaded futures-util v0.3.16
Downloaded futures-executor v0.3.16
Downloaded futures v0.3.16
Downloaded filetime v0.2.14
Downloaded crossbeam-utils v0.8.5
Downloaded byte_string v1.0.0
Downloaded arc-swap v1.3.0
Downloaded futures-macro v0.3.16
Downloaded lru_time_cache v0.11.11
Downloaded form_urlencoded v1.0.1
Downloaded serde_json v1.0.64
Downloaded serde-value v0.7.0
Downloaded ryu v1.0.5
Downloaded pin-project-lite v0.2.7
Downloaded parking_lot_core v0.8.3
Downloaded once_cell v1.8.0
Downloaded notify v5.0.0-pre.11
Downloaded itoa v0.4.7
Downloaded iprange v0.6.4
Downloaded tinyvec_macros v0.1.0
Downloaded spin v0.5.2
Downloaded scopeguard v1.1.0
Downloaded pin-utils v0.1.0
Downloaded idna v0.2.3
Downloaded heck v0.3.3
Downloaded fnv v1.0.7
Downloaded autocfg v1.0.1
Downloaded arc-swap v0.4.8
Downloaded memchr v2.4.0
Downloaded proc-macro2 v1.0.28
Downloaded ordered-float v2.7.0
Downloaded nix v0.22.0
Downloaded lock_api v0.4.4
Downloaded futures-task v0.3.16
Downloaded atty v0.2.14
Downloaded block-padding v0.1.5
Downloaded pest_generator v2.1.3
Downloaded derivative v2.2.0
Downloaded dtoa v0.4.8
Downloaded log-mdc v0.1.0
Downloaded typemap v0.3.3
Downloading crates ...
Downloaded env_logger v0.9.0
Compiling libc v0.2.98
Compiling proc-macro2 v1.0.28
Compiling unicode-xid v0.2.2
Compiling syn v1.0.74
Compiling autocfg v1.0.1
Compiling cfg-if v1.0.0
Compiling serde_derive v1.0.126
Compiling serde v1.0.126
Compiling memchr v2.4.0
Compiling scopeguard v1.1.0
Compiling log v0.4.14
Compiling proc-macro-hack v0.5.19
Compiling futures-core v0.3.16
Compiling futures-task v0.3.16
Compiling matches v0.1.8
Compiling futures-channel v0.3.16
Compiling pin-project-lite v0.2.7
Compiling proc-macro-nested v0.1.7
Compiling smallvec v1.6.1
Compiling futures-sink v0.3.16
Compiling ppv-lite86 v0.2.10
Compiling once_cell v1.8.0
Compiling tinyvec_macros v0.1.0
Compiling ryu v1.0.5
Compiling linked-hash-map v0.5.4
Compiling lazy_static v1.4.0
Compiling percent-encoding v2.1.0
Compiling futures-io v0.3.16
Compiling bitflags v1.2.1
Compiling slab v0.4.3
Compiling pin-utils v0.1.0
Compiling async-trait v0.1.50
Compiling unicode-segmentation v1.8.0
Compiling ucd-trie v0.1.3
Compiling bytes v1.0.1
Compiling cc v1.0.69
Compiling crossbeam-utils v0.8.5
Compiling ipnet v2.3.1
Compiling itoa v0.4.7
Compiling match_cfg v0.1.0
Compiling maplit v1.0.2
Compiling serde_json v1.0.64
Compiling untrusted v0.7.1
Compiling anyhow v1.0.42
Compiling same-file v1.0.6
Compiling data-encoding v2.3.2
Compiling traitobject v0.1.0
Compiling quick-error v1.2.3
Compiling spin v0.5.2
Compiling siphasher v0.3.5
Compiling bit-vec v0.6.3
Compiling crypto2 v0.1.2
Compiling dtoa v0.4.8
Compiling regex-syntax v0.6.25
Compiling fnv v1.0.7
Compiling log-mdc v0.1.0
Compiling byte_string v1.0.0
Compiling checked_int_cast v1.0.0
Compiling arc-swap v0.4.8
Compiling unicode-width v0.1.8
Compiling humantime v2.1.0
Compiling arc-swap v1.3.0
Compiling base64 v0.13.0
Compiling boxfnonce v0.1.1
Compiling ansi_term v0.11.0
Compiling byteorder v1.4.3
Compiling vec_map v0.8.2
Compiling lru_time_cache v0.11.11
Compiling strsim v0.8.0
Compiling exitcode v1.1.2
Compiling instant v0.1.10
Compiling futures-macro v0.3.16
Compiling futures-util v0.3.16
Compiling num-traits v0.2.14
Compiling tokio v1.9.0
Compiling memoffset v0.6.4
Compiling num-integer v0.1.44
Compiling lock_api v0.4.4
Compiling unicode-bidi v0.3.5
Compiling tinyvec v1.3.1
Compiling yaml-rust v0.4.5
Compiling lru-cache v0.1.2
Compiling form_urlencoded v1.0.1
Compiling pest v2.1.3
Compiling iprange v0.6.4
Compiling heck v0.3.3
Compiling walkdir v2.3.2
Compiling unsafe-any v0.4.2
Compiling ring v0.16.20
Compiling qrcode v0.12.0
Compiling spin v0.9.2
Compiling unicode-normalization v0.1.19
Compiling typemap v0.3.3
Compiling pest_meta v2.1.3
Compiling aho-corasick v0.7.18
Compiling quote v1.0.9
Compiling getrandom v0.2.3
Compiling parking_lot_core v0.8.3
Compiling signal-hook-registry v1.4.0
Compiling num_cpus v1.13.0
Compiling hostname v0.3.1
Compiling time v0.1.43
Compiling filetime v0.2.14
Compiling thread-id v3.3.0
Compiling term_size v0.3.2
Compiling socket2 v0.4.0
Compiling atty v0.2.14
Compiling daemonize v0.4.1
Compiling crossbeam-channel v0.5.1
Compiling nix v0.22.0
Compiling idna v0.2.3
Compiling regex v1.5.4
Compiling ordered-float v2.7.0
Compiling rand_core v0.6.3
Compiling parking_lot v0.11.1
Compiling resolv-conf v0.7.0
Compiling textwrap v0.11.0
Compiling notify v5.0.0-pre.11
Compiling url v2.2.2
Compiling chrono v0.4.19
Compiling rand_chacha v0.3.1
Compiling clap v2.33.3
Compiling rand v0.8.4
Compiling pest_generator v2.1.3
Compiling bloomfilter v1.0.5
Compiling shadowsocks-crypto v0.2.4
Compiling thiserror-impl v1.0.26
Compiling tokio-macros v1.3.0
Compiling enum-as-inner v0.3.3
Compiling pin-project-internal v1.0.8
Compiling derivative v2.2.0
Compiling pest_derive v2.1.0
Compiling thiserror v1.0.26
Compiling pin-project v1.0.8
Compiling futures-executor v0.3.16
Compiling futures v0.3.16
Compiling serde-value v0.7.0
Compiling serde_yaml v0.8.17
Compiling serde_urlencoded v0.7.0
Compiling json5 v0.3.0
Compiling mio v0.7.13
Compiling log4rs v1.0.0
Compiling trust-dns-proto v0.20.3
Compiling tokio-io-timeout v1.1.1
Compiling trust-dns-resolver v0.20.3
Compiling shadowsocks v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)
Compiling shadowsocks-service v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)
Compiling shadowsocks-rust v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)
Finished release [optimized] target(s) in 3m 26s
> Task :core:cargoBuildArm64
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
Compiling cfg-if v1.0.0
Compiling scopeguard v1.1.0
Compiling matches v0.1.8
Compiling pin-project-lite v0.2.7
Compiling smallvec v1.6.1
Compiling futures-sink v0.3.16
Compiling tinyvec_macros v0.1.0
Compiling ppv-lite86 v0.2.10
Compiling once_cell v1.8.0
Compiling pin-utils v0.1.0
Compiling slab v0.4.3
Compiling linked-hash-map v0.5.4
Compiling futures-io v0.3.16
Compiling percent-encoding v2.1.0
Compiling lazy_static v1.4.0
Compiling bytes v1.0.1
Compiling ipnet v2.3.1
Compiling itoa v0.4.7
Compiling match_cfg v0.1.0
Compiling data-encoding v2.3.2
Compiling traitobject v0.1.0
Compiling spin v0.5.2
Compiling same-file v1.0.6
Compiling untrusted v0.7.1
Compiling quick-error v1.2.3
Compiling dtoa v0.4.8
Compiling siphasher v0.3.5
Compiling regex-syntax v0.6.25
Compiling bit-vec v0.6.3
Compiling crypto2 v0.1.2
Compiling ucd-trie v0.1.3
Compiling base64 v0.13.0
Compiling humantime v2.1.0
Compiling arc-swap v1.3.0
Compiling unicode-width v0.1.8
Compiling log-mdc v0.1.0
Compiling byte_string v1.0.0
Compiling checked_int_cast v1.0.0
Compiling fnv v1.0.7
Compiling arc-swap v0.4.8
Compiling byteorder v1.4.3
Compiling strsim v0.8.0
Compiling lru_time_cache v0.11.11
Compiling vec_map v0.8.2
Compiling ansi_term v0.11.0
Compiling boxfnonce v0.1.1
Compiling exitcode v1.1.2
Compiling libc v0.2.98
Compiling serde v1.0.126
Compiling memchr v2.4.0
Compiling log v0.4.14
Compiling futures-core v0.3.16
Compiling proc-macro-nested v0.1.7
Compiling futures-task v0.3.16
Compiling futures-channel v0.3.16
Compiling instant v0.1.10
Compiling unicode-bidi v0.3.5
Compiling lock_api v0.4.4
Compiling bitflags v1.2.1
Compiling tinyvec v1.3.1
Compiling form_urlencoded v1.0.1
Compiling ryu v1.0.5
Compiling crossbeam-utils v0.8.5
Compiling lru-cache v0.1.2
Compiling yaml-rust v0.4.5
Compiling serde_json v1.0.64
Compiling unsafe-any v0.4.2
Compiling anyhow v1.0.42
Compiling iprange v0.6.4
Compiling walkdir v2.3.2
Compiling pest v2.1.3
Compiling qrcode v0.12.0
Compiling num-traits v0.2.14
Compiling futures-util v0.3.16
Compiling tokio v1.9.0
Compiling num-integer v0.1.44
Compiling memoffset v0.6.4
Compiling spin v0.9.2
Compiling ring v0.16.20
Compiling unicode-normalization v0.1.19
Compiling typemap v0.3.3
Compiling getrandom v0.2.3
Compiling parking_lot_core v0.8.3
Compiling signal-hook-registry v1.4.0
Compiling num_cpus v1.13.0
Compiling hostname v0.3.1
Compiling time v0.1.43
Compiling filetime v0.2.14
Compiling term_size v0.3.2
Compiling socket2 v0.4.0
Compiling thread-id v3.3.0
Compiling atty v0.2.14
Compiling daemonize v0.4.1
Compiling aho-corasick v0.7.18
Compiling crossbeam-channel v0.5.1
Compiling rand_core v0.6.3
Compiling parking_lot v0.11.1
Compiling idna v0.2.3
Compiling resolv-conf v0.7.0
Compiling textwrap v0.11.0
Compiling nix v0.22.0
Compiling rand_chacha v0.3.1
Compiling regex v1.5.4
Compiling ordered-float v2.7.0
Compiling notify v5.0.0-pre.11
Compiling url v2.2.2
Compiling clap v2.33.3
Compiling rand v0.8.4
Compiling chrono v0.4.19
Compiling thiserror v1.0.26
Compiling pin-project v1.0.8
Compiling bloomfilter v1.0.5
Compiling shadowsocks-crypto v0.2.4
Compiling serde_urlencoded v0.7.0
Compiling serde_yaml v0.8.17
Compiling serde-value v0.7.0
Compiling json5 v0.3.0
Compiling mio v0.7.13
Compiling futures-executor v0.3.16
Compiling log4rs v1.0.0
Compiling futures v0.3.16
Compiling trust-dns-proto v0.20.3
Compiling tokio-io-timeout v1.1.1
Compiling trust-dns-resolver v0.20.3
Compiling shadowsocks v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)
Compiling shadowsocks-service v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)
Compiling shadowsocks-rust v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)
Finished release [optimized] target(s) in 2m 37s
> Task :core:cargoBuildX86
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
Compiling cfg-if v1.0.0
Compiling scopeguard v1.1.0
Compiling smallvec v1.6.1
Compiling matches v0.1.8
Compiling pin-project-lite v0.2.7
Compiling tinyvec_macros v0.1.0
Compiling futures-sink v0.3.16
Compiling ppv-lite86 v0.2.10
Compiling once_cell v1.8.0
Compiling pin-utils v0.1.0
Compiling linked-hash-map v0.5.4
Compiling slab v0.4.3
Compiling lazy_static v1.4.0
Compiling percent-encoding v2.1.0
Compiling futures-io v0.3.16
Compiling bytes v1.0.1
Compiling itoa v0.4.7
Compiling ipnet v2.3.1
Compiling match_cfg v0.1.0
Compiling quick-error v1.2.3
Compiling traitobject v0.1.0
Compiling data-encoding v2.3.2
Compiling untrusted v0.7.1
Compiling spin v0.5.2
Compiling same-file v1.0.6
Compiling dtoa v0.4.8
Compiling bit-vec v0.6.3
Compiling siphasher v0.3.5
Compiling ucd-trie v0.1.3
Compiling crypto2 v0.1.2
Compiling regex-syntax v0.6.25
Compiling byte_string v1.0.0
Compiling unicode-width v0.1.8
Compiling arc-swap v0.4.8
Compiling fnv v1.0.7
Compiling checked_int_cast v1.0.0
Compiling base64 v0.13.0
Compiling humantime v2.1.0
Compiling log-mdc v0.1.0
Compiling arc-swap v1.3.0
Compiling vec_map v0.8.2
Compiling byteorder v1.4.3
Compiling strsim v0.8.0
Compiling lru_time_cache v0.11.11
Compiling ansi_term v0.11.0
Compiling boxfnonce v0.1.1
Compiling exitcode v1.1.2
Compiling libc v0.2.98
Compiling serde v1.0.126
Compiling memchr v2.4.0
Compiling log v0.4.14
Compiling futures-core v0.3.16
Compiling proc-macro-nested v0.1.7
Compiling futures-task v0.3.16
Compiling futures-channel v0.3.16
Compiling instant v0.1.10
Compiling tinyvec v1.3.1
Compiling lock_api v0.4.4
Compiling unicode-bidi v0.3.5
Compiling ryu v1.0.5
Compiling bitflags v1.2.1
Compiling crossbeam-utils v0.8.5
Compiling lru-cache v0.1.2
Compiling yaml-rust v0.4.5
Compiling form_urlencoded v1.0.1
Compiling serde_json v1.0.64
Compiling anyhow v1.0.42
Compiling unsafe-any v0.4.2
Compiling iprange v0.6.4
Compiling walkdir v2.3.2
Compiling pest v2.1.3
Compiling qrcode v0.12.0
Compiling futures-util v0.3.16
Compiling num-traits v0.2.14
Compiling tokio v1.9.0
Compiling num-integer v0.1.44
Compiling memoffset v0.6.4
Compiling spin v0.9.2
Compiling ring v0.16.20
Compiling unicode-normalization v0.1.19
Compiling typemap v0.3.3
Compiling aho-corasick v0.7.18
Compiling getrandom v0.2.3
Compiling parking_lot_core v0.8.3
Compiling num_cpus v1.13.0
Compiling signal-hook-registry v1.4.0
Compiling hostname v0.3.1
Compiling filetime v0.2.14
Compiling time v0.1.43
Compiling thread-id v3.3.0
Compiling socket2 v0.4.0
Compiling term_size v0.3.2
Compiling atty v0.2.14
Compiling daemonize v0.4.1
Compiling crossbeam-channel v0.5.1
Compiling nix v0.22.0
Compiling idna v0.2.3
Compiling regex v1.5.4
Compiling ordered-float v2.7.0
Compiling rand_core v0.6.3
Compiling parking_lot v0.11.1
Compiling resolv-conf v0.7.0
Compiling textwrap v0.11.0
Compiling notify v5.0.0-pre.11
Compiling url v2.2.2
Compiling chrono v0.4.19
Compiling rand_chacha v0.3.1
Compiling clap v2.33.3
Compiling thiserror v1.0.26
Compiling pin-project v1.0.8
Compiling rand v0.8.4
Compiling serde-value v0.7.0
Compiling serde_urlencoded v0.7.0
Compiling serde_yaml v0.8.17
Compiling json5 v0.3.0
Compiling mio v0.7.13
Compiling bloomfilter v1.0.5
Compiling shadowsocks-crypto v0.2.4
Compiling log4rs v1.0.0
Compiling futures-executor v0.3.16
Compiling futures v0.3.16
Compiling trust-dns-proto v0.20.3
Compiling tokio-io-timeout v1.1.1
Compiling trust-dns-resolver v0.20.3
Compiling shadowsocks v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)
Compiling shadowsocks-service v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)
Compiling shadowsocks-rust v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)
Finished release [optimized] target(s) in 2m 34s
> Task :core:cargoBuildX86_64
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
Compiling cfg-if v1.0.0
Compiling scopeguard v1.1.0
Compiling smallvec v1.6.1
Compiling pin-project-lite v0.2.7
Compiling matches v0.1.8
Compiling futures-sink v0.3.16
Compiling tinyvec_macros v0.1.0
Compiling once_cell v1.8.0
Compiling ppv-lite86 v0.2.10
Compiling lazy_static v1.4.0
Compiling futures-io v0.3.16
Compiling pin-utils v0.1.0
Compiling linked-hash-map v0.5.4
Compiling percent-encoding v2.1.0
Compiling slab v0.4.3
Compiling bytes v1.0.1
Compiling ipnet v2.3.1
Compiling match_cfg v0.1.0
Compiling itoa v0.4.7
Compiling traitobject v0.1.0
Compiling quick-error v1.2.3
Compiling untrusted v0.7.1
Compiling data-encoding v2.3.2
Compiling same-file v1.0.6
Compiling spin v0.5.2
Compiling siphasher v0.3.5
Compiling ucd-trie v0.1.3
Compiling regex-syntax v0.6.25
Compiling dtoa v0.4.8
Compiling crypto2 v0.1.2
Compiling bit-vec v0.6.3
Compiling base64 v0.13.0
Compiling checked_int_cast v1.0.0
Compiling unicode-width v0.1.8
Compiling log-mdc v0.1.0
Compiling fnv v1.0.7
Compiling arc-swap v0.4.8
Compiling arc-swap v1.3.0
Compiling humantime v2.1.0
Compiling byte_string v1.0.0
Compiling ansi_term v0.11.0
Compiling strsim v0.8.0
Compiling vec_map v0.8.2
Compiling byteorder v1.4.3
Compiling boxfnonce v0.1.1
Compiling lru_time_cache v0.11.11
Compiling exitcode v1.1.2
Compiling libc v0.2.98
Compiling serde v1.0.126
Compiling memchr v2.4.0
Compiling futures-core v0.3.16
Compiling log v0.4.14
Compiling futures-channel v0.3.16
Compiling futures-task v0.3.16
Compiling proc-macro-nested v0.1.7
Compiling unicode-bidi v0.3.5
Compiling lock_api v0.4.4
Compiling instant v0.1.10
Compiling tinyvec v1.3.1
Compiling bitflags v1.2.1
Compiling ryu v1.0.5
Compiling yaml-rust v0.4.5
Compiling lru-cache v0.1.2
Compiling crossbeam-utils v0.8.5
Compiling form_urlencoded v1.0.1
Compiling serde_json v1.0.64
Compiling unsafe-any v0.4.2
Compiling iprange v0.6.4
Compiling anyhow v1.0.42
Compiling walkdir v2.3.2
Compiling pest v2.1.3
Compiling qrcode v0.12.0
Compiling futures-util v0.3.16
Compiling num-traits v0.2.14
Compiling tokio v1.9.0
Compiling num-integer v0.1.44
Compiling memoffset v0.6.4
Compiling spin v0.9.2
Compiling unicode-normalization v0.1.19
Compiling ring v0.16.20
Compiling typemap v0.3.3
Compiling getrandom v0.2.3
Compiling parking_lot_core v0.8.3
Compiling signal-hook-registry v1.4.0
Compiling num_cpus v1.13.0
Compiling hostname v0.3.1
Compiling filetime v0.2.14
Compiling time v0.1.43
Compiling socket2 v0.4.0
Compiling thread-id v3.3.0
Compiling term_size v0.3.2
Compiling atty v0.2.14
Compiling daemonize v0.4.1
Compiling aho-corasick v0.7.18
Compiling crossbeam-channel v0.5.1
Compiling rand_core v0.6.3
Compiling parking_lot v0.11.1
Compiling idna v0.2.3
Compiling resolv-conf v0.7.0
Compiling textwrap v0.11.0
Compiling nix v0.22.0
Compiling rand_chacha v0.3.1
Compiling notify v5.0.0-pre.11
Compiling ordered-float v2.7.0
Compiling regex v1.5.4
Compiling url v2.2.2
Compiling clap v2.33.3
Compiling rand v0.8.4
Compiling chrono v0.4.19
Compiling thiserror v1.0.26
Compiling pin-project v1.0.8
Compiling bloomfilter v1.0.5
Compiling futures-executor v0.3.16
Compiling serde_urlencoded v0.7.0
Compiling serde_yaml v0.8.17
Compiling serde-value v0.7.0
Compiling json5 v0.3.0
Compiling futures v0.3.16
Compiling mio v0.7.13
Compiling shadowsocks-crypto v0.2.4
Compiling log4rs v1.0.0
Compiling trust-dns-proto v0.20.3
Compiling tokio-io-timeout v1.1.1
Compiling trust-dns-resolver v0.20.3
Compiling shadowsocks v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)
Compiling shadowsocks-service v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)
Compiling shadowsocks-rust v1.11.2 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)
Finished release [optimized] target(s) in 2m 36s
> Task :core:cargoBuild
> Task :core:mergeReleaseJniLibFolders
> Task :core:mergeReleaseShaders
> Task :core:compileReleaseShaders NO-SOURCE
> Task :core:generateReleaseAssets UP-TO-DATE
> Task :core:packageReleaseAssets
> Task :core:prepareLintJarForPublish
> Task :core:prepareReleaseArtProfile
> Task :core:processReleaseJavaRes NO-SOURCE
> Task :core:writeReleaseLintModelMetadata
> Task :plugin:copyReleaseJniLibsProjectAndLocalJars
> Task :core:generateReleaseRFile
> Task :plugin:compileReleaseKotlin
> Task :plugin:compileReleaseJavaWithJavac
> Task :plugin:bundleLibCompileToJarRelease
warn: removing resource com.github.shadowsocks.tv:string/advanced without required default value.
warn: removing resource com.github.shadowsocks.tv:string/auto_connect_summary_v24 without required default value.
warn: removing resource com.github.shadowsocks.tv:string/invalid_server without required default value.
warn: removing resource com.github.shadowsocks.tv:string/night_mode without required default value.
warn: removing resource com.github.shadowsocks.tv:string/night_mode_auto without required default value.
warn: removing resource com.github.shadowsocks.tv:string/night_mode_off without required default value.
warn: removing resource com.github.shadowsocks.tv:string/night_mode_on without required default value.
warn: removing resource com.github.shadowsocks.tv:string/night_mode_system without required default value.
warn: removing resource com.github.shadowsocks.tv:string/received without required default value.
warn: removing resource com.github.shadowsocks.tv:string/sent without required default value.
warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_failure without required default value.
warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_summary without required default value.
warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_summary_unsupported without required default value.
> Task :tv:processFreedomReleaseResources
> Task :core:kaptGenerateStubsReleaseKotlin
> Task :core:externalNativeBuildRelease
> Task :core:mergeReleaseNativeLibs
> Task :core:kaptReleaseKotlin
> Task :plugin:extractReleaseAnnotations
> Task :core:compileReleaseKotlin
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/Core.kt: (144, 23): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/Core.kt: (145, 27): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (72, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (78, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (82, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (121, 26): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/bg/BaseService.kt: (266, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/bg/BaseService.kt: (343, 34): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt: (82, 21): The value 'true' assigned to 'var running: Boolean defined in com.github.shadowsocks.bg.GuardedProcessPool.Guard.looper' is never used
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt: (87, 17): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/bg/VpnService.kt: (196, 38): Type mismatch: inferred type is String? but String was expected
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/database/PrivateDatabase.kt: (50, 36): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/database/PublicDatabase.kt: (43, 36): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (51, 32): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (51, 44): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (55, 25): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt: (92, 19): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/Subnet.kt: (81, 46): Type mismatch: inferred type is String? but String was expected
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/Subnet.kt: (81, 71): Unsafe use of a nullable receiver of type String?
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: (111, 36): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ExperimentalCoroutinesApi' or '@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)'
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: (114, 21): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/utils/Utils.kt: (86, 64): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/utils/Utils.kt: (88, 9): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
> Task :core:compileReleaseJavaWithJavac
> Task :core:bundleLibCompileToJarRelease
> Task :core:stripReleaseDebugSymbols
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
> Task :core:copyReleaseJniLibsProjectAndLocalJars
> Task :tv:kaptGenerateStubsFreedomReleaseKotlin
> Task :tv:kaptFreedomReleaseKotlin
> Task :tv:compileFreedomReleaseKotlin
w: /home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/java/com/github/shadowsocks/tv/MainFragment.kt: (48, 21): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Java
w: /home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/java/com/github/shadowsocks/tv/MainFragment.kt: (56, 17): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Java
> Task :tv:compileFreedomReleaseJavaWithJavac
> Task :tv:compileFreedomReleaseSources
> Task :core:extractReleaseAnnotations
> Task :core:mergeReleaseGeneratedProguardFiles
> Task :core:mergeReleaseConsumerProguardFiles
> Task :plugin:mergeReleaseGeneratedProguardFiles
> Task :plugin:mergeReleaseConsumerProguardFiles
> Task :plugin:mergeReleaseShaders
> Task :plugin:compileReleaseShaders NO-SOURCE
> Task :plugin:generateReleaseAssets UP-TO-DATE
> Task :plugin:packageReleaseAssets
> Task :plugin:prepareLintJarForPublish
> Task :plugin:prepareReleaseArtProfile
> Task :plugin:processReleaseJavaRes NO-SOURCE
> Task :plugin:writeReleaseLintModelMetadata
> Task :plugin:bundleLibResRelease
> Task :core:bundleLibResRelease
> Task :plugin:bundleLibRuntimeToJarRelease
> Task :tv:extractProguardFiles
> Task :core:bundleLibRuntimeToJarRelease
> Task :plugin:createFullJarRelease
> Task :tv:mergeFreedomReleaseJniLibFolders
> Task :tv:bundleFreedomReleaseClasses
> Task :plugin:mergeReleaseJavaResource
> Task :core:mergeReleaseJavaResource
> Task :core:copyReleaseJniLibsProjectOnly
> Task :core:syncReleaseLibJars
> Task :core:bundleReleaseLocalLintAar
> Task :plugin:syncReleaseLibJars
> Task :plugin:bundleReleaseLocalLintAar
> Task :core:createFullJarRelease
> Task :core:exportReleaseConsumerProguardFiles
> Task :plugin:exportReleaseConsumerProguardFiles
> Task :tv:mergeFreedomReleaseNativeLibs
> Task :tv:checkFreedomReleaseDuplicateClasses
> Task :tv:stripFreedomReleaseDebugSymbols
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
> Task :tv:mergeFreedomReleaseGeneratedProguardFiles
> Task :tv:processFreedomReleaseJavaRes NO-SOURCE
> Task :tv:extractFreedomReleaseNativeSymbolTables
[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
> Task :tv:mergeFreedomReleaseNativeDebugMetadata NO-SOURCE
> Task :tv:mergeFreedomReleaseShaders
> Task :tv:compileFreedomReleaseShaders NO-SOURCE
> Task :tv:generateFreedomReleaseAssets UP-TO-DATE
> Task :tv:mergeFreedomReleaseAssets
> Task :tv:compressFreedomReleaseAssets
> Task :tv:collectFreedomReleaseDependencies
> Task :tv:sdkFreedomReleaseDependencyData
> Task :tv:writeFreedomReleaseAppMetadata
> Task :tv:writeFreedomReleaseSigningConfigVersions
> Task :tv:mergeFreedomReleaseArtProfile
> Task :tv:mergeFreedomReleaseJavaResource
> Task :tv:minifyFreedomReleaseWithR8
WARNING:/home/vagrant/build/com.github.shadowsocks.tv/tv/build/intermediates/merged_java_res/freedomRelease/base.jar: R8: Unexpected reference to missing service class: META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.
WARNING:Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /home/vagrant/build/com.github.shadowsocks.tv/tv/build/outputs/mapping/freedomRelease/missing_rules.txt.
WARNING:R8: Missing class lombok.Generated (referenced from: org.slf4j.Logger org.xbill.DNS.Compression.log and 1 other context)
Missing class org.slf4j.impl.StaticLoggerBinder (referenced from: void org.slf4j.LoggerFactory.bind() and 3 other contexts)
Missing class sun.net.spi.nameservice.NameServiceDescriptor (referenced from: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor)
> Task :tv:lintVitalAnalyzeFreedomRelease
> Task :tv:lintVitalFreedomRelease
No issues found.
> Task :tv:shrinkFreedomReleaseRes
> Task :tv:l8DexDesugarLibFreedomRelease
> Task :tv:compileFreedomReleaseArtProfile
> Task :tv:packageFreedomRelease
> Task :tv:assembleFreedomRelease
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 14m 9s
118 actionable tasks: 118 executed
2022-05-10 03:49:35,700 DEBUG: Popen(['git', 'cat-file', '--batch-check'], cwd=/home/vagrant/build/com.github.shadowsocks.tv, universal_newlines=False, shell=None)
2022-05-10 03:49:35,704 INFO: Successfully built version 5.2.6-nightly of com.github.shadowsocks.tv from 1c73e48cc6e590aa628179ab6687558c901693a5
2022-05-10 03:49:36,763 DEBUG: AXML contains a RESOURCE MAP
2022-05-10 03:49:36,763 DEBUG: Start of Namespace mapping: prefix 42: 'android' --> uri 114: 'http://schemas.android.com/apk/res/android'
2022-05-10 03:49:36,765 DEBUG: Checking build/com.github.shadowsocks.tv/tv/build/outputs/apk/freedom/release/tv-freedom-release-unsigned.apk
2022-05-10 03:49:36,773 DEBUG: AXML contains a RESOURCE MAP
2022-05-10 03:49:36,774 DEBUG: Start of Namespace mapping: prefix 42: 'android' --> uri 114: 'http://schemas.android.com/apk/res/android'
2022-05-10 03:49:36,794 INFO: success: com.github.shadowsocks.tv
2022-05-10 03:49:36,795 INFO: Finished
2022-05-10 03:49:36,795 INFO: 1 build succeeded