X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/48f13c8adc5c4b9bc4ca96bf13939a7d7cfae562..d0f7de3ce01c71edcc6c5ed2c9cb95abe4377ef7:/src/com/owncloud/android/authenticator/ConnectionCheckOperation.java diff --git a/src/com/owncloud/android/authenticator/ConnectionCheckOperation.java b/src/com/owncloud/android/authenticator/ConnectionCheckOperation.java index de110516..e0920c67 100644 --- a/src/com/owncloud/android/authenticator/ConnectionCheckOperation.java +++ b/src/com/owncloud/android/authenticator/ConnectionCheckOperation.java @@ -24,7 +24,6 @@ import org.json.JSONException; import org.json.JSONObject; import com.owncloud.android.AccountUtils; -import com.owncloud.android.network.SslAnalyzer; import com.owncloud.android.operations.RemoteOperation; import com.owncloud.android.operations.RemoteOperationResult; import com.owncloud.android.utils.OwnCloudVersion; @@ -40,7 +39,7 @@ public class ConnectionCheckOperation extends RemoteOperation { /** Maximum time to wait for a response from the server when the connection is being tested, in MILLISECONDs. */ public static final int TRY_CONNECTION_TIMEOUT = 5000; - private static final String TAG = ConnectionCheckerRunnable.class.getCanonicalName(); + private static final String TAG = ConnectionCheckOperation.class.getCanonicalName(); private String mUrl; private RemoteOperationResult mLatestResult; @@ -74,6 +73,11 @@ public class ConnectionCheckOperation extends RemoteOperation { mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.BAD_OC_VERSION); } else { + mLatestResult = new RemoteOperationResult(urlSt.startsWith("https://") ? + RemoteOperationResult.ResultCode.OK_SSL : + RemoteOperationResult.ResultCode.OK_NO_SSL + ); + retval = true; } } @@ -84,16 +88,24 @@ public class ConnectionCheckOperation extends RemoteOperation { } catch (JSONException e) { mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.INSTANCE_NOT_CONFIGURED); - //Log.e(TAG, "JSON exception while trying connection (instance not configured) ", e); } catch (Exception e) { mLatestResult = new RemoteOperationResult(e); - //Log.e(TAG, "Unexpected exception while trying connection", e); } finally { if (get != null) get.releaseConnection(); } + + if (mLatestResult.isSuccess()) { + Log.i(TAG, "Connection check at " + urlSt + ": " + mLatestResult.getLogMessage()); + + } else if (mLatestResult.getException() != null) { + Log.e(TAG, "Connection check at " + urlSt + ": " + mLatestResult.getLogMessage(), mLatestResult.getException()); + + } else { + Log.e(TAG, "Connection check at " + urlSt + ": " + mLatestResult.getLogMessage()); + } return retval; } @@ -111,27 +123,18 @@ public class ConnectionCheckOperation extends RemoteOperation { return new RemoteOperationResult(RemoteOperationResult.ResultCode.NO_NETWORK_CONNECTION); } if (mUrl.startsWith("http://") || mUrl.startsWith("https://")) { - mLatestResult = new RemoteOperationResult( - mUrl.startsWith("https://") ? RemoteOperationResult.ResultCode.OK_SSL : RemoteOperationResult.ResultCode.OK_NO_SSL - ); tryConnection(client, mUrl + AccountUtils.STATUS_PATH); - return mLatestResult; } else { client.setBaseUri(Uri.parse("https://" + mUrl + AccountUtils.STATUS_PATH)); - if (tryConnection(client, "https://" + mUrl + AccountUtils.STATUS_PATH)) { - return new RemoteOperationResult(RemoteOperationResult.ResultCode.OK_SSL); - - } else if (!SslAnalyzer.isRecoverable(mLatestResult)) { - + boolean httpsSuccess = tryConnection(client, "https://" + mUrl + AccountUtils.STATUS_PATH); + if (!httpsSuccess && !mLatestResult.isSslRecoverableException()) { Log.d(TAG, "establishing secure connection failed, trying non secure connection"); client.setBaseUri(Uri.parse("http://" + mUrl + AccountUtils.STATUS_PATH)); - if (tryConnection(client, "http://" + mUrl + AccountUtils.STATUS_PATH)) { - return new RemoteOperationResult(RemoteOperationResult.ResultCode.OK_NO_SSL); - } + tryConnection(client, "http://" + mUrl + AccountUtils.STATUS_PATH); } - return mLatestResult; } + return mLatestResult; } - + }