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}])