From 06c974265e80bc9879b1c9bd4e8089ec6eea6585 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 6 May 2014 23:34:16 -0400 Subject: [PATCH] if port 8888 is in use, then use a random one This is a quick and dirty way to deal with port conflicts --- src/org/fdroid/fdroid/localrepo/LocalRepoService.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/org/fdroid/fdroid/localrepo/LocalRepoService.java b/src/org/fdroid/fdroid/localrepo/LocalRepoService.java index 71d4ddf24..cff716322 100644 --- a/src/org/fdroid/fdroid/localrepo/LocalRepoService.java +++ b/src/org/fdroid/fdroid/localrepo/LocalRepoService.java @@ -21,12 +21,15 @@ import android.support.v4.app.NotificationCompat; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; +import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.R; import org.fdroid.fdroid.net.LocalHTTPD; import org.fdroid.fdroid.net.WifiStateChangeService; import org.fdroid.fdroid.views.LocalRepoActivity; import java.io.IOException; +import java.net.BindException; +import java.util.Random; public class LocalRepoService extends Service { private static final String TAG = "LocalRepoService"; @@ -133,6 +136,11 @@ public class LocalRepoService extends Service { }; try { localHttpd.start(); + } catch (BindException e) { + int prev = FDroidApp.port; + FDroidApp.port = FDroidApp.port + new Random().nextInt(1111); + Log.w(TAG, "port " + prev + " occupied, trying on " + FDroidApp.port + "!"); + startService(new Intent(LocalRepoService.this, WifiStateChangeService.class)); } catch (IOException e) { e.printStackTrace(); }