if port 8888 is in use, then use a random one

This is a quick and dirty way to deal with port conflicts
This commit is contained in:
Hans-Christoph Steiner 2014-05-06 23:34:16 -04:00
parent 2848b50f8b
commit 06c974265e

View File

@ -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();
}