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;
> > 

Reply via email to