diff options
author | Parménides GV <parmegv@sdf.org> | 2013-10-09 12:46:34 +0200 |
---|---|---|
committer | cyBerta <richy@cyborgsociety.org> | 2013-11-15 23:53:51 +0100 |
commit | df580ff4ca160bee13bb071e1db86c0a0945557e (patch) | |
tree | f95fe39639d3438d0d3094266dbae0b5687b1d1b | |
parent | d9c8729bfdead18aa695ceddac3a12efe6c8b568 (diff) |
Real VPN status is returned from Eip.isRunning().
retrieveVpnService now uses BIND_AUTO_CREATE flag, so that if the OpenVpnService has not been started, the state is still notified.
retrieveVpnService now returns a boolean, so that if bindService fails false is returned.
-rw-r--r-- | src/se/leap/bitmaskclient/EIP.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/se/leap/bitmaskclient/EIP.java b/src/se/leap/bitmaskclient/EIP.java index 84a0ce59..f9384ff6 100644 --- a/src/se/leap/bitmaskclient/EIP.java +++ b/src/se/leap/bitmaskclient/EIP.java @@ -134,10 +134,10 @@ public final class EIP extends IntentService { * Sends an Intent to bind OpenVpnService. * Used when OpenVpnService isn't bound but might be running. */ - private void retreiveVpnService() { + private boolean retreiveVpnService() { Intent bindIntent = new Intent(this,OpenVpnService.class); bindIntent.setAction(OpenVpnService.RETRIEVE_SERVICE); - bindService(bindIntent, mVpnServiceConn, 0); + return bindService(bindIntent, mVpnServiceConn, BIND_AUTO_CREATE); } private static ServiceConnection mVpnServiceConn = new ServiceConnection() { @@ -161,7 +161,7 @@ public final class EIP extends IntentService { resultCode = (running) ? Activity.RESULT_CANCELED : Activity.RESULT_OK; Bundle resultData = new Bundle(); - resultData.putString(REQUEST_TAG, EIP_NOTIFICATION); + resultData.putString(REQUEST_TAG, ACTION_IS_EIP_RUNNING); mReceiver.send(resultCode, resultData); mPending = null; @@ -196,13 +196,16 @@ public final class EIP extends IntentService { int resultCode = Activity.RESULT_CANCELED; if (mBound) { resultCode = (mVpnService.isRunning()) ? Activity.RESULT_OK : Activity.RESULT_CANCELED; + + if (mReceiver != null){ + mReceiver.send(resultCode, resultData); + } } else { mPending = ACTION_IS_EIP_RUNNING; - this.retreiveVpnService(); - } - - if (mReceiver != null){ - mReceiver.send(resultCode, resultData); + boolean retrieved_vpn_service = retreiveVpnService(); + if(!retrieved_vpn_service && mReceiver != null) { + mReceiver.send(resultCode, resultData); + } } } |