X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/acef55cc1820116d689a0ecb8722453a4d353b8e..291eacbf162d2823f4667cbb3f9330528c4acf99:/src/plugins/apache.sml diff --git a/src/plugins/apache.sml b/src/plugins/apache.sml index adc579e..3b535c3 100644 --- a/src/plugins/apache.sml +++ b/src/plugins/apache.sml @@ -68,18 +68,22 @@ val _ = Env.type_one "proxy_target" fun default () = List.exists (fn s' => s = s') Config.Apache.proxyTargets in case String.fields (fn ch => ch = #":") s of - "http" :: "//localhost" :: rest => + "http" :: host :: rest => let val rest = String.concatWith ":" rest in - CharVector.all (fn ch => Char.isPrint ch andalso not (Char.isSpace ch) - andalso ch <> #"\"" andalso ch <> #"'") rest - andalso case String.fields (fn ch => ch = #"/") rest of - port :: _ => - (case Int.fromString port of - NONE => default () - | SOME n => n > 1024 orelse default ()) - | _ => default () + if List.exists (fn h' => host = h') (map (fn h => String.concat ["//", h]) Config.Apache.proxyHosts) + then + CharVector.all (fn ch => Char.isPrint ch andalso not (Char.isSpace ch) + andalso ch <> #"\"" andalso ch <> #"'") rest + andalso case String.fields (fn ch => ch = #"/") rest of + port :: _ => + (case Int.fromString port of + NONE => default () + | SOME n => n > 1024 orelse default ()) + | _ => default () + else + default () end | _ => default () end)