This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit a3d0dc2e33019bf94edb2992d178fe06b25b8d6a
Author: remm <r...@apache.org>
AuthorDate: Wed Mar 23 21:00:41 2022 +0100

    PR #487: Improve logging of unknown settings frames
    
    Pull request by Thomas Hoffmann.
---
 java/org/apache/coyote/http2/ConnectionSettingsBase.java | 2 --
 java/org/apache/coyote/http2/Http2Parser.java            | 7 ++++++-
 java/org/apache/coyote/http2/Http2UpgradeHandler.java    | 7 ++++++-
 webapps/docs/changelog.xml                               | 4 ++++
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/coyote/http2/ConnectionSettingsBase.java 
b/java/org/apache/coyote/http2/ConnectionSettingsBase.java
index 042fb0c..ef4a200 100644
--- a/java/org/apache/coyote/http2/ConnectionSettingsBase.java
+++ b/java/org/apache/coyote/http2/ConnectionSettingsBase.java
@@ -88,8 +88,6 @@ abstract class ConnectionSettingsBase<T extends Throwable> {
             break;
         case UNKNOWN:
             // Unrecognised. Ignore it.
-            log.warn(sm.getString("connectionSettings.unknown",
-                    connectionId, setting, Long.toString(value)));
             return;
         }
 
diff --git a/java/org/apache/coyote/http2/Http2Parser.java 
b/java/org/apache/coyote/http2/Http2Parser.java
index edc48ac..485adae 100644
--- a/java/org/apache/coyote/http2/Http2Parser.java
+++ b/java/org/apache/coyote/http2/Http2Parser.java
@@ -337,7 +337,12 @@ class Http2Parser {
                 }
                 int id = ByteUtil.getTwoBytes(setting, 0);
                 long value = ByteUtil.getFourBytes(setting, 2);
-                output.setting(Setting.valueOf(id), value);
+                Setting key = Setting.valueOf(id);
+                if (log.isDebugEnabled() && key == Setting.UNKNOWN) {
+                    log.warn(sm.getString("connectionSettings.unknown",
+                        connectionId, Integer.toString(id), 
Long.toString(value)));
+                }
+                output.setting(key, value);
             }
         }
         output.settingsEnd(ack);
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index 2dd439a..7d4810f 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -231,7 +231,12 @@ class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpUpgradeH
                 for (int i = 0; i < settings.length % 6; i++) {
                     int id = ByteUtil.getTwoBytes(settings, i * 6);
                     long value = ByteUtil.getFourBytes(settings, (i * 6) + 2);
-                    remoteSettings.set(Setting.valueOf(id), value);
+                    Setting key = Setting.valueOf(id);
+                    if (log.isDebugEnabled() && key == Setting.UNKNOWN) {
+                        log.warn(sm.getString("connectionSettings.unknown",
+                            connectionId, Integer.toString(id), 
Long.toString(value)));
+                    }
+                    remoteSettings.set(key, value);
                 }
             } catch (Http2Exception e) {
                 throw new ProtocolException(
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f80a030..d79481a 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -120,6 +120,10 @@
         skipping setting it in some cases (for example, it does not make
         sense for OpenSSL TLS 1.3). (remm)
       </fix>
+      <fix>
+        <pr>487</pr>: Improve logging of unknown settings frames. Pull request
+        by Thomas Hoffmann. (remm)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Jasper">

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to