X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fconflict.c;h=3670e8e73cd5d29dcb548944865f72919779e580;hp=4a20e4ba0d4fb7b021ad772541cdcfb57131ab6b;hb=5b92ee6942b9b466914f5faa5fa4c00a2ebc6d35;hpb=d3ba09a465cb0e5fc9a74d0b152a7ed965f895cb diff --git a/uip/conflict.c b/uip/conflict.c index 4a20e4b..3670e8e 100644 --- a/uip/conflict.c +++ b/uip/conflict.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -74,7 +73,6 @@ main(int argc, char **argv) if (context_foil(NULL) == -1) done(1); - mts_init(invo_name); arguments = getarguments(invo_name, argc, argv, 0); argp = arguments; @@ -130,10 +128,6 @@ main(int argc, char **argv) grp_names(); grp_members(); grp_ids(); -#ifdef UCI - ldr_names(); - ldr_ship(); -#endif /* UCI */ maildrops(); done(0); @@ -287,10 +281,7 @@ maildrops(void) { register int i; - if (mmdfldir && *mmdfldir) - mdrop(mmdfldir); - if (uucpldir && *uucpldir) - mdrop(uucpldir); + mdrop(mailspool); for (i = 0; dirs[i]; i++) mdrop(dirs[i]); } @@ -361,10 +352,10 @@ setup(void) dup2(fd, 1); close(fd); } - execlp(mailproc, mhbasename(mailproc), + execlp("mhmail", "mhmail", mail, "-subject", invo_name, NULL); - adios(mailproc, "unable to exec "); + adios("mhmail", "unable to exec "); default: close(pd[0]); @@ -373,161 +364,3 @@ setup(void) } } } - -#ifdef UCI -/* -** UCI specific stuff for conflict -*/ - -/* taken from */ - -#define GLDRS "/admin/etc/GroupLeaders" - -struct grpldr { - char *gl_name; - char **gl_ldr; -}; - -int setglent(), endglent(); -struct grpldr *getglent(), *getglnam(); - - -/* taken from the getglent() routines */ - -#define MAXGLS 100 - -static FILE *glp = NULL; -static char line[BUFSIZ+1]; -static struct grpldr grpldr; -static char *gl_ldr[MAXGLS + 1]; - - -setglent() { - if (glp == NULL) - glp = fopen(GLDRS, "r"); - else - rewind(glp); - - return (glp != NULL); -} - - -endglent() { - if (glp != NULL) { - fclose(glp); - glp = NULL; - } - - return 1; -} - -struct grpldr *getglent() { - register char *cp, **q; - - if (glp == NULL && !setglent()) - return NULL; - if ((cp = fgets(line, BUFSIZ, glp)) == NULL) - return NULL; - - grpldr.gl_name = cp; - grpldr.gl_ldr = q = gl_ldr; - - while (*cp) { - while (*cp && !isspace(*cp)) - cp++; - while (*cp && isspace(*cp)) - *cp++ = '\0'; - if (*cp == '\0') - break; - if (q < gl_ldr + MAXGLS) - *q++ = cp; - else - break; - } - *q = NULL; - - return (&grpldr); -} - -struct grpldr *getglnam(name) -char *name; -{ - register struct grpldr *gl = NULL; - - setglent(); - while (gl = getglent()) - if (strcmp(name, gl->gl_name) == 0) - break; - endglent(); - - return gl; -} - -ldr_names() { - register int gp, hit = 0; - char *gldrs[NGRPS]; - register struct grpldr *gl; - - gldrs[0] = NULL; - setglent(); - while (gl = getglent()) { - if (getgrnam(gl->gl_name) == NULL) { - setup(); - fprintf(out, "unknown group %s in group leaders file\n", - gl->gl_name); - hit++; - } - for (gp = 0; gldrs[gp]; gp++) - if (strcmp(gldrs[gp], gl->gl_name) == 0) { - setup(); - fprintf(out, "duplicate group %s in group leaders file\n", gl->gl_name); - hit++; - break; - } - if (gldrs[gp] == NULL) - if (gp < NGRPS) { - gldrs[gp++] = getcpy(gl->gl_name); - gldrs[gp] = NULL; - } else { - setup(); - fprintf(out, "more than %d groups in group leaders file (time to recompile)\n", NGRPS - 1); - hit++; - } - } - endglent(); - - for (gp = 0; gldrs[gp]; gp++) - free(gldrs[gp]); - - if (!hit && out && !mail) - fprintf(out, "all groups in group leaders file accounted for\n"); -} - - -ldr_ship() { - register int hit = 0; - register char **cp, **dp; - register struct grpldr *gl; - - setglent(); - while (gl = getglent()) - for (cp = gl->gl_ldr; *cp; cp++) { - if (!check(*cp)) { - setup(); - fprintf(out, "group %s has unknown leader %s\n", gl->gl_name, *cp); - hit++; - } - - for (dp = cp + 1; *dp; dp++) - if (strcmp(*cp, *dp) == 0) { - setup(); - fprintf(out, "group %s had duplicate leader %s\n", gl->gl_name, *cp); - hit++; - } - } - endglent(); - - if (!hit && out && !mail) - fprintf(out, "all group leaders accounted for\n"); -} -#endif /* UCI */