Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/secure/master/domain.c b/secure/master/domain.c
new file mode 100644
index 0000000..99ec6f6
--- /dev/null
+++ b/secure/master/domain.c
@@ -0,0 +1,95 @@
+// MorgenGrauen MUDlib
+//
+// master/domain.c -- Regionen und Regionsmagier
+//
+// $Id: domain.c 7162 2009-02-26 21:14:43Z Zesstra $
+
+#pragma strict_types
+
+#include "/secure/master.h"
+#include "/sys/files.h"
+
+int domain_master(string user, string domain)
+{
+  string *domains;
+  int i;
+  
+  if (!find_userinfo(user)||
+      !pointerp(domains=get_userinfo(user)[USER_DOMAIN+1]))
+    return 0;
+  return (member(domains,domain) != -1);
+}
+
+int domain_member(string user, string domain)
+{
+  if (domain=="erzmagier") return 0;
+  return (IS_DOMAINMEMBER(user)&&file_size("/d/"+domain+"/"+user)==-2);
+}
+
+int add_domain_master(string user,string dom)
+{
+  string *domains;
+  
+  if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
+        call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
+        !find_userinfo(user))
+    return 0;
+  domains=get_userinfo(user)[USER_DOMAIN+1];
+  if (!domains) 
+    set_domains(user,({dom}));
+  else
+  {
+    // Doppelte Eintraege vermeiden
+    domains=domains-({dom})+({dom});
+    set_domains(user, domains);
+  }
+  if (get_wiz_level(user) < LORD_LVL+5) {
+    update_wiz_level(user,LORD_LVL+5);
+    SendWizardHelpMail(user, LORD_LVL+5);
+  }
+  return 1;
+}
+
+int remove_domain_master(string user,string dom)
+{
+  string *domains;
+
+  if (!IS_GOD(geteuid(previous_object()))
+      ||!find_userinfo(user)
+      ||!(domains=get_userinfo(user)[USER_DOMAIN+1])
+      || member(domains,dom)==-1)
+    return 0;
+  domains-=({dom});
+  set_domains(user,domains);
+  return 1;
+}
+
+string *get_domains() {
+  string *regions=({});
+  // alle Verzeichnisse in /d/ ermitteln
+  foreach(string region: (get_dir("/"DOMAINDIR"/*") 
+        || ({}))-({".","..","erzmagier"})) {
+    if (region[0]!='.' && file_size("/d/"+region) == FSIZE_DIR)
+        //Verzeichnis, kein File und faengt nicht mit "." an: aufnehmen.
+        regions+=({region});
+  }
+  return regions;
+}
+
+// in welchen Regionen hat 'wiz' ein Verzeichnis?
+string *get_domain_homes(string wiz)
+{
+  string *homes=({});
+  string tmp;
+  
+  if (query_wiz_level(wiz)<=WIZARD_LVL) return ({});
+
+  tmp = "/d/%s/"+wiz;
+  foreach(string dir: get_domains()) {
+      if (dir[0]!='.' && file_size(sprintf(tmp,dir)) == FSIZE_DIR)
+          //Magierverzeichnis da und faengt nicht mit "." an: aufnehmen.
+          homes+=({dir});
+  }
+  return homes;
+}
+