From baf02a80c94bb2036574807931d6bee2b44e1d3c Mon Sep 17 00:00:00 2001 From: James Roper Date: Wed, 14 Feb 2024 11:02:31 +1100 Subject: [PATCH] Fix compression negotiation Fixes #1897 This fixes compression negotiation so that gzip will be used. --- runtime/src/main/scala/akka/grpc/internal/Codecs.scala | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/runtime/src/main/scala/akka/grpc/internal/Codecs.scala b/runtime/src/main/scala/akka/grpc/internal/Codecs.scala index 3207d6727..7528b6e93 100644 --- a/runtime/src/main/scala/akka/grpc/internal/Codecs.scala +++ b/runtime/src/main/scala/akka/grpc/internal/Codecs.scala @@ -25,11 +25,8 @@ object Codecs { * @return a codec to compress data frame bodies with, which will be [[Identity]] unless the client specifies support for another supported encoding. */ def negotiate(request: jm.HttpRequest): Codec = { - val accepted: Array[String] = - request.asInstanceOf[sm.HttpMessage].header[`Message-Accept-Encoding`] match { - case Some(h) => h.values - case None => Array.empty - } + // DO NOT USE request.header[`Message-Accept-Encoding`], as that doesn't work for custom headers + val accepted = `Message-Accept-Encoding`.findIn(request.asInstanceOf[sm.HttpMessage].headers) if (accepted.length == 0) { Identity