| _ => NONE)
fun mailmanPlace (EApp ((EVar "mailman_place_default", _), (EString node, _)), _) =
- SOME (node, Domain.nodeIp node)
- | mailmanPlace (EApp ((EApp ((EVar "mailman_place", _), (EString node, _)), _), (EString ip, _)), _) =
- SOME (node, ip)
+ SOME (node, Domain.nodeIp node, Domain.nodeIpv6 node)
+ | mailmanPlace (EApp ((EApp ((EApp ((EVar "mailman_place", _), (EString node, _)), _), (EString ip, _)), _), (EString ipv6, _)), _) =
+ SOME (node, ip, ipv6)
| mailmanPlace _ = NONE
val _ = Env.registerFunction ("mailman_place_to_web_node",
- fn [e] => Option.map (fn (node, _) => (EString node, dl)) (mailmanPlace e)
+ fn [e] => Option.map (fn (node, _, _) => (EString node, dl)) (mailmanPlace e)
| _ => NONE)
val _ = Env.registerFunction ("mailman_place_to_node",
- fn [e] => Option.map (fn (node, _) => (EString node, dl)) (mailmanPlace e)
+ fn [e] => Option.map (fn (node, _, _) => (EString node, dl)) (mailmanPlace e)
| _ => NONE)
val _ = Env.registerFunction ("mailman_place_to_ip",
- fn [e] => Option.map (fn (_, ip) => (EString ip, dl)) (mailmanPlace e)
+ fn [e] => Option.map (fn (_, ip, _) => (EString ip, dl)) (mailmanPlace e)
+ | _ => NONE)
+
+val _ = Env.registerFunction ("mailman_place_to_ip",
+ fn [e] => Option.map (fn (_, _, ipv6) => (EString ipv6, dl)) (mailmanPlace e)
| _ => NONE)
val files = ref ([] : TextIO.outstream list)
val vhostId = fullHost ^ (if Option.isSome ssl then ".ssl" else "")
val confFile = fullHost ^ (if Option.isSome ssl then ".vhost_ssl" else ".vhost")
in
- app (fn (node, ip) =>
+ app (fn (node, ip, ipv6) =>
let
val file = Domain.domainFile {node = node,
name = confFile}
print user;
print "\n";
print "<VirtualHost ";
+
print ip;
print ":";
print (case ssl of
SOME _ => "443"
| NONE => "80");
+
+ print " [";
+ print ipv6;
+ print "]";
+ print ":";
+ print (case ssl of
+ SOME _ => "443"
+ | NONE => "80");
+
print ">\n";
print " ServerName ";
print host;
print " ServerAdmin ";
print sadmin;
print "\n";
- (*
+ case ssl of
+ SOME cert =>
+ (print "\n\tSSLEngine on\n\tSSLCertificateFile ";
+ print cert;
+ print "\n")
+ | NONE => ();
+ (*
print " SuexecUserGroup list list\n";
print "\n";
*)