case String.tokens (fn ch => ch = #"@") name of
[user, dom] =>
let
- val mmf = Util.domainDir dom ^ "/.mailman"
+ val mmf = Util.domainDir dom ^ "/mailman"
in
if Posix.FileSys.access (mmf, []) then
let
val inf = TextIO.openIn mmf
in
(case TextIO.inputLine inf of
- NONE => (user, dom)
+ NONE => {user = user, dom = dom, vhost = "<<<No darned data in " ^ mmf ^ ">>>"}
| SOME line =>
- (user, String.substring (line, 0, size line - 1)))
+ case String.tokens (fn ch => Char.isSpace ch orelse ch = #":" orelse ch = #"'" orelse ch = #",") line of
+ [vhost, _] => {user = user, dom = dom, vhost = "http://" ^ vhost}
+ | _ => {user = user, dom = dom, vhost = "<<<Parse failure in " ^ mmf ^ ">>>"})
before TextIO.closeIn inf
- end handle _ => (user, dom)
+ end handle _ => {user = user, dom = dom, vhost = "<<<A darn old exception reading " ^ mmf ^ ">>>"}
else
- (user, dom)
+ {user = user, dom = dom, vhost = "https://lists.hcoop.net"}
end
| _ => raise (Fail "Bad mailing list name")