10 #include <sys/types.h>
14 # define DECLARE_NS(X,Y) { #X, CLONE_NEW##X }
16 # warning CLONE_NEWNET not defined, using memorized value
17 # define DECLARE_NS(X,Y) { #X, Y }
20 #define SPACE_DIR "pl_spaces"
23 const char * const id;
28 /* All entries between FIRST_NS and the last defined namespace
29 * must be filled in */
34 text2ns(const char *str)
37 for (i=0; i<sizeof(NS2BIT)/sizeof(NS2BIT[0]); ++i)
38 if (strcmp(NS2BIT[i].id, str)==0) return NS2BIT[i].bit;
44 ns2text(unsigned int bit)
46 if ((size_t)bit>=sizeof(NS2BIT)/sizeof(NS2BIT[0])) return 0;
47 return NS2BIT[bit - FIRST_NS].id;
50 #define VSERVERCONF "/etc/vservers/"
53 get_space_flag(xid_t xid) {
54 char *ctx_space_dir, *space_name;
55 struct passwd *slice_user;
59 slice_user = get_pwuid(xid);
64 ctx_space_dir=(char *) malloc(sizeof(VSERVERCONF "/" SPACE_DIR "Z")+strlen(slice_user->pw_name));
68 sprintf(ctx_space_dir,VSERVERCONF "%s/" SPACE_DIR, slice_user->pw_name);
70 fp_in = fopen(ctx_space_dir,"r");
75 space_name=(char *) malloc(sizeof("GOBBLEDYGOOKZ"));
81 fgets(space_name,sizeof("GOBBLEDYGOOKZ"),fp_in);
83 bit = text2ns(space_name);