Browse Source

Moved Android library project to packages/

pull/1/head
Joseph Henry 8 years ago
parent
commit
e831c748c7
  1. 18
      examples/cpp/ipv4simple/ipv4server.cpp
  2. 12
      examples/java/com/zerotier/libzt/ZeroTier.java
  3. 9
      packages/README.md
  4. 0
      packages/android/.gitignore
  5. 0
      packages/android/app/.gitignore
  6. 10
      packages/android/app/build.gradle
  7. 0
      packages/android/app/proguard-rules.pro
  8. 0
      packages/android/app/src/androidTest/java/com/example/zerotier/ExampleInstrumentedTest.java
  9. 0
      packages/android/app/src/main/AndroidManifest.xml
  10. 54
      packages/android/app/src/main/java/ZTFDSet.java
  11. 17
      packages/android/app/src/main/java/ZTSocketAddress.java
  12. 15
      packages/android/app/src/main/java/ZeroTier.java
  13. 5
      packages/android/app/src/main/java/com/example/zerotier/MainActivity.java
  14. 0
      packages/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  15. 0
      packages/android/app/src/main/res/drawable/ic_launcher_background.xml
  16. 0
      packages/android/app/src/main/res/layout/activity_main.xml
  17. 0
      packages/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  18. 0
      packages/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  19. 0
      packages/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  20. 0
      packages/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
  21. 0
      packages/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  22. 0
      packages/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
  23. 0
      packages/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  24. 0
      packages/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  25. 0
      packages/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  26. 0
      packages/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  27. 0
      packages/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  28. 0
      packages/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  29. 0
      packages/android/app/src/main/res/values/colors.xml
  30. 0
      packages/android/app/src/main/res/values/strings.xml
  31. 0
      packages/android/app/src/main/res/values/styles.xml
  32. 0
      packages/android/app/src/test/java/com/example/zerotier/ExampleUnitTest.java
  33. 0
      packages/android/build.gradle
  34. 0
      packages/android/gradle.properties
  35. 0
      packages/android/gradle/wrapper/gradle-wrapper.jar
  36. 0
      packages/android/gradle/wrapper/gradle-wrapper.properties
  37. 0
      packages/android/gradlew
  38. 0
      packages/android/gradlew.bat
  39. 0
      packages/android/settings.gradle

18
examples/cpp/ipv4simple/ipv4server.cpp

@ -52,7 +52,7 @@ int main(int argc, char **argv)
std::string nwidstr = argv[2];
int bind_port = atoi(argv[3]);
int w=0, r=0, err=0, sockfd, accfd;
char rbuf[32];
char rbuf[1000];
memset(rbuf, 0, sizeof rbuf);
struct sockaddr_in in4, acc_in4;
@ -90,11 +90,25 @@ int main(int argc, char **argv)
zts_getpeername(accfd, (struct sockaddr*)&acc_in4, &peer_addrlen);
printf("accepted connection from %s : %d\n", inet_ntoa(acc_in4.sin_addr), ntohs(acc_in4.sin_port));
int tot = 0;
printf("reading from client...\n");
r = zts_read(accfd, rbuf, sizeof rbuf);
while(true) {
memset(rbuf, 0, sizeof rbuf);
if (tot == 500000)
{
break;
}
r = zts_read(accfd, rbuf, sizeof rbuf);
printf("r=%d\n", r);
printf("Received : %s\n", rbuf);
tot+= r;
printf("tot=%d\n", tot);
}
printf("tot=%d\n", tot);
printf("sending to client...\n");
w = zts_write(accfd, rbuf, strlen(rbuf));
printf("w=%d\n", r);
printf("Received : %s\n", rbuf);

12
examples/java/com/zerotier/libzt/ZeroTier.java

