12#define WHO "instcheck"
14void perm(
char *prefix1,
char *prefix2,
char *prefix3,
char *
file,
int type,
int uid,
int gid,
int mode)
18 if (stat(
file,&st) == -1) {
20 logmsg(
WHO,0,WARN,B(
"file does nost exist:",prefix1,prefix2,prefix3,
file));
22 logmsg(
WHO,errno,WARN,B(
"unable to stat: ../",
file));
26 if ((
uid != -1) && (st.st_uid !=
uid))
27 logmsg(
WHO,0,WARN,B(
"file has wrong owner: ",prefix1,prefix2,prefix3,
file));
28 if ((gid != -1) && (st.st_gid != gid))
29 logmsg(
WHO,0,WARN,B(
"file has wrong group: ",prefix1,prefix2,prefix3,
file));
30 if ((st.st_mode & 07777) != mode)
31 logmsg(
WHO,0,WARN,B(
"file has wrong permissions: ",prefix1,prefix2,prefix3,
file));
32 if ((st.st_mode & S_IFMT) != type)
33 logmsg(
WHO,0,WARN,B(
"file has wrong type: ",prefix1,prefix2,prefix3,
file));
36void h(
char *
home,
char *queue,
int uid,
int gid,
int mode)
41void d(
char *
home,
char *subdir,
int uid,
int gid,
int mode)
43 if (chdir(
home) == -1)
44 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
home));
48void p(
char *
home,
char *fifo,
int uid,
int gid,
int mode)
50 if (chdir(
home) == -1)
51 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
home));
57 if (chdir(
home) == -1)
58 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
home));
59 if (chdir(subdir) == -1)
60 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
home,
"/",subdir));
66 if (chdir(
home) == -1)
67 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
home));
71int main(
int argc,
char *
const argv[])
73 if (argc == 2 && !str_diffn(argv[1],
"qmq",3))
qmq_hier();
void c(char *, char *, char *, int, int, int)
void p(char *home, char *fifo, int uid, int gid, int mode)
void perm(char *prefix1, char *prefix2, char *prefix3, char *file, int type, int uid, int gid, int mode)
void z(char *home, char *file, int len, int uid, int gid, int mode)
void h(char *home, char *queue, int uid, int gid, int mode)