From: Claes W. <kl...@ta...> - 2009-01-09 09:03:16
|
A new release of Yaws is available at http://yaws.hyber.org It contains quite a lot of minor fixes and enhancements and also a brand new great feature. Steve Vinoski has implemented support for sendfile. It works on Linux, FreeBSD and OSX. Steve has published some measurements at http://steve.vinoski.net/blog/ indicating excellent performance improvements. As usual code, release notes and docs at http://yaws.hyber.org Enjoy /klacke |
From: John W. <jw...@go...> - 2009-01-10 07:22:29
|
Hello, Many thanks for the new release. I installed it on my MacBook but ran into problem with virtual server lookup on non-standard ports. When it receives a request (eg http://localhost:8000) yaws compares the host name in the request header ("hostname:8000") with the config server names which have been stripped of the port no so the match never succeeds. [It would also be nice if the virtual server lookup was case insensitive...] Here is one possible solution (only tested on OS X with Safari): *** ../yaws-1.78/src/yaws_server.erl Sun Dec 28 10:03:49 2008 --- ./src/yaws_server.erl Sat Jan 10 15:44:23 2009 *************** *** 1005,1012 **** %% compare servername and ignore any optional %% :Port postfix comp_sname(Hname, Sname) -> ! case string:tokens(Hname, ":") of ! [Sname|_] -> true; _ -> false --- 1005,1013 ---- %% compare servername and ignore any optional %% :Port postfix comp_sname(Hname, Sname) -> ! [Sname1|_] = string:tokens(string:to_lower(Sname),":"), ! case string:tokens(string:to_lower(Hname), ":") of ! [Sname1|_] -> true; _ -> false Best Regards, John On Jan 9, 2009, at 6:03 PM, Claes Wikström wrote: > > A new release of Yaws is available at http://yaws.hyber.org > It contains quite a lot of minor fixes and enhancements and > also a brand new great feature. Steve Vinoski has implemented > support for sendfile. It works on Linux, FreeBSD and OSX. > > Steve has published some measurements at http://steve.vinoski.net/ > blog/ > indicating excellent performance improvements. > > As usual code, release notes and docs at http://yaws.hyber.org > > Enjoy > > /klacke > > > > ------------------------------------------------------------------------------ > Check out the new SourceForge.net Marketplace. > It is the best place to buy or sell services for > just about anything Open Source. > http://p.sf.net/sfu/Xq1LFB > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list |
From: Steve V. <vi...@ie...> - 2009-01-10 08:23:19
|
On 1/10/09, John Webb <jw...@go...> wrote: > Hello, > > Many thanks for the new release. > > I installed it on my MacBook but ran into problem with virtual server > lookup on non-standard ports. > > When it receives a request (eg http://localhost:8000) yaws compares > the host name in the request header ("hostname:8000") with the config > server names which have been stripped of the port no so the match > never succeeds. > > [It would also be nice if the virtual server lookup was case > insensitive...] > > Here is one possible solution (only tested on OS X with Safari): <snip/> Looks like a reasonable fix -- thanks! --steve |
From: John W. <jw...@go...> - 2009-01-10 12:23:17
|
Hi Steve, Thanks. Just to add that, if case insensitive lookup is appropriate, then a case insensitive comparison could also be included in the configuration validations, for example: *** ../yaws-1.78/src/yaws_config.erl Wed Dec 31 00:04:33 2008 --- src/yaws_config.erl Sat Jan 10 20:37:29 2009 *************** *** 183,189 **** ok end, %% second all servernames in a group must be unique ! SN = lists:sort([X#sconf.servername || X <- List]), no_two_same(SN). no_two_same([H,H|_]) -> --- 183,189 ---- ok end, %% second all servernames in a group must be unique ! SN = lists:sort([string:to_lower(X#sconf.servername) || X <- List]), no_two_same(SN). no_two_same([H,H|_]) -> Regards, John On Jan 10, 2009, at 5:23 PM, Steve Vinoski wrote: > On 1/10/09, John Webb <jw...@go...> wrote: >> Hello, >> >> Many thanks for the new release. >> >> I installed it on my MacBook but ran into problem with virtual server >> lookup on non-standard ports. >> >> When it receives a request (eg http://localhost:8000) yaws compares >> the host name in the request header ("hostname:8000") with the config >> server names which have been stripped of the port no so the match >> never succeeds. >> >> [It would also be nice if the virtual server lookup was case >> insensitive...] >> >> Here is one possible solution (only tested on OS X with Safari): > > <snip/> > > Looks like a reasonable fix -- thanks! > > --steve > > ------------------------------------------------------------------------------ > Check out the new SourceForge.net Marketplace. > It is the best place to buy or sell services for > just about anything Open Source. > http://p.sf.net/sfu/Xq1LFB > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list |
From: Steve V. <vi...@ie...> - 2009-01-10 16:33:28
|
On 1/10/09, John Webb <jw...@go...> wrote: > Hi Steve, > > Thanks. Just to add that, if case insensitive lookup is appropriate, then a > case insensitive comparison could also be included in the configuration > validations, for example: > > *** ../yaws-1.78/src/yaws_config.erl Wed Dec 31 > 00:04:33 2008 > --- src/yaws_config.erl Sat Jan 10 20:37:29 2009 > *************** > *** 183,189 **** > ok > end, > %% second all servernames in a group must be unique > ! SN = lists:sort([X#sconf.servername || X <- List]), > no_two_same(SN). > > no_two_same([H,H|_]) -> > --- 183,189 ---- > ok > end, > %% second all servernames in a group must be unique > ! SN = lists:sort([string:to_lower(X#sconf.servername) > || X <- List]), > no_two_same(SN). > > no_two_same([H,H|_]) -> Thanks again John, applied. Your patches got me to thinking about the Host header itself, not about its case but about its presence. RFC2616 is clear that HTTP 1.1 clients MUST send a Host header, otherwise the server MUST return a 400 Bad Request, but we're not checking for that. Klacke recently added some testing infrastructure to the Yaws repository which we're starting to use to make testing more visible, regular, and complete, so today or tomorrow I'll add a test and fix for this too. thanks, --steve |