diff options
Diffstat (limited to 'lib/libc/net/res_debug.c')
| -rw-r--r-- | lib/libc/net/res_debug.c | 467 | 
1 files changed, 245 insertions, 222 deletions
| diff --git a/lib/libc/net/res_debug.c b/lib/libc/net/res_debug.c index 0bd882ad2d91..a40a3895f321 100644 --- a/lib/libc/net/res_debug.c +++ b/lib/libc/net/res_debug.c @@ -53,22 +53,20 @@  #if defined(LIBC_SCCS) && !defined(lint)  static char sccsid[] = "@(#)res_debug.c	8.1 (Berkeley) 6/4/93"; +static char rcsid[] = "$Id: res_debug.c,v 4.9.1.16 1994/07/11 07:41:13 vixie Exp $";  #endif /* LIBC_SCCS and not lint */  #include <sys/param.h>  #include <netinet/in.h> +#include <netiso/iso.h>  #include <arpa/inet.h>  #include <arpa/nameser.h> -#include <resolv.h> +  #include <stdio.h> +#include <resolv.h>  #include <string.h> -void __fp_query(); -char *__p_class(), *__p_time(), *__p_type(); -char *p_cdname(), *p_fqname(), *p_rr(); -static char *p_option __P((u_int32_t)); - -char *_res_opcodes[] = { +const char *_res_opcodes[] = {  	"QUERY",  	"IQUERY",  	"CQUERYM", @@ -87,7 +85,7 @@ char *_res_opcodes[] = {  	"ZONEREF",  }; -char *_res_resultcodes[] = { +const char *_res_resultcodes[] = {  	"NOERROR",  	"FORMERR",  	"SERVFAIL", @@ -108,110 +106,115 @@ char *_res_resultcodes[] = {  static char retbuf[16]; -static char * +static const char *  dewks(wks)  	int wks;  {  	switch (wks) { -	case 5: return("rje"); -	case 7: return("echo"); -	case 9: return("discard"); -	case 11: return("systat"); -	case 13: return("daytime"); -	case 15: return("netstat"); -	case 17: return("qotd"); -	case 19: return("chargen"); -	case 20: return("ftp-data"); -	case 21: return("ftp"); -	case 23: return("telnet"); -	case 25: return("smtp"); -	case 37: return("time"); -	case 39: return("rlp"); -	case 42: return("name"); -	case 43: return("whois"); -	case 53: return("domain"); -	case 57: return("apts"); -	case 59: return("apfs"); -	case 67: return("bootps"); -	case 68: return("bootpc"); -	case 69: return("tftp"); -	case 77: return("rje"); -	case 79: return("finger"); -	case 87: return("link"); -	case 95: return("supdup"); -	case 100: return("newacct"); -	case 101: return("hostnames"); -	case 102: return("iso-tsap"); -	case 103: return("x400"); -	case 104: return("x400-snd"); -	case 105: return("csnet-ns"); -	case 109: return("pop-2"); -	case 111: return("sunrpc"); -	case 113: return("auth"); -	case 115: return("sftp"); -	case 117: return("uucp-path"); -	case 119: return("nntp"); -	case 121: return("erpc"); -	case 123: return("ntp"); -	case 133: return("statsrv"); -	case 136: return("profile"); -	case 144: return("NeWS"); -	case 161: return("snmp"); -	case 162: return("snmp-trap"); -	case 170: return("print-srv"); -	default: (void) sprintf(retbuf, "%d", wks); return(retbuf); +	case 5: return "rje"; +	case 7: return "echo"; +	case 9: return "discard"; +	case 11: return "systat"; +	case 13: return "daytime"; +	case 15: return "netstat"; +	case 17: return "qotd"; +	case 19: return "chargen"; +	case 20: return "ftp-data"; +	case 21: return "ftp"; +	case 23: return "telnet"; +	case 25: return "smtp"; +	case 37: return "time"; +	case 39: return "rlp"; +	case 42: return "name"; +	case 43: return "whois"; +	case 53: return "domain"; +	case 57: return "apts"; +	case 59: return "apfs"; +	case 67: return "bootps"; +	case 68: return "bootpc"; +	case 69: return "tftp"; +	case 77: return "rje"; +	case 79: return "finger"; +	case 87: return "link"; +	case 95: return "supdup"; +	case 100: return "newacct"; +	case 101: return "hostnames"; +	case 102: return "iso-tsap"; +	case 103: return "x400"; +	case 104: return "x400-snd"; +	case 105: return "csnet-ns"; +	case 109: return "pop-2"; +	case 111: return "sunrpc"; +	case 113: return "auth"; +	case 115: return "sftp"; +	case 117: return "uucp-path"; +	case 119: return "nntp"; +	case 121: return "erpc"; +	case 123: return "ntp"; +	case 133: return "statsrv"; +	case 136: return "profile"; +	case 144: return "NeWS"; +	case 161: return "snmp"; +	case 162: return "snmp-trap"; +	case 170: return "print-srv"; +	default: (void) sprintf(retbuf, "%d", wks); return (retbuf);  	}  } -static char * +static const char *  deproto(protonum)  	int protonum;  {  	switch (protonum) { -	case 1: return("icmp"); -	case 2: return("igmp"); -	case 3: return("ggp"); -	case 5: return("st"); -	case 6: return("tcp"); -	case 7: return("ucl"); -	case 8: return("egp"); -	case 9: return("igp"); -	case 11: return("nvp-II"); -	case 12: return("pup"); -	case 16: return("chaos"); -	case 17: return("udp"); -	default: (void) sprintf(retbuf, "%d", protonum); return(retbuf); +	case 1: return "icmp"; +	case 2: return "igmp"; +	case 3: return "ggp"; +	case 5: return "st"; +	case 6: return "tcp"; +	case 7: return "ucl"; +	case 8: return "egp"; +	case 9: return "igp"; +	case 11: return "nvp-II"; +	case 12: return "pup"; +	case 16: return "chaos"; +	case 17: return "udp"; +	default: (void) sprintf(retbuf, "%d", protonum); return (retbuf);  	}  } -static char * +static const u_char *  do_rrset(msg, cp, cnt, pflag, file, hs)  	int cnt, pflag; -	char *cp,*msg, *hs; +	const u_char *cp, *msg; +	const char *hs;  	FILE *file;  {  	int n;  	int sflag; +  	/* -	 * Print  answer records +	 * Print answer records.  	 */  	sflag = (_res.pfcode & pflag); -	if (n = ntohs(cnt)) { -		if ((!_res.pfcode) || ((sflag) && (_res.pfcode & RES_PRF_HEAD1))) +	if ((n = ntohs(cnt))) { +		if ((!_res.pfcode) || +		    ((sflag) && (_res.pfcode & RES_PRF_HEAD1)))  			fprintf(file, hs);  		while (--n >= 0) {  			cp = p_rr(cp, msg, file); -			if ((cp-msg) > PACKETSZ) +			if ((cp - msg) > PACKETSZ)  				return (NULL);  		} -		if ((!_res.pfcode) || ((sflag) && (_res.pfcode & RES_PRF_HEAD1))) +		if ((!_res.pfcode) || +		    ((sflag) && (_res.pfcode & RES_PRF_HEAD1)))  			putc('\n', file);  	} -	return(cp); +	return (cp);  } +void  __p_query(msg) -	char *msg; +	const u_char *msg;  {  	__fp_query(msg, stdout);  } @@ -225,15 +228,14 @@ __fp_resstat(statp, file)  	struct __res_state *statp;  	FILE *file;  { -	int bit; +	register u_long mask;  	fprintf(file, ";; res options:");  	if (!statp)  		statp = &_res; -	for (bit = 0;  bit < 32;  bit++) {	/* XXX 32 - bad assumption! */ -		if (statp->options & (1<<bit)) -			fprintf(file, " %s", p_option(1<<bit)); -	} +	for (mask = 1;  mask != 0;  mask <<= 1) +		if (statp->options & mask) +			fprintf(file, " %s", p_option(mask));  	putc('\n', file);  } @@ -242,21 +244,26 @@ __fp_resstat(statp, file)   * This is intended to be primarily a debugging routine.   */  void -__fp_query(msg,file) -	char *msg; +__fp_nquery(msg, len, file) +	const u_char *msg; +	int len;  	FILE *file;  { -	register char *cp; -	register HEADER *hp; +	register const u_char *cp, *endMark; +	register const HEADER *hp;  	register int n; +#define TruncTest(x) if (x >= endMark) goto trunc +#define	ErrorTest(x) if (x == NULL) goto error +  	/*  	 * Print header fields.  	 */  	hp = (HEADER *)msg; -	cp = msg + sizeof(HEADER); +	cp = msg + HFIXEDSZ; +	endMark = cp + len;  	if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEADX) || hp->rcode) { -		fprintf(file,";; ->>HEADER<<- opcode: %s, status: %s, id: %d", +		fprintf(file, ";; ->>HEADER<<- opcode: %s, status: %s, id: %d",  			_res_opcodes[hp->opcode],  			_res_resultcodes[hp->rcode],  			ntohs(hp->id)); @@ -266,29 +273,28 @@ __fp_query(msg,file)  	if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEAD2)) {  		fprintf(file,"; flags:");  		if (hp->qr) -			fprintf(file," qr"); +			fprintf(file, " qr");  		if (hp->aa) -			fprintf(file," aa"); +			fprintf(file, " aa");  		if (hp->tc) -			fprintf(file," tc"); +			fprintf(file, " tc");  		if (hp->rd) -			fprintf(file," rd"); +			fprintf(file, " rd");  		if (hp->ra) -			fprintf(file," ra"); +			fprintf(file, " ra");  		if (hp->pr) -			fprintf(file," pr"); +			fprintf(file, " pr");  	}  	if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEAD1)) { -		fprintf(file,"; Ques: %d", ntohs(hp->qdcount)); -		fprintf(file,", Ans: %d", ntohs(hp->ancount)); -		fprintf(file,", Auth: %d", ntohs(hp->nscount)); -		fprintf(file,", Addit: %d\n", ntohs(hp->arcount)); +		fprintf(file, "; Ques: %d", ntohs(hp->qdcount)); +		fprintf(file, ", Ans: %d", ntohs(hp->ancount)); +		fprintf(file, ", Auth: %d", ntohs(hp->nscount)); +		fprintf(file, ", Addit: %d", ntohs(hp->arcount));  	} -#if 0 -	if (_res.pfcode & (RES_PRF_HEADX | RES_PRF_HEAD2 | RES_PRF_HEAD1)) { +	if ((!_res.pfcode) || (_res.pfcode &  +		(RES_PRF_HEADX | RES_PRF_HEAD2 | RES_PRF_HEAD1))) {  		putc('\n',file);  	} -#endif  	/*  	 * Print question records.  	 */ @@ -297,54 +303,71 @@ __fp_query(msg,file)  			fprintf(file,";; QUESTIONS:\n");  		while (--n >= 0) {  			fprintf(file,";;\t"); +			TruncTest(cp);  			cp = p_cdname(cp, msg, file); -			if (cp == NULL) -				return; +			ErrorTest(cp); +			TruncTest(cp);  			if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))  				fprintf(file, ", type = %s", -					__p_type(_getshort(cp))); -			cp += sizeof(u_int16_t); +					__p_type(_getshort((u_char*)cp))); +			cp += INT16SZ; +			TruncTest(cp);  			if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES)) -				fprintf(file, ", class = %s\n\n", -					__p_class(_getshort(cp))); -			cp += sizeof(u_int16_t); +				fprintf(file, ", class = %s\n", +					__p_class(_getshort((u_char*)cp))); +			cp += INT16SZ; +			putc('\n', file);  		}  	}  	/*  	 * Print authoritative answer records  	 */ +	TruncTest(cp);  	cp = do_rrset(msg, cp, hp->ancount, RES_PRF_ANS, file,  		      ";; ANSWERS:\n"); -	if (cp == NULL) -		return; +	ErrorTest(cp);  	/*  	 * print name server records  	 */ +	TruncTest(cp);  	cp = do_rrset(msg, cp, hp->nscount, RES_PRF_AUTH, file,  		      ";; AUTHORITY RECORDS:\n"); -	if (!cp) -		return; +	ErrorTest(cp); +	TruncTest(cp);  	/*  	 * print additional records  	 */  	cp = do_rrset(msg, cp, hp->arcount, RES_PRF_ADD, file,  		      ";; ADDITIONAL RECORDS:\n"); -	if (!cp) -		return; +	ErrorTest(cp); +	return; + trunc: +	fprintf(file, "\n;; ...truncated\n"); +	return; + error: +	fprintf(file, "\n;; ...malformed\n");  } -char * -p_cdname(cp, msg, file) -	char *cp, *msg; +void +__fp_query(msg, file) +	const u_char *msg; +	FILE *file; +{ +	fp_nquery(msg, PACKETSZ, file); +} + +const u_char * +__p_cdnname(cp, msg, len, file) +	const u_char *cp, *msg; +	int len;  	FILE *file;  {  	char name[MAXDNAME];  	int n; -	if ((n = dn_expand((u_char *)msg, (u_char *)msg + MAXCDNAME, -	    (u_char *)cp, (u_char *)name, sizeof(name))) < 0) +	if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0)  		return (NULL);  	if (name[0] == '\0')  		putc('.', file); @@ -353,16 +376,26 @@ p_cdname(cp, msg, file)  	return (cp + n);  } -char * -p_fqname(cp, msg, file) -	char *cp, *msg; +const u_char * +__p_cdname(cp, msg, file) +	const u_char *cp, *msg; +	FILE *file; +{ +	return (p_cdnname(cp, msg, PACKETSZ, file)); +} + +/* XXX:	the rest of these functions need to become length-limited, too. (vix) + */ + +const u_char * +__p_fqname(cp, msg, file) +	const u_char *cp, *msg;  	FILE *file;  {  	char name[MAXDNAME];  	int n, len; -	if ((n = dn_expand((u_char *)msg, (u_char *)msg + MAXCDNAME, -	    (u_char *)cp, (u_char *)name, sizeof(name))) < 0) +	if ((n = dn_expand(msg, cp + MAXCDNAME, cp, name, sizeof name)) < 0)  		return (NULL);  	if (name[0] == '\0') {  		putc('.', file); @@ -377,27 +410,28 @@ p_fqname(cp, msg, file)  /*   * Print resource record fields in human readable form.   */ -char * -p_rr(cp, msg, file) -	char *cp, *msg; +const u_char * +__p_rr(cp, msg, file) +	const u_char *cp, *msg;  	FILE *file;  {  	int type, class, dlen, n, c;  	struct in_addr inaddr; -	char *cp1, *cp2; +	struct iso_addr isoa; +	const u_char *cp1, *cp2;  	u_int32_t tmpttl, t;  	int lcnt;  	if ((cp = p_fqname(cp, msg, file)) == NULL)  		return (NULL);			/* compression error */ -	type = _getshort(cp); -	cp += sizeof(u_int16_t); -	class = _getshort(cp); -	cp += sizeof(u_int16_t); -	tmpttl = _getlong(cp); -	cp += sizeof(u_int32_t); -	dlen = _getshort(cp); -	cp += sizeof(u_int16_t); +	type = _getshort((u_char*)cp); +	cp += INT16SZ; +	class = _getshort((u_char*)cp); +	cp += INT16SZ; +	tmpttl = _getlong((u_char*)cp); +	cp += INT32SZ; +	dlen = _getshort((u_char*)cp); +	cp += INT16SZ;  	cp1 = cp;  	if ((!_res.pfcode) || (_res.pfcode & RES_PRF_TTLID))  		fprintf(file, "\t%lu", tmpttl); @@ -412,7 +446,7 @@ p_rr(cp, msg, file)  		switch (class) {  		case C_IN:  		case C_HS: -			bcopy(cp, (char *)&inaddr, sizeof(inaddr)); +			bcopy(cp, (char *)&inaddr, INADDRSZ);  			if (dlen == 4) {  				fprintf(file,"\t%s", inet_ntoa(inaddr));  				cp += dlen; @@ -422,11 +456,11 @@ p_rr(cp, msg, file)  				u_short port;  				address = inet_ntoa(inaddr); -				cp += sizeof(inaddr); +				cp += INADDRSZ;  				protocol = *(u_char*)cp;  				cp += sizeof(u_char); -				port = _getshort(cp); -				cp += sizeof(u_int16_t); +				port = _getshort((u_char*)cp); +				cp += INT16SZ;  				fprintf(file, "\t%s\t; proto %d, port %d",  					address, protocol, port);  			} @@ -446,6 +480,7 @@ p_rr(cp, msg, file)  		break;  	case T_HINFO: +	case T_ISDN:  		if (n = *cp++) {  			fprintf(file,"\t%.*s", n, cp);  			cp += n; @@ -462,25 +497,28 @@ p_rr(cp, msg, file)  		putc(' ', file);  		cp = p_fqname(cp, msg, file);	/* mail addr */  		fputs(" (\n", file); -		t = _getlong(cp);  cp += sizeof(u_int32_t); +		t = _getlong((u_char*)cp);  cp += INT32SZ;  		fprintf(file,"\t\t\t%lu\t; serial\n", t); -		t = _getlong(cp);  cp += sizeof(u_int32_t); +		t = _getlong((u_char*)cp);  cp += INT32SZ;  		fprintf(file,"\t\t\t%lu\t; refresh (%s)\n", t, __p_time(t)); -		t = _getlong(cp);  cp += sizeof(u_int32_t); +		t = _getlong((u_char*)cp);  cp += INT32SZ;  		fprintf(file,"\t\t\t%lu\t; retry (%s)\n", t, __p_time(t)); -		t = _getlong(cp);  cp += sizeof(u_int32_t); +		t = _getlong((u_char*)cp);  cp += INT32SZ;  		fprintf(file,"\t\t\t%lu\t; expire (%s)\n", t, __p_time(t)); -		t = _getlong(cp);  cp += sizeof(u_int32_t); +		t = _getlong((u_char*)cp);  cp += INT32SZ;  		fprintf(file,"\t\t\t%lu )\t; minimum (%s)", t, __p_time(t));  		break;  	case T_MX: -		fprintf(file,"\t%d ", _getshort(cp)); -		cp += sizeof(u_int16_t); +	case T_AFSDB: +	case T_RT: +		fprintf(file,"\t%d ", _getshort((u_char*)cp)); +		cp += INT16SZ;  		cp = p_fqname(cp, msg, file);  		break;    	case T_TXT: +	case T_X25:  		(void) fputs("\t\"", file);  		cp2 = cp1 + dlen;  		while (cp < cp2) { @@ -496,6 +534,15 @@ p_rr(cp, msg, file)  		putc('"', file);    		break; +  	case T_NSAP: +		isoa.isoa_len = dlen; +		if (isoa.isoa_len > sizeof(isoa.isoa_genaddr)) +			isoa.isoa_len = sizeof(isoa.isoa_genaddr); +		bcopy(cp, isoa.isoa_genaddr, isoa.isoa_len); +		(void) fprintf(file, "\t%s", iso_ntoa(&isoa)); +		cp += dlen; +  		break; +  	case T_MINFO:  	case T_RP:  		putc('\t', file); @@ -506,23 +553,23 @@ p_rr(cp, msg, file)  	case T_UINFO:  		putc('\t', file); -		fputs(cp, file); +		fputs((char *)cp, file);  		cp += dlen;  		break;  	case T_UID:  	case T_GID:  		if (dlen == 4) { -			fprintf(file,"\t%u", _getlong(cp)); -			cp += sizeof(int32_t); +			fprintf(file,"\t%u", _getlong((u_char*)cp)); +			cp += INT32SZ;  		}  		break;  	case T_WKS: -		if (dlen < sizeof(u_int32_t) + 1) +		if (dlen < INT32SZ + 1)  			break; -		bcopy(cp, (char *)&inaddr, sizeof(inaddr)); -		cp += sizeof(u_int32_t); +		bcopy(cp, (char *)&inaddr, INADDRSZ); +		cp += INT32SZ;  		fprintf(file, "\t%s %s ( ",  			inet_ntoa(inaddr),  			deproto((int) *cp)); @@ -551,7 +598,7 @@ p_rr(cp, msg, file)  	case T_UNSPEC:  		{  			int NumBytes = 8; -			char *DataPtr; +			u_char *DataPtr;  			int i;  			if (dlen < NumBytes) NumBytes = dlen; @@ -586,92 +633,66 @@ static	char nbuf[40];  /*   * Return a string for the type   */ -char * +const char *  __p_type(type)  	int type;  {  	switch (type) { -	case T_A: -		return("A"); -	case T_NS:		/* authoritative server */ -		return("NS"); -	case T_CNAME:		/* canonical name */ -		return("CNAME"); -	case T_SOA:		/* start of authority zone */ -		return("SOA"); -	case T_MB:		/* mailbox domain name */ -		return("MB"); -	case T_MG:		/* mail group member */ -		return("MG"); -	case T_MR:		/* mail rename name */ -		return("MR"); -	case T_NULL:		/* null resource record */ -		return("NULL"); -	case T_WKS:		/* well known service */ -		return("WKS"); -	case T_PTR:		/* domain name pointer */ -		return("PTR"); -	case T_HINFO:		/* host information */ -		return("HINFO"); -	case T_MINFO:		/* mailbox information */ -		return("MINFO"); -	case T_MX:		/* mail routing info */ -		return("MX"); -	case T_TXT:		/* text */ -		return("TXT"); -	case T_RP:		/* responsible person */ -		return("RP"); -	case T_AXFR:		/* zone transfer */ -		return("AXFR"); -	case T_MAILB:		/* mail box */ -		return("MAILB"); -	case T_MAILA:		/* mail address */ -		return("MAILA"); -	case T_ANY:		/* matches any type */ -		return("ANY"); -	case T_UINFO: -		return("UINFO"); -	case T_UID: -		return("UID"); -	case T_GID: -		return("GID"); +	case T_A:	return "A"; +	case T_NS:	return "NS"; +	case T_CNAME:	return "CNAME"; +	case T_SOA:	return "SOA"; +	case T_MB:	return "MB"; +	case T_MG:	return "MG"; +	case T_MR:	return "MR"; +	case T_NULL:	return "NULL"; +	case T_WKS:	return "WKS"; +	case T_PTR:	return "PTR"; +	case T_HINFO:	return "HINFO"; +	case T_MINFO:	return "MINFO"; +	case T_MX:	return "MX"; +	case T_TXT:	return "TXT"; +	case T_NSAP:	return "NSAP"; +	case T_RP:	return "RP"; +	case T_AFSDB:	return "AFSDB"; +	case T_X25:	return "X25"; +	case T_ISDN:	return "ISDN"; +	case T_RT:	return "RT"; +	case T_AXFR:	return "AXFR"; +	case T_MAILB:	return "MAILB"; +	case T_MAILA:	return "MAILA"; +	case T_ANY:	return "ANY"; +	case T_UINFO:	return "UINFO"; +	case T_UID:	return "UID"; +	case T_GID:	return "GID";  #ifdef ALLOW_T_UNSPEC -	case T_UNSPEC: -		return("UNSPEC"); +	case T_UNSPEC:	return "UNSPEC";  #endif /* ALLOW_T_UNSPEC */ -	default: -		(void)sprintf(nbuf, "%d", type); -		return(nbuf); +	default:	(void)sprintf(nbuf, "%d", type); return (nbuf);  	}  }  /*   * Return a mnemonic for class   */ -char * +const char *  __p_class(class)  	int class;  { -  	switch (class) { -	case C_IN:		/* internet class */ -		return("IN"); -	case C_HS:		/* hesiod class */ -		return("HS"); -	case C_ANY:		/* matches any class */ -		return("ANY"); -	default: -		(void)sprintf(nbuf, "%d", class); -		return(nbuf); +	case C_IN:	return("IN"); +	case C_HS:	return("HS"); +	case C_ANY:	return("ANY"); +	default:	(void)sprintf(nbuf, "%d", class); return (nbuf);  	}  }  /*   * Return a mnemonic for an option   */ -static char * -p_option(option) -	u_int32_t option; +const char * +__p_option(option) +	u_long option;  {  	switch (option) {  	case RES_INIT:		return "init"; @@ -684,6 +705,8 @@ p_option(option)  	case RES_DEFNAMES:	return "defnam";  	case RES_STAYOPEN:	return "styopn";  	case RES_DNSRCH:	return "dnsrch"; +	case RES_INSECURE1:	return "insecure1"; +	case RES_INSECURE2:	return "insecure2";  	default:		sprintf(nbuf, "?0x%x?", option); return nbuf;  	}  } @@ -700,7 +723,7 @@ __p_time(value)  	if (value == 0) {  		strcpy(nbuf, "0 secs"); -		return(nbuf); +		return (nbuf);  	}  	secs = value % 60; @@ -735,5 +758,5 @@ __p_time(value)  			*p++ = ' ';  		(void)sprintf(p, "%d sec%s", PLURALIZE(secs));  	} -	return(nbuf); +	return (nbuf);  } | 
