Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/sup/source - don't declare victory when there are e...
details: https://anonhg.NetBSD.org/src/rev/53925ffb27cd
branches: trunk
changeset: 779013:53925ffb27cd
user: christos <christos%NetBSD.org@localhost>
date: Wed Apr 25 17:33:49 2012 +0000
description:
- don't declare victory when there are errors.
- better error messages.
diffstat:
usr.sbin/sup/source/supscan.c | 42 +++++++++++++++++++++++++++++-------------
1 files changed, 29 insertions(+), 13 deletions(-)
diffs (145 lines):
diff -r 508bdf72d20e -r 53925ffb27cd usr.sbin/sup/source/supscan.c
--- a/usr.sbin/sup/source/supscan.c Wed Apr 25 16:11:26 2012 +0000
+++ b/usr.sbin/sup/source/supscan.c Wed Apr 25 17:33:49 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: supscan.c,v 1.19 2011/08/31 16:25:00 plunky Exp $ */
+/* $NetBSD: supscan.c,v 1.20 2012/04/25 17:33:49 christos Exp $ */
/*
* Copyright (c) 1992 Carnegie Mellon University
@@ -158,7 +158,7 @@
void usage(void);
-void init(int, char **);
+int init(int, char **);
static SCAN_COLLECTION *getscancoll(char *, char *, char *);
int localhost(char *);
int main(int, char **);
@@ -171,6 +171,7 @@
main(int argc, char **argv)
{
SCAN_COLLECTION * volatile c; /* Avoid longjmp clobbering */
+ int errs;
#ifdef RLIMIT_DATA
struct rlimit dlim;
@@ -185,7 +186,11 @@
}
#endif
- init(argc, argv); /* process arguments */
+ errs = init(argc, argv); /* process arguments */
+ if (errs) {
+ fprintf(stderr, "supscan: %d collections had errors", errs);
+ return 1;
+ }
for (c = firstC; c; c = c->Cnext) {
collname = c->Cname;
basedir = c->Cbase;
@@ -202,10 +207,12 @@
if (!quiet)
printf("SUP Scan for %s completed at %s",
collname, ctime(&scantime));
- } else
+ } else {
fprintf(stderr,
"SUP: Scan for %s aborted at %s", collname,
ctime(&scantime));
+ errs++;
+ }
if (!quiet)
(void) fflush(stdout);
}
@@ -217,7 +224,7 @@
free(c->Cprefix);
free(c);
}
- exit(0);
+ return errs ? 1 : 0;
}
/*****************************************
*** I N I T I A L I Z A T I O N ***
@@ -232,7 +239,7 @@
exit(1);
}
-void
+int
init(int argc, char **argv)
{
char buf[STRINGLENGTH], fbuf[STRINGLENGTH], *p, *q;
@@ -240,6 +247,7 @@
SCAN_COLLECTION **c;
int fflag, sflag;
char *filename = NULL;
+ int errs = 0;
quiet = FALSE;
trace = FALSE;
@@ -297,9 +305,11 @@
*c = getscancoll(filename, estrdup(collname), NULL);
if (*c)
c = &((*c)->Cnext);
+ else
+ errs++;
}
(void) fclose(f);
- return;
+ return errs;
}
if (argc < 2 && fflag) {
firstC = NULL;
@@ -317,14 +327,19 @@
*c = getscancoll(filename, estrdup(q), estrdup(p));
if (*c)
c = &((*c)->Cnext);
+ else
+ errs++;
}
(void) fclose(f);
- return;
+ return errs;
}
if (argc < 2 || argc > 3)
usage();
firstC = getscancoll(filename, estrdup(argv[1]),
argc > 2 ? estrdup(argv[2]) : NULL);
+ if (firstC == NULL)
+ errs++;
+ return errs;
}
static SCAN_COLLECTION *
@@ -357,8 +372,8 @@
}
}
if (chdir(basedir) < 0) {
- fprintf(stderr, "supscan: Can't chdir to base directory %s for %s\n",
- basedir, collname);
+ fprintf(stderr, "supscan: Can't chdir to base directory %s "
+ "for %s (%s)\n", basedir, collname, strerror(errno));
return (NULL);
}
prefix = NULL;
@@ -372,8 +387,9 @@
continue;
prefix = estrdup(p);
if (chdir(prefix) < 0) {
- fprintf(stderr, "supscan: can't chdir to %s from base directory %s for %s\n",
- prefix, basedir, collname);
+ fprintf(stderr, "supscan: can't chdir to %s "
+ " from base directory %s for %s\n",
+ prefix, basedir, collname, strerror(errno));
fclose(f);
free(prefix);
return (NULL);
@@ -382,7 +398,7 @@
}
(void) fclose(f);
}
- if ((c = (SCAN_COLLECTION *) malloc(sizeof(SCAN_COLLECTION))) == NULL)
+ if ((c = malloc(sizeof(*c))) == NULL)
quit(1, "supscan: can't malloc collection structure\n");
c->Cname = collname;
c->Cbase = basedir;
Home |
Main Index |
Thread Index |
Old Index