X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/d936cf4d0b120b88f99c10dee5556d0ca7320324..984a831b49726c8ac1b517631b4bb4d071d1bb6a:/src/plugins/mailman.sml
diff --git a/src/plugins/mailman.sml b/src/plugins/mailman.sml
index fcfbc7c..d165dc6 100644
--- a/src/plugins/mailman.sml
+++ b/src/plugins/mailman.sml
@@ -42,8 +42,6 @@ fun mailmanPlace (EApp ((EVar "mailman_place_default", _), (EString node, _)), _
SOME (node, ip)
| mailmanPlace _ = NONE
-fun mailmanPlaceDefault node = (EApp ((EVar "mailman_place_default", dl), (EString node, dl)), dl)
-
val _ = Env.registerFunction ("mailman_place_to_web_node",
fn [e] => Option.map (fn (node, _) => (EString node, dl)) (mailmanPlace e)
| _ => NONE)
@@ -56,11 +54,6 @@ val _ = Env.registerFunction ("mailman_place_to_ip",
fn [e] => Option.map (fn (_, ip) => (EString ip, dl)) (mailmanPlace e)
| _ => NONE)
-val () = Defaults.registerDefault
- ("MailmanPlaces",
- (TList (TBase "mailman_place", dl), dl),
- (fn () => (EList [mailmanPlaceDefault Config.Mailman.node], dl)))
-
val files = ref ([] : TextIO.outstream list)
val write = ref (fn _ : string => ())
@@ -69,7 +62,7 @@ val () = Env.action_one "mailmanWebHost"
(fn host =>
let
val {write, writeDom, close} = Domain.domainsFile {node = Config.Mailman.node,
- name = "mailman"}
+ name = "mailman.conf"}
in
write "\t'";
write host;
@@ -87,6 +80,7 @@ val () = Env.actionV_one "mailmanVhost"
val ssl = Env.env Apache.ssl (env, "SSL")
val user = Env.env Env.string (env, "User")
+ val sadmin = Env.env Env.string (env, "ServerAdmin")
val fullHost = host ^ "." ^ Domain.currentDomain ()
val vhostId = fullHost ^ (if Option.isSome ssl then ".ssl" else "")
@@ -116,10 +110,12 @@ val () = Env.actionV_one "mailmanVhost"
print (Domain.currentDomain ());
print "\n";
print " ServerAdmin ";
- print user;
- print "@hcoop.net\n";
- print " SuexecUserGroup list list\n";
+ print sadmin;
+ print "\n";
+ (*
+ print " SuexecUserGroup list list\n";
print "\n";
+ *)
print " ErrorLog ";
print ld;
print "/error.log\n";
@@ -130,7 +126,11 @@ val () = Env.actionV_one "mailmanVhost"
print " RewriteEngine on\n";
print "\n";
print " # Default to showing listinfo page\n";
- print " RewriteRule ^/$ http://";
+ print " RewriteRule ^/$ http";
+ case ssl of
+ NONE => ()
+ | SOME _ => print "s";
+ print "://";
print fullHost;
print "/listinfo/\n";
print "\n";
@@ -150,6 +150,18 @@ val () = Env.actionV_one "mailmanVhost"
print " Order allow,deny\n";
print " Allow from all\n";
print " \n";
+ print "\n";
+ print "\n";
+ print " \n";
+ print " Order allow,deny\n";
+ print " Allow from all\n";
+ print " \n";
+ print "\n";
+ print " \n";
+ print " Options +SymlinksIfOwnerMatch -ExecCGI +Indexes\n";
+ print " Order allow,deny\n";
+ print " Allow from all\n";
+ print " \n";
Apache.doPre {user = user, nodes = map #1 places, id = vhostId, hostname = fullHost};
@@ -170,15 +182,15 @@ val () = Slave.registerFileHandler (fn fs =>
val spl = OS.Path.splitDirFile (#file fs)
in
case #file spl of
- "mailman" => mailmanChanged := true
+ "mailman.conf" => mailmanChanged := true
| _ => ()
end)
val () = Slave.registerPostHandler (fn () =>
if !mailmanChanged then
- (Slave.concatTo (fn s => s = "mailman")
+ (Slave.concatTo (fn s => s = "mailman.conf")
Config.Mailman.mapFile;
- Slave.enumerateTo (fn s => s = "mailman") ":"
+ Slave.enumerateTo (fn s => s = "mailman.conf") ":"
Config.Mailman.handleDomains;
Slave.shellF ([Config.Mailman.reload],
fn cl => "Error reloading Mailman with " ^ cl))
@@ -186,7 +198,7 @@ val () = Slave.registerPostHandler (fn () =>
())
val () = Domain.registerDescriber (Domain.considerAll
- [Domain.Filename {filename = "mailman",
+ [Domain.Filename {filename = "mailman.conf",
heading = "Mailman web host mapping:",
showEmpty = false}])