</table>
<% if admin then
- val (user, dom) = MailingList.listWebHost (#data req) %>
+ val vitals = MailingList.listWebHost (#data req) %>
<br>
<a href="list?mod=<% #id req %>">[Modify]</a>
<a href="list?del=<% #id req %>">[Delete]</a><br>
- To set up, run: <tt>listnew <% user %> <% dom %> <% name %> <% Util.randomPassword () %></tt>
+ To set up, run: <tt>listnew <% #user vitals %> <% #dom vitals %> <% #vhost vitals %> <% name %> <% Util.randomPassword () %></tt>
<% end %>
<% end
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 = 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 = dom}
end
| _ => raise (Fail "Bad mailing list name")
fun randomPassword () = Int.toString (Int.abs (Random.randInt (!rnd)))
fun domainDir dom =
- String.concatWith "/" ("/etc/domains" :: String.fields (fn ch => ch = #".") dom)
+ String.concatWith "/" ("/afs/hcoop.net/common/etc/domtool/nodes/deleuze" :: List.rev (String.fields (fn ch => ch = #".") dom))
fun readFile fname =
let