Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Sep 2002 16:40:04 -0700 (PDT)
From:      "Chris S.J. Peron" <maneo@bsdpro.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/42974: [patch] ISO 8601 date format option
Message-ID:  <200209192340.g8JNe3X8010438@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/42974; it has been noted by GNATS.

From: "Chris S.J. Peron" <maneo@bsdpro.com>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: bin/42974: [patch] ISO 8601 date format option
Date: Thu, 19 Sep 2002 18:57:29 -0500

 Sorry..
 
 	I posted the wrong patch. The above patch will put some
 	un-necessary characters after the date/time.
 
 	This is the 'right' patch :)
 
 --- syslogd.o.c	Thu Sep 19 15:44:36 2002
 +++ syslogd.c	Thu Sep 19 18:21:21 2002
 @@ -129,6 +129,8 @@
  
  #define MAXFUNIX       20
  
 +#define MAXSTAMPLEN	20
 +
  int nfunix = 1;
  const char *funixn[MAXFUNIX] = { _PATH_LOG };
  int funix[MAXFUNIX];
 @@ -174,7 +176,7 @@
  		} f_pipe;
  	} f_un;
  	char	f_prevline[MAXSVLINE];		/* last message logged */
 -	char	f_lasttime[16];			/* time of last occurrence */
 +	char	f_lasttime[MAXSTAMPLEN];	/* time of last occurrence */
  	char	f_prevhost[MAXHOSTNAMELEN];	/* host from which recd. */
  	int	f_prevpri;			/* pri of f_prevline */
  	int	f_prevlen;			/* length of f_prevline */
 @@ -258,6 +260,7 @@
  
  int	Debug;			/* debug flag */
  int	resolve = 1;		/* resolve hostname */
 +int	iso8601stamp = 0;	/* date/time printed in YYYY-MM-DD HH:MM:SS format ISO 9601 */
  char	LocalHostName[MAXHOSTNAMELEN];	/* our hostname */
  const char	*LocalDomain;		/* our local domain name */
  int	*finet = NULL;		/* Internet datagram socket */
 @@ -333,7 +336,7 @@
  	socklen_t len;
  
  	bindhostname = NULL;
 -	while ((ch = getopt(argc, argv, "46Aa:b:cdf:kl:m:np:P:suv")) != -1)
 +	while ((ch = getopt(argc, argv, "46Aa:b:cDdf:kl:m:np:P:suv")) != -1)
  		switch (ch) {
  		case '4':
  			family = PF_INET;
 @@ -359,6 +362,9 @@
  		case 'd':		/* debug */
  			Debug++;
  			break;
 +		case 'D':
 +			iso8601stamp = 1;
 +			break;
  		case 'f':		/* configuration file */
  			ConfFile = optarg;
  			break;
 @@ -761,6 +767,7 @@
  	int flags;
  {
  	struct filed *f;
 +	struct tm *t;
  	int i, fac, msglen, omask, prilev;
  	const char *timestamp;
   	char prog[NAME_MAX+1];
 @@ -780,12 +787,19 @@
  		flags |= ADDDATE;
  
  	(void)time(&now);
 -	if (flags & ADDDATE)
 -		timestamp = ctime(&now) + 4;
 -	else {
 -		timestamp = msg;
 -		msg += 16;
 -		msglen -= 16;
 +	if (iso8601stamp) {
 +		timestamp = alloca(MAXSTAMPLEN);
 +		memset((char *)timestamp, 0, MAXSTAMPLEN);
 +		t = localtime(&now);
 +		strftime((char *)timestamp, MAXSTAMPLEN, "%Y-%m-%d %H:%M:%S", t);
 +	} else {
 +		if (flags & ADDDATE)
 +			timestamp = ctime(&now) + 4;
 +		else {
 +			timestamp = msg;
 +			msg += 16;
 +			msglen -= 16;
 +		}
  	}
  
  	/* skip leading blanks */
 @@ -868,7 +882,7 @@
  		    (flags & MARK) == 0 && msglen == f->f_prevlen &&
  		    !strcmp(msg, f->f_prevline) &&
  		    !strcasecmp(from, f->f_prevhost)) {
 -			(void)strlcpy(f->f_lasttime, timestamp, 16);
 +			(void)strlcpy(f->f_lasttime, timestamp, iso8601stamp ? MAXSTAMPLEN : 16);
  			f->f_prevcount++;
  			dprintf("msg repeated %d times, %ld sec of %d\n",
  			    f->f_prevcount, (long)(now - f->f_time),
 @@ -889,7 +903,7 @@
  				fprintlog(f, 0, (char *)NULL);
  			f->f_repeatcount = 0;
  			f->f_prevpri = pri;
 -			(void)strlcpy(f->f_lasttime, timestamp, 16);
 +			(void)strlcpy(f->f_lasttime, timestamp, iso8601stamp ? MAXSTAMPLEN : 16);
  			(void)strlcpy(f->f_prevhost, from,
  			    sizeof(f->f_prevhost));
  			if (msglen < MAXSVLINE) {
 @@ -932,7 +946,7 @@
  		v++;
  	} else {
  		v->iov_base = f->f_lasttime;
 -		v->iov_len = 15;
 +		v->iov_len = iso8601stamp ? MAXSTAMPLEN - 1 : 15;
  		v++;
  		v->iov_base = " ";
  		v->iov_len = 1;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209192340.g8JNe3X8010438>