One month has passed, this is just a friendly ping... Marcus
mcmer-open...@tor.at (Marcus MERIGHI), 2020.12.04 (Fri) 14:18 (CET): > This patch wasn't commited and not discussed (publicly). > > It lets me use relayd as a front-end to the mattermost-server. > > @franz: Thank you! > > fr...@bett.ag (Franz Bettag), 2020.03.04 (Wed) 17:52 (CET): > > After migrating my home setup from nginx reverse proxying to relayd, i > > noticed my iOS devices having issues connecting through Websockets. > > After debugging, i noticed that relayd adds the "Connection: close" > > regardless of upgrade being requested. > > > > This issue is also reported on a blog-post using relayd as a Websocket > > Client. https://deftly.net/posts/2019-10-23-websockets-with-relayd.html > > > > This resulted in the response having two Connection Headers, one > > "Connection: upgrade" and one "Connection: close", which iOS strict > > implementation does not allow. > > > > I have fixed the if condition that leads to this issue. > > > > The fix has been tested with Apple iOS 13 and the problem can be > > observed using Firefox and just connecting to something Websocket over > > relayd. Both "Connection:" headers will appear. > > > > best regards > > > > Franz > > > > > > diff --git usr.sbin/relayd/relay_http.c usr.sbin/relayd/relay_http.c > > index 960d4c54a..3a6678790 100644 > > --- usr.sbin/relayd/relay_http.c > > +++ usr.sbin/relayd/relay_http.c > > @@ -524,9 +524,11 @@ relay_read_http(struct bufferevent *bev, void *arg) > > > > /* > > * Ask the server to close the connection after this request > > - * since we don't read any further request headers. > > + * since we don't read any further request headers, unless > > + * an Upgrade is requested, in which case we do NOT want to add > > + * this header. > > */ > > - if (cre->toread == TOREAD_UNLIMITED) > > + if (cre->toread == TOREAD_UNLIMITED && upgrade == NULL) > > if (kv_add(&desc->http_headers, "Connection", > > "close", 0) == NULL) > > goto fail; > >