Commit c31a5c19 authored by Max Lv's avatar Max Lv

use abstract namespace

parent 6c47c361
resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns) resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.4.7") addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.4.8")
resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/" resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/"
......
...@@ -502,11 +502,11 @@ int main (int argc, char **argv) ...@@ -502,11 +502,11 @@ int main (int argc, char **argv)
goto fail2; goto fail2;
} }
char *path = "/data/data/com.github.shadowsocks/sock_path"; char *path = "#shadowsocks_tunfd";
unlink(path);
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX; addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, path, sizeof(addr.sun_path)-1); strncpy(addr.sun_path, path, sizeof(addr.sun_path)-1);
addr.sun_path[0] = 0;
if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1) { if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
BLog(BLOG_ERROR, "bind() failed: %s (sock = %d)\n", strerror(errno), sock); BLog(BLOG_ERROR, "bind() failed: %s (sock = %d)\n", strerror(errno), sock);
......
Subproject commit 35297b6c228e398344d35246f0e961180d89b786 Subproject commit 5d4db4f093de1256bcb25e1958a76a03102dc77d
...@@ -58,7 +58,8 @@ jint Java_com_github_shadowsocks_system_sendfd(JNIEnv *env, jobject thiz, jint t ...@@ -58,7 +58,8 @@ jint Java_com_github_shadowsocks_system_sendfd(JNIEnv *env, jobject thiz, jint t
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX; addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, "/data/data/com.github.shadowsocks/sock_path", sizeof(addr.sun_path)-1); strncpy(addr.sun_path, "#shadowsocks_tunfd", sizeof(addr.sun_path)-1);
addr.sun_path[0] = 0;
if (connect(fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) { if (connect(fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
LOGE("connect() failed: %s (fd = %d)\n", strerror(errno), fd); LOGE("connect() failed: %s (fd = %d)\n", strerror(errno), fd);
......
...@@ -48,7 +48,7 @@ import android.util.Log ...@@ -48,7 +48,7 @@ import android.util.Log
class ShadowsocksVpnThread(vpnService: ShadowsocksVpnService) extends Thread { class ShadowsocksVpnThread(vpnService: ShadowsocksVpnService) extends Thread {
val TAG = "ShadowsocksVpnService" val TAG = "ShadowsocksVpnService"
val PATH = "/data/data/com.github.shadowsocks/protect_path" val PATH = "shadowsocks_protect"
var isRunning: Boolean = true var isRunning: Boolean = true
var serverSocket: LocalServerSocket = null var serverSocket: LocalServerSocket = null
...@@ -64,16 +64,11 @@ class ShadowsocksVpnThread(vpnService: ShadowsocksVpnService) extends Thread { ...@@ -64,16 +64,11 @@ class ShadowsocksVpnThread(vpnService: ShadowsocksVpnService) extends Thread {
override def run(): Unit = { override def run(): Unit = {
try { try {
new File(PATH).delete() if (serverSocket != null) {
} catch { serverSocket.close()
case _: Exception => // ignore serverSocket = null
} }
serverSocket = new LocalServerSocket(PATH)
try {
val localSocket = new LocalSocket
localSocket.bind(new LocalSocketAddress(PATH, LocalSocketAddress.Namespace.FILESYSTEM))
serverSocket = new LocalServerSocket(localSocket.getFileDescriptor)
} catch { } catch {
case e: IOException => case e: IOException =>
Log.e(TAG, "unable to bind", e) Log.e(TAG, "unable to bind", e)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment