diff --git a/collects/web-server/dispatchers/dispatch-host.ss b/collects/web-server/dispatchers/dispatch-host.ss index 7d0a5ffef2..0b3618037c 100644 --- a/collects/web-server/dispatchers/dispatch-host.ss +++ b/collects/web-server/dispatchers/dispatch-host.ss @@ -3,6 +3,7 @@ (lib "plt-match.ss") (lib "url.ss" "net") "../private/request-structs.ss" + "../private/util.ss" "dispatch.ss") (provide/contract [interface-version dispatcher-interface-version?] @@ -14,12 +15,12 @@ ((lookup-dispatcher host) conn req)) ;; get-host : Url (listof (cons Symbol String)) -> Symbol - ;; XXX host names are case insesitive---Internet RFC 1034 (define (get-host uri headers) (cond - [(url-host uri) => string->symbol] + [(url-host uri) + => lowercase-symbol!] [(headers-assq* #"Host" headers) => (match-lambda [(struct header (_ v)) - (string->symbol (bytes->string/utf-8 v))])] - [else ']))) \ No newline at end of file + (lowercase-symbol! v)])] + [else 'none]))) \ No newline at end of file diff --git a/collects/web-server/docs/reference/dispatchers.scrbl b/collects/web-server/docs/reference/dispatchers.scrbl index 6a2ecd02e4..c9c6e21dfe 100644 --- a/collects/web-server/docs/reference/dispatchers.scrbl +++ b/collects/web-server/docs/reference/dispatchers.scrbl @@ -225,7 +225,7 @@ that calls a different dispatcher based upon the host requested. dispatcher?]{ Extracts a host from the URL requested, or the Host HTTP header, calls @scheme[lookup-dispatcher] with the host, and invokes the - returned dispatcher. If no host can be extracted, then @scheme['] + returned dispatcher. If no host can be extracted, then @scheme['none] is used. }