Hi!

RFC 6455 4.2.1 states:
4.   A |Connection| header field that *includes* the token "Upgrade",
      treated as an ASCII case-insensitive value.

In my test case Firefox sends: Connection: keep-alive, Upgrade

Relayd currently expects Connection to equal Upgrade, not include Upgrade.

I haven't figured out how to configure Thunderbird to send proper diffs, 
so I'm sending bas64 encoded version too.

Index: usr.sbin/relayd/relay_http.c
===================================================================
RCS file: /cvs/src/usr.sbin/relayd/relay_http.c,v
retrieving revision 1.72
diff -u -p -r1.72 relay_http.c
--- usr.sbin/relayd/relay_http.c        4 Mar 2019 21:25:03 -0000       1.72
+++ usr.sbin/relayd/relay_http.c        5 Mar 2019 16:03:56 -0000
@@ -400,7 +400,7 @@ relay_read_http(struct bufferevent *bev,
                if (cre->line != 1) {
                        if (cre->dir == RELAY_DIR_REQUEST) {
                                if (strcasecmp("Connection", key) == 0 &&
-                                   strcasecmp("Upgrade", value) == 0)
+                                   strcasecmp("Upgrade", value) >= 0)
                                        priv->http_upgrade_req |=
                                            HTTP_CONNECTION_UPGRADE;
                                if (strcasecmp("Upgrade", key) == 0 &&


begin-base64 644 websocket.diff
SW5kZXg6IHVzci5zYmluL3JlbGF5ZC9yZWxheV9odHRwLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9zcmMvdXNyLnNiaW4vcmVsYXlkL3JlbGF5X2h0dHAuYyx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS43MgpkaWZmIC11IC1wIC1yMS43MiByZWxheV9odHRwLmMKLS0tIHVzci5zYmluL3JlbGF5
ZC9yZWxheV9odHRwLmMJNCBNYXIgMjAxOSAyMToyNTowMyAtMDAwMAkxLjcyCisrKyB1c3Iuc2Jp
bi9yZWxheWQvcmVsYXlfaHR0cC5jCTUgTWFyIDIwMTkgMTY6MDM6NTYgLTAwMDAKQEAgLTQwMCw3
ICs0MDAsNyBAQCByZWxheV9yZWFkX2h0dHAoc3RydWN0IGJ1ZmZlcmV2ZW50ICpiZXYsCiAJCWlm
IChjcmUtPmxpbmUgIT0gMSkgewogCQkJaWYgKGNyZS0+ZGlyID09IFJFTEFZX0RJUl9SRVFVRVNU
KSB7CiAJCQkJaWYgKHN0cmNhc2VjbXAoIkNvbm5lY3Rpb24iLCBrZXkpID09IDAgJiYKLQkJCQkg
ICAgc3RyY2FzZWNtcCgiVXBncmFkZSIsIHZhbHVlKSA9PSAwKQorCQkJCSAgICBzdHJjYXNlY21w
KCJVcGdyYWRlIiwgdmFsdWUpID49IDApCiAJCQkJCXByaXYtPmh0dHBfdXBncmFkZV9yZXEgfD0K
IAkJCQkJICAgIEhUVFBfQ09OTkVDVElPTl9VUEdSQURFOwogCQkJCWlmIChzdHJjYXNlY21wKCJV
cGdyYWRlIiwga2V5KSA9PSAwICYmCg==
====

Reply via email to