Skip to content

Commit a611d73

Browse files
committed
fix(voip): reuse OkHttpClient and close response body in MediaCallsAnswerRequest
Address CodeRabbit resource leak warning: reuse the OkHttpClient singleton instead of creating a new instance per request, and wrap the Response in response.use {} to ensure the body is closed after use.
1 parent 8d543e4 commit a611d73

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

android/app/src/main/java/chat/rocket/reactnative/voip/MediaCallsAnswerRequest.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class MediaCallsAnswerRequest(
3636
companion object {
3737
private const val TAG = "RocketChat.MediaCallsAnswerRequest"
3838
private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType()
39+
private val httpClient = OkHttpClient()
3940

4041
@JvmStatic
4142
fun fetch(
@@ -107,18 +108,19 @@ class MediaCallsAnswerRequest(
107108
.post(requestBody)
108109
.build()
109110

110-
val client = OkHttpClient()
111-
client.newCall(request).enqueue(object : Callback {
111+
httpClient.newCall(request).enqueue(object : Callback {
112112
override fun onFailure(call: Call, e: IOException) {
113113
Log.e(TAG, "MediaCallsAnswerRequest failed for callId=$callId: ${e.message}")
114114
onResult(false)
115115
}
116116

117117
override fun onResponse(call: Call, response: okhttp3.Response) {
118-
val code = response.code
119-
val success = code in 200..299
120-
Log.d(TAG, "MediaCallsAnswerRequest response for callId=$callId: code=$code success=$success")
121-
onResult(success)
118+
response.use {
119+
val code = it.code
120+
val success = code in 200..299
121+
Log.d(TAG, "MediaCallsAnswerRequest response for callId=$callId: code=$code success=$success")
122+
onResult(success)
123+
}
122124
}
123125
})
124126
}

0 commit comments

Comments
 (0)