summaryrefslogtreecommitdiffstats
path: root/misc-utils/logger.c
diff options
context:
space:
mode:
authorSami Kerola2011-02-24 20:16:41 +0100
committerKarel Zak2011-03-08 12:04:06 +0100
commit49999d6aef7b98c66d2df5163a3517775ac0780f (patch)
treed19532afa1fadd098d136a0486b26c35c05c6bf4 /misc-utils/logger.c
parentlogger: support long options (diff)
downloadkernel-qcow2-util-linux-49999d6aef7b98c66d2df5163a3517775ac0780f.tar.gz
kernel-qcow2-util-linux-49999d6aef7b98c66d2df5163a3517775ac0780f.tar.xz
kernel-qcow2-util-linux-49999d6aef7b98c66d2df5163a3517775ac0780f.zip
logger: use libc error printing facilities
Signed-off-by: Sami Kerola <kerolasa@iki.fi> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/logger.c')
-rw-r--r--misc-utils/logger.c72
1 files changed, 29 insertions, 43 deletions
diff --git a/misc-utils/logger.c b/misc-utils/logger.c
index 50a9358c1..5ecec761d 100644
--- a/misc-utils/logger.c
+++ b/misc-utils/logger.c
@@ -69,23 +69,18 @@ myopenlog(const char *sock) {
int fd;
static struct sockaddr_un s_addr; /* AF_UNIX address of local logger */
- if (strlen(sock) >= sizeof(s_addr.sun_path)) {
- printf (_("logger: openlog: pathname too long\n"));
- exit(1);
- }
+ if (strlen(sock) >= sizeof(s_addr.sun_path))
+ errx(EXIT_FAILURE, _("openlog %s: pathname too long"), sock);
s_addr.sun_family = AF_UNIX;
(void)strcpy(s_addr.sun_path, sock);
- if ((fd = socket(AF_UNIX, optd ? SOCK_DGRAM : SOCK_STREAM, 0)) == -1) {
- printf (_("socket: %s.\n"), strerror(errno));
- exit (1);
- }
+ if ((fd = socket(AF_UNIX, optd ? SOCK_DGRAM : SOCK_STREAM, 0)) == -1)
+ err(EXIT_FAILURE, _("socket %s"), sock);
+
+ if (connect(fd, (struct sockaddr *) &s_addr, sizeof(s_addr)) == -1)
+ err(EXIT_FAILURE, _("connect %s"), sock);
- if (connect(fd, (struct sockaddr *) &s_addr, sizeof(s_addr)) == -1) {
- printf (_("connect: %s.\n"), strerror(errno));
- exit (1);
- }
return fd;
}
@@ -95,24 +90,19 @@ udpopenlog(const char *servername,int port) {
struct sockaddr_in s_addr;
struct hostent *serverhost;
- if ((serverhost = gethostbyname(servername)) == NULL ){
- printf (_("unable to resolve '%s'\n"), servername);
- exit(1);
- }
+ if ((serverhost = gethostbyname(servername)) == NULL )
+ errx(EXIT_FAILURE, _("unable to resolve '%s'"), servername);
- if ((fd = socket(AF_INET, SOCK_DGRAM , 0)) == -1) {
- printf (_("socket: %s.\n"), strerror(errno));
- exit (1);
- }
+ if ((fd = socket(AF_INET, SOCK_DGRAM , 0)) == -1)
+ err(EXIT_FAILURE, _("socket"));
bcopy(serverhost->h_addr,&s_addr.sin_addr,serverhost->h_length);
s_addr.sin_family=AF_INET;
s_addr.sin_port=htons(port);
- if (connect(fd, (struct sockaddr *) &s_addr, sizeof(s_addr)) == -1) {
- printf (_("connect: %s.\n"), strerror(errno));
- exit(1);
- }
+ if (connect(fd, (struct sockaddr *) &s_addr, sizeof(s_addr)) == -1)
+ err(EXIT_FAILURE, _("connect"));
+
return fd;
}
static void
@@ -205,15 +195,12 @@ main(int argc, char **argv) {
pri = LOG_NOTICE;
logflags = 0;
while ((ch = getopt_long(argc, argv, "f:ip:st:u:dn:P:Vh",
- longopts, NULL)) != -1)
+ longopts, NULL)) != -1) {
switch((char)ch) {
case 'f': /* file to log */
- if (freopen(optarg, "r", stdin) == NULL) {
- int errsv = errno;
- (void)fprintf(stderr, _("logger: %s: %s.\n"),
- optarg, strerror(errsv));
- exit(1);
- }
+ if (freopen(optarg, "r", stdin) == NULL)
+ err(EXIT_FAILURE, _("file %s"),
+ optarg);
break;
case 'i': /* log process id also */
logflags |= LOG_PID;
@@ -255,6 +242,7 @@ main(int argc, char **argv) {
default:
usage(stderr);
}
+ }
argc -= optind;
argv += optind;
@@ -300,7 +288,7 @@ main(int argc, char **argv) {
else
mysyslog(LogSock, logflags, pri, tag, buf);
}
- } else
+ } else {
while (fgets(buf, sizeof(buf), stdin) != NULL) {
/* glibc is buggy and adds an additional newline,
so we have to remove it here until glibc is fixed */
@@ -314,11 +302,13 @@ main(int argc, char **argv) {
else
mysyslog(LogSock, logflags, pri, tag, buf);
}
+ }
if (!usock)
closelog();
else
close(LogSock);
- exit(0);
+
+ return EXIT_SUCCESS;
}
/*
@@ -335,11 +325,9 @@ pencode(s)
if (*s) {
*s = '\0';
fac = decode(save, facilitynames);
- if (fac < 0) {
- (void)fprintf(stderr,
- _("logger: unknown facility name: %s.\n"), save);
- exit(1);
- }
+ if (fac < 0)
+ errx(EXIT_FAILURE,
+ _("unknown facility name: %s."), save);
*s++ = '.';
}
else {
@@ -347,11 +335,9 @@ pencode(s)
s = save;
}
lev = decode(s, prioritynames);
- if (lev < 0) {
- (void)fprintf(stderr,
- _("logger: unknown priority name: %s.\n"), save);
- exit(1);
- }
+ if (lev < 0)
+ errx(EXIT_FAILURE,
+ _("unknown priority name: %s."), save);
return ((lev & LOG_PRIMASK) | (fac & LOG_FACMASK));
}