Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 29712 Details for
Bug 48493
Patch for rdate provides quiet mode
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
rdate quiet mode
rdate-quiet_mode.patch (text/plain), 5.60 KB, created by
Karol Wojtaszek (RETIRED)
on 2004-04-20 10:59:41 UTC
(
hide
)
Description:
rdate quiet mode
Filename:
MIME Type:
Creator:
Karol Wojtaszek (RETIRED)
Created:
2004-04-20 10:59:41 UTC
Size:
5.60 KB
patch
obsolete
>diff -Naur rdate-990821.orig/rdate.1 rdate-990821/rdate.1 >--- rdate-990821.orig/rdate.1 1999-08-21 22:46:41.000000000 +0200 >+++ rdate-990821/rdate.1 2004-04-18 22:45:15.000000000 +0200 >@@ -4,7 +4,7 @@ > rdate \- get the date and time via the network > .SH "SYNOPSIS" > .B rdate >-[\-p] [\-s] [\-u] [host...] >+[\-p] [\-s] [\-u] [\-q] [host...] > .SH "DESCRIPTION" > .B Rdate > uses TCP or UDP to retrieve the current time of another machine using >@@ -30,6 +30,9 @@ > .I \-u > Use UDP to retrieve the time instead of TCP. > The client will timeout if no reply is received within 5 seconds. >+.TP >+.I \-q >+Quiet mode. > .SH FILES > .nf > /etc/services map service name to socket number >@@ -51,6 +54,9 @@ > .TP > 21-Aug-99 Arkadiusz Miskiewicz <misiek@pld.org.pl> > Added IPv6 support via TCP and UDP. >+.TP >+21-Aug-99 Karol Wojtaszek <sekretarz@dukato.net> >+Added quiet mode. > .SH BUGS > Timeout handling on UDP doesn't work after the first server. > Something to do with signal(2) semantics I don't understand. >diff -Naur rdate-990821.orig/rdate.c rdate-990821/rdate.c >--- rdate-990821.orig/rdate.c 1999-08-21 22:46:41.000000000 +0200 >+++ rdate-990821/rdate.c 2004-04-19 18:39:10.128450056 +0200 >@@ -10,11 +10,34 @@ > #include <string.h> > #include <signal.h> > #include <setjmp.h> >+#include <stdarg.h> > > /* difference between Unix time and net time */ > #define BASE1970 2208988800UL > > jmp_buf jmp; >+int quiet = 0; >+ >+ >+int p_fprintf(FILE *p, char *fmt, ...) >+{ >+ va_list ap; >+ int ret; >+ >+ if (quiet == 1) return; >+ >+ va_start(ap, fmt); >+ ret = vfprintf(p, fmt, ap); >+ >+ va_end(ap); >+ return ret; >+} >+ >+int p_perror(char *s) >+{ >+ if (quiet == 0) perror(s); >+ >+} > > void alarm_handler(int signum) > { >@@ -44,17 +67,17 @@ > > #ifndef INET6 > if ((him = gethostbyname(host)) == NULL) { >- fprintf(stderr, "rdate: Unknown host %s\n", host); >+ p_fprintf(stderr, "rdate: Unknown host %s\n", host); > return(-1); > } > > if ((timeServ = getservbyname("time","udp")) == NULL) { >- fprintf(stderr, "rdate: time/udp: unknown service\n"); >+ p_fprintf(stderr, "rdate: time/udp: unknown service\n"); > return(-1); > } > > if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { >- perror("rdate"); >+ p_perror("rdate"); > return(-1); > } > >@@ -70,7 +93,7 @@ > hints.ai_socktype = SOCK_DGRAM; > err = getaddrinfo(host, "time", &hints, &res0); > if (err < 0) { >- fprintf(stderr, "rdate %s", gai_strerror(err)); >+ p_fprintf(stderr, "rdate %s", gai_strerror(err)); > return(-1); > } > err = -1; >@@ -83,13 +106,13 @@ > } > freeaddrinfo(res0); > if (err < 0) { >- perror("rdate"); >+ p_perror("rdate"); > return(-1); > } > > if (sendto(fd, netTime, 0, 0, res->ai_addr, res->ai_addrlen) < 0) { > #endif >- perror("rdate"); >+ p_perror("rdate"); > close(fd); > return (-1); > } >@@ -106,17 +129,17 @@ > if ((jmpstatus = setjmp(jmp)) == 0 && > (n = recvfrom(fd, netTime, sizeof(netTime), 0, res->ai_addr, &res->ai_addrlen)) < 0) { > #endif >- perror("rdate"); >+ p_perror("rdate"); > close(fd); > return (-1); > } > if (jmpstatus != 0) { >- fprintf(stderr, "rdate: timed out waiting for data from %s\n", host); >+ p_fprintf(stderr, "rdate: timed out waiting for data from %s\n", host); > close(fd); > return (-1); > } > if (n < sizeof(netTime)) { >- fprintf(stderr, "rdate: partial data read from %s\n", host); >+ p_fprintf(stderr, "rdate: partial data read from %s\n", host); > close(fd); > return (-1); > } >@@ -151,17 +174,17 @@ > > #ifndef INET6 > if ((him = gethostbyname(host)) == NULL) { >- fprintf(stderr, "rdate: Unknown host %s\n", host); >+ p_fprintf(stderr, "rdate: Unknown host %s\n", host); > return(-1); > } > > if ((timeServ = getservbyname("time","tcp")) == NULL) { >- fprintf(stderr, "rdate: time/tcp: unknown service\n"); >+ p_fprintf(stderr, "rdate: time/tcp: unknown service\n"); > return(-1); > } > > if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { >- perror("rdate"); >+ p_perror("rdate"); > return(-1); > } > >@@ -170,7 +193,7 @@ > sin.sin_port = timeServ->s_port; > > if (connect(fd, &sin, sizeof(sin)) < 0) { >- perror("rdate"); >+ p_perror("rdate"); > close(fd); > return(-1); > } >@@ -181,7 +204,7 @@ > hints.ai_socktype = SOCK_STREAM; > err = getaddrinfo(host, "time", &hints, &res0); > if (err < 0) { >- fprintf(stderr, "rdate %s", gai_strerror(err)); >+ p_fprintf(stderr, "rdate %s", gai_strerror(err)); > return(-1); > } > err = -1; >@@ -198,7 +221,7 @@ > } > freeaddrinfo(res0); > if (err < 0) { >- perror("rdate"); >+ p_perror("rdate"); > return(-1); > } > #endif >@@ -207,7 +230,7 @@ > for (i = 0; i < 4; ) { > int l = read(fd, &netTime[i], 4-i); > if (l <= 0) { >- perror("rdate"); >+ p_perror("rdate"); > close(fd); > return(-1); > } >@@ -230,7 +253,7 @@ > int o, mode = 0; > time_t t; > >- while ((o = getopt(argc, argv, "spu")) != EOF) >+ while ((o = getopt(argc, argv, "spuq")) != EOF) > switch (o) { > case 'p': > mode |= 1; >@@ -241,9 +264,12 @@ > case 'u': > mode |= 4; > break; >+ case 'q': >+ quiet = 1; >+ break; > default: > usage: >- fprintf(stderr, "Usage: rdate [-s] [-p] [-u] <host> ...\n"); >+ p_fprintf(stderr, "Usage: rdate [-s] [-p] [-u] [-q] <host> ...\n"); > return 1; > } > if (optind >= argc) >@@ -256,10 +282,10 @@ > if (t == (time_t)-1) > continue; > if (mode & 1) >- printf("[%s]\t%s", argv[o], ctime(&t)); >+ p_fprintf(stdout,"[%s]\t%s", argv[o], ctime(&t)); > if (mode & 2) > if (stime(&t) < 0) { >- perror("rdate"); >+ p_perror("rdate"); > return 1; > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 48493
: 29712