diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.kt index 10d543c0..4ec41078 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.kt @@ -66,6 +66,8 @@ class GetRemoteStatusOperation : RemoteOperation() { return try { val requester = StatusRequester() val requestResult = requester.requestAndFollowRedirects(baseUrl, client) + Timber.d("==== GetRemoteStatusOperation result ====") + requestResult.printLog(); requester.handleRequestResult(requestResult, baseUrl) } catch (e: JSONException) { RemoteOperationResult(ResultCode.INSTANCE_NOT_CONFIGURED) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/StatusRequester.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/StatusRequester.kt index c19b9bea..990c088b 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/StatusRequester.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/StatusRequester.kt @@ -32,6 +32,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult import com.owncloud.android.lib.resources.status.HttpScheme.HTTPS_SCHEME import com.owncloud.android.lib.resources.status.HttpScheme.HTTP_SCHEME import org.json.JSONObject +import timber.log.Timber import java.net.URL import java.util.concurrent.TimeUnit @@ -69,7 +70,17 @@ internal class StatusRequester { val getMethod: GetMethod, val status: Int, val redirectedToUnsecureLocation: Boolean - ) + ) { + fun printLog() { + Timber.d(""" + ===== status request result ===== + - GetMethod status code: ${getMethod.statusCode}, + - GetMethod status msg: ${getMethod.statusMessage}, + - status: ${status}, + - redirectedToUnsecureLocation: ${redirectedToUnsecureLocation} + """.trimIndent()) + } + } fun requestAndFollowRedirects(baseLocation: String, client: OwnCloudClient): RequestResult { var currentLocation = baseLocation + OwnCloudClient.STATUS_PATH @@ -78,16 +89,24 @@ internal class StatusRequester { while (true) { val getMethod = getGetMethod(currentLocation) + Timber.d("StatusRequester, goto: ${currentLocation}") status = client.executeHttpMethod(getMethod) + Timber.d("StatusRequester, resturn status: ${status}") val result = if (status.isSuccess()) RemoteOperationResult(RemoteOperationResult.ResultCode.OK) else RemoteOperationResult(getMethod) + Timber.d("StatusRequester, RemoteOperationResult: ${result}, isSuccess: ${result.isSuccess}") + if (result.redirectedLocation.isNullOrEmpty() || result.isSuccess) { + + Timber.d("StatusRequester, Redirection location was null or empty and result was success") return RequestResult(getMethod, status, redirectedToUnsecureLocation) } else { + Timber.d("StatusRequester, go into next iteration") val nextLocation = updateLocationWithRedirectPath(currentLocation, result.redirectedLocation) + Timber.d("StatusRequester, Next location: ${nextLocation}") redirectedToUnsecureLocation = isRedirectedToNonSecureConnection( redirectedToUnsecureLocation,