domain.c-Dateireferenz

#include "/secure/master.h"
#include "/sys/files.h"
Include-Abhängigkeitsdiagramm für domain.c:

gehe zum Quellcode dieser Datei

Funktionen

int domain_master (string user, string domain)
int domain_member (string user, string domain)
int add_domain_master (string user, string dom)
int remove_domain_master (string user, string dom)
string * get_domains ()
string * get_domain_homes (string wiz)

Dokumentation der Funktionen

int add_domain_master ( string  user,
string  dom 
)

Definiert in Zeile 29 der Datei domain.c.

Benutzt domains, find_userinfo(), get_userinfo(), get_wiz_level(), GOD_LVL, LORD_LVL, SendWizardHelpMail(), set_domains(), SIMUL_EFUN_FILE, update_wiz_level() und USER_DOMAIN.

Wird benutzt von _addmaster().

00030 {
00031   string *domains;
00032   
00033   if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
00034         call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
00035         !find_userinfo(user))
00036     return 0;
00037   domains=get_userinfo(user)[USER_DOMAIN+1];
00038   if (!domains) 
00039     set_domains(user,({dom}));
00040   else
00041   {
00042     // Doppelte Eintraege vermeiden
00043     domains=domains-({dom})+({dom});
00044     set_domains(user, domains);
00045   }
00046   if (get_wiz_level(user) < LORD_LVL+5) {
00047     update_wiz_level(user,LORD_LVL+5);
00048     SendWizardHelpMail(user, LORD_LVL+5);
00049   }
00050   return 1;
00051 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

int domain_master ( string  user,
string  domain 
)

Definiert in Zeile 12 der Datei domain.c.

Benutzt domains, find_userinfo(), get_userinfo(), i und USER_DOMAIN.

Wird benutzt von ShowEPObjects(), valid_read() und valid_write().

00013 {
00014   string *domains;
00015   int i;
00016   
00017   if (!find_userinfo(user)||
00018       !pointerp(domains=get_userinfo(user)[USER_DOMAIN+1]))
00019     return 0;
00020   return (member(domains,domain) != -1);
00021 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

int domain_member ( string  user,
string  domain 
)

Definiert in Zeile 23 der Datei domain.c.

Benutzt IS_DOMAINMEMBER.

Wird benutzt von valid_write().

00024 {
00025   if (domain=="erzmagier") return 0;
00026   return (IS_DOMAINMEMBER(user)&&file_size("/d/"+domain+"/"+user)==-2);
00027 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string* get_domain_homes ( string  wiz  ) 

Definiert in Zeile 80 der Datei domain.c.

Benutzt FSIZE_DIR, get_domains(), query_wiz_level() und WIZARD_LVL.

Wird benutzt von create_wizard() und stat().

00081 {
00082   string *homes=({});
00083   string tmp;
00084   
00085   if (query_wiz_level(wiz)<=WIZARD_LVL) return ({});
00086 
00087   tmp = "/d/%s/"+wiz;
00088   foreach(string dir: get_domains()) {
00089       if (dir[0]!='.' && file_size(sprintf(tmp,dir)) == FSIZE_DIR)
00090           //Magierverzeichnis da und faengt nicht mit "." an: aufnehmen.
00091           homes+=({dir});
00092   }
00093   return homes;
00094 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string* get_domains (  ) 

Definiert in Zeile 67 der Datei domain.c.

Benutzt DOMAINDIR und FSIZE_DIR.

Wird benutzt von epilog() und get_domain_homes().

00067                       {
00068   string *regions=({});
00069   // alle Verzeichnisse in /d/ ermitteln
00070   foreach(string region: (get_dir("/"DOMAINDIR"/*") 
00071         || ({}))-({".","..","erzmagier"})) {
00072     if (region[0]!='.' && file_size("/d/"+region) == FSIZE_DIR)
00073         //Verzeichnis, kein File und faengt nicht mit "." an: aufnehmen.
00074         regions+=({region});
00075   }
00076   return regions;
00077 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

int remove_domain_master ( string  user,
string  dom 
)

Definiert in Zeile 53 der Datei domain.c.

Benutzt domains, find_userinfo(), get_userinfo(), IS_GOD, set_domains() und USER_DOMAIN.

Wird benutzt von _removemaster().

00054 {
00055   string *domains;
00056 
00057   if (!IS_GOD(geteuid(previous_object()))
00058       ||!find_userinfo(user)
00059       ||!(domains=get_userinfo(user)[USER_DOMAIN+1])
00060       || member(domains,dom)==-1)
00061     return 0;
00062   domains-=({dom});
00063   set_domains(user,domains);
00064   return 1;
00065 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

Erzeugt am Thu Jun 3 14:41:30 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3