Allow custom push gateway to use non-default port (#374)

This commit is contained in:
jonnyandrew 2023-05-02 15:04:47 +00:00 committed by GitHub
parent e5a8548ab9
commit d2d01c08df

View file

@ -31,17 +31,19 @@ class UnifiedPushGatewayResolver @Inject constructor(
suspend fun getGateway(endpoint: String): String? { suspend fun getGateway(endpoint: String): String? {
val gateway = UnifiedPushConfig.default_push_gateway_http_url val gateway = UnifiedPushConfig.default_push_gateway_http_url
val url = URL(endpoint) val url = URL(endpoint)
val custom = "${url.protocol}://${url.host}/_matrix/push/v1/notify" val port = if (url.port != -1) { ":${url.port}" } else { "" }
Timber.i("Testing $custom") val customBase = "${url.protocol}://${url.host}${port}"
val customUrl = "$customBase/_matrix/push/v1/notify"
Timber.i("Testing $customUrl")
try { try {
return withContext(coroutineDispatchers.io) { return withContext(coroutineDispatchers.io) {
val api = retrofitFactory.create("${url.protocol}://${url.host}") val api = retrofitFactory.create(customBase)
.create(UnifiedPushApi::class.java) .create(UnifiedPushApi::class.java)
try { try {
val discoveryResponse = api.discover() val discoveryResponse = api.discover()
if (discoveryResponse.unifiedpush.gateway == "matrix") { if (discoveryResponse.unifiedpush.gateway == "matrix") {
Timber.d("Using custom gateway") Timber.d("Using custom gateway")
return@withContext custom return@withContext customUrl
} }
} catch (throwable: Throwable) { } catch (throwable: Throwable) {
Timber.tag("UnifiedPushHelper").e(throwable) Timber.tag("UnifiedPushHelper").e(throwable)