@ -68,12 +68,12 @@ public class ZeroTier {
public native int close(int fd);
public native int setsockopt(int fd, int level, int optname, int optval, int optlen);
public native int getsockopt(int fd, int level, int optname, int optval, int optlen);
public native int sendto(int fd, byte[] buf, int len, int flags, ZTSocketAddress addr);
public native int send(int fd, byte[] buf, int len, int flags);
public native int recv(int fd, byte[] buf, int len, int flags);
public native int recvfrom(int fd, byte[] buf, int len, int flags, ZTSocketAddress addr);
public native int read(int fd, byte[] buf, int len);
public native int write(int fd, byte[] buf, int len);
public native int sendto(int fd, byte[] buf, int flags, ZTSocketAddress addr);
public native int send(int fd, byte[] buf, int flags);
public native int recv(int fd, byte[] buf, int flags);
public native int recvfrom(int fd, byte[] buf, int flags, ZTSocketAddress addr);
public native int read(int fd, byte[] buf);
public native int write(int fd, byte[] buf);
public native int shutdown(int fd, int how);
public native boolean getsockname(int fd, ZTSocketAddress addr);
public native int getpeername(int fd, ZTSocketAddress addr);

9
packages/README.md

@ -0,0 +1,9 @@
### Projects and scripts for building various packages
### Android
Pre-built binaries can be found [here]()
This android project builds from the root `CMakeLists.txt` and generates a `.aar` Android Archive which can be imported into an Android Studio project as a library. An example of this library's usage can be found in [examples/android](examples/android). Further examples of the libzt JNI API can be seen in [examples/java](examples/java).
### PyPI

0
examples/android/.gitignore → packages/android/.gitignore vendored

0
examples/android/app/.gitignore → packages/android/app/.gitignore vendored

10
examples/android/app/build.gradle → packages/android/app/build.gradle

@ -1,9 +1,8 @@
apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.zerotier"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
@ -14,6 +13,11 @@ android {
cppFlags ""
}
}
ndk {
// Tells Gradle to build outputs for the following ABIs and package
// them into your APK.
abiFilters 'armeabi-v7a'
}
}
buildTypes {
release {
@ -23,7 +27,7 @@ android {
}
externalNativeBuild {
cmake {
path "/Users/joseph/op/zt/neolibzt/CMakeLists.txt"
path "../../../CMakeLists.txt"
}
}
}

0
examples/android/app/proguard-rules.pro → packages/android/app/proguard-rules.pro vendored

0
examples/android/app/src/androidTest/java/com/example/zerotier/ExampleInstrumentedTest.java → packages/android/app/src/androidTest/java/com/example/zerotier/ExampleInstrumentedTest.java

0
examples/android/app/src/main/AndroidManifest.xml → packages/android/app/src/main/AndroidManifest.xml

54
packages/android/app/src/main/java/ZTFDSet.java

@ -0,0 +1,54 @@
/*
* ZeroTier SDK - Network Virtualization Everywhere
* Copyright (C) 2011-2018 ZeroTier, Inc. https://www.zerotier.com/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --
*
* You can be released from the requirements of the license by purchasing
* a commercial license. Buying such a license is mandatory as soon as you
* develop commercial closed-source software that incorporates or links
* directly against ZeroTier software without disclosing the source code
* of your own application.
*/
package com.zerotier.libzt;
public class ZTFDSet
{
byte[] fds_bits = new byte[1024];
public void CLR(int fd)
{
fds_bits[fd] = 0x00;
}
public boolean ISSET(int fd)
{
return fds_bits[fd] == 0x01;
}
public void SET(int fd)
{
fds_bits[fd] = 0x01;
}
public void ZERO()
{
for (int i=0; i<1024; i++) {
fds_bits[i] = 0x00;
}
}
}

17
examples/android/app/src/main/java/ZTSocketAddress.java → packages/android/app/src/main/java/ZTSocketAddress.java

@ -24,9 +24,11 @@
* of your own application.
*/
package zerotier;
package com.zerotier.libzt;
import java.net.*;
import com.zerotier.libzt.ZeroTier;
import java.net.InetAddress;
// Designed to transport address information across the JNI boundary
public class ZTSocketAddress
@ -34,9 +36,6 @@ public class ZTSocketAddress
public byte[] _ip6 = new byte[16];
public byte[] _ip4 = new byte[4];
public long _ipdata;
public long _ipdata_ext;
public int _family;
public int _port; // Also reused for netmask or prefix
@ -45,7 +44,7 @@ public class ZTSocketAddress
public ZTSocketAddress(String ipStr, int port)
{
if(ipStr.contains(":")) {
_family = zerotier.ZeroTier.AF_INET6;
_family = ZeroTier.AF_INET6;
try {
InetAddress ip = InetAddress.getByName(ipStr);
_ip6 = ip.getAddress();
@ -53,7 +52,7 @@ public class ZTSocketAddress
catch (Exception e) { }
}
else if(ipStr.contains(".")) {
_family = zerotier.ZeroTier.AF_INET;
_family = ZeroTier.AF_INET;
try {
InetAddress ip = InetAddress.getByName(ipStr);
_ip4 = ip.getAddress();
@ -69,7 +68,7 @@ public class ZTSocketAddress
private String ipString()
{
if (_family == zerotier.ZeroTier.AF_INET) {
if (_family == ZeroTier.AF_INET) {
try {
InetAddress inet = InetAddress.getByAddress(_ip4);
return "" + inet.getHostAddress();
@ -77,7 +76,7 @@ public class ZTSocketAddress
System.out.println(e);
}
}
if (_family == zerotier.ZeroTier.AF_INET6) {
if (_family == ZeroTier.AF_INET6) {
try {
InetAddress inet = InetAddress.getByAddress(_ip6);
return "" + inet.getHostAddress();

15
examples/android/app/src/main/java/ZeroTier.java → packages/android/app/src/main/java/ZeroTier.java

@ -24,7 +24,7 @@
* of your own application.
*/
package zerotier;
package com.zerotier.libzt;
import java.net.*;
@ -68,14 +68,15 @@ public class ZeroTier {
public native int close(int fd);
public native int setsockopt(int fd, int level, int optname, int optval, int optlen);
public native int getsockopt(int fd, int level, int optname, int optval, int optlen);
public native int sendto(int fd, byte[] buf, int len, int flags, ZTSocketAddress addr);
public native int send(int fd, byte[] buf, int len, int flags);
public native int recv(int fd, byte[] buf, int len, int flags);
public native int recvfrom(int fd, byte[] buf, int len, int flags, ZTSocketAddress addr);
public native int read(int fd, byte[] buf, int len);
public native int write(int fd, byte[] buf, int len);
public native int sendto(int fd, byte[] buf, int flags, ZTSocketAddress addr);
public native int send(int fd, byte[] buf, int flags);
public native int recv(int fd, byte[] buf, int flags);
public native int recvfrom(int fd, byte[] buf, int flags, ZTSocketAddress addr);
public native int read(int fd, byte[] buf);
public native int write(int fd, byte[] buf);
public native int shutdown(int fd, int how);
public native boolean getsockname(int fd, ZTSocketAddress addr);
public native int getpeername(int fd, ZTSocketAddress addr);
public native int fcntl(int sock, int cmd, int flag);
public native int select(int nfds, ZTFDSet readfds, ZTFDSet writefds, ZTFDSet exceptfds, int timeout_sec, int timeout_usec);
}

5
examples/android/app/src/main/java/com/example/zerotier/MainActivity.java → packages/android/app/src/main/java/com/example/zerotier/MainActivity.java

@ -4,8 +4,9 @@ import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import zerotier.*;
import java.net.*;
import com.zerotier.libzt.ZeroTier;
import com.zerotier.libzt.ZTSocketAddress;
import com.zerotier.libzt.ZTFDSet;
public class MainActivity extends AppCompatActivity {

0
examples/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml → packages/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml

0
examples/android/app/src/main/res/drawable/ic_launcher_background.xml → packages/android/app/src/main/res/drawable/ic_launcher_background.xml

0
examples/android/app/src/main/res/layout/activity_main.xml → packages/android/app/src/main/res/layout/activity_main.xml

0
examples/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml → packages/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

0
examples/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml → packages/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

0
examples/android/app/src/main/res/mipmap-hdpi/ic_launcher.png → packages/android/app/src/main/res/mipmap-hdpi/ic_launcher.png

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
examples/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png → packages/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

0
examples/android/app/src/main/res/mipmap-mdpi/ic_launcher.png → packages/android/app/src/main/res/mipmap-mdpi/ic_launcher.png

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

0
examples/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png → packages/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
examples/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png → packages/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

0
examples/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png → packages/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

0
examples/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png → packages/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

0
examples/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png → packages/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

0
examples/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png → packages/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

0
examples/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png → packages/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
examples/android/app/src/main/res/values/colors.xml → packages/android/app/src/main/res/values/colors.xml

0
examples/android/app/src/main/res/values/strings.xml → packages/android/app/src/main/res/values/strings.xml

0
examples/android/app/src/main/res/values/styles.xml → packages/android/app/src/main/res/values/styles.xml

0
examples/android/app/src/test/java/com/example/zerotier/ExampleUnitTest.java → packages/android/app/src/test/java/com/example/zerotier/ExampleUnitTest.java

0
examples/android/build.gradle → packages/android/build.gradle

0
examples/android/gradle.properties → packages/android/gradle.properties

0
examples/android/gradle/wrapper/gradle-wrapper.jar → packages/android/gradle/wrapper/gradle-wrapper.jar vendored

0
examples/android/gradle/wrapper/gradle-wrapper.properties → packages/android/gradle/wrapper/gradle-wrapper.properties vendored

0
examples/android/gradlew → packages/android/gradlew vendored

0
examples/android/gradlew.bat → packages/android/gradlew.bat vendored

0
examples/android/settings.gradle → packages/android/settings.gradle

Loading…
Cancel
Save