Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Aug 1995 14:01:24 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        obrien@leonardo.net (Mike O'Brien)
Cc:        hackers@freebsd.org
Subject:   Re: minor frob for 'finger'
Message-ID:  <199508122101.OAA07653@gndrsh.aac.dev.com>
In-Reply-To: <199508121042.KAA00405@mr-p.protocorp.com> from "Mike O'Brien" at Aug 12, 95 10:42:33 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> 	Longtime ARPAnauts will remember that 'finger' used to work
> a little differently over the net - the closing brace around the
> host name was not printed until a net connection had been successfully
> established.  That code broke in the UNIX version when stdout to a
> terminal was made line-buffered by default...and now I see the original
> code (which must have looked very mysterious) has disappeared entirely,
> in favor of having the host name printed before the connection rather
> than after, which was the effect of the breakage.
> 
> 	I'm sorry, but I'm an old fart.  I prefer finger's original
> behavior.  Hence, this patch, humbly proffered:

I like the old behavior too, but this creates ugly error output.
Also please don't cut and paste patches with X, you destroyed the
tabs in this patch meaning I had to go frob the file after doing a
patch -i to put back the tabs instead of spaces :-(.

Here is what an error looks like with your patch in place:
gndrsh# obj/finger rgrimes@freebsd.org
[freebsd.org
finger: connect: Network is down

Here is my revised patch, this time without white space munging to
apply it:

Index: net.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/net.c,v
retrieving revision 1.3
diff -c -r1.3 net.c
*** 1.3	1995/05/30 06:30:16
--- net.c	1995/08/12 21:00:53
***************
*** 95,106 ****
  	}
  
  	/* have network connection; identify the host connected with */
! 	(void)printf("[%s]\n", hp->h_name);
  	if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
  		perror("finger: connect");
  		(void)close(s);
  		return;
  	}
  
  	/* -l flag for remote fingerd  */
  	if (lflag)
--- 95,109 ----
  	}
  
  	/* have network connection; identify the host connected with */
! 	(void)printf("[%s", hp->h_name);
! 	(void)fflush(stdout);
  	if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+ 		(void)printf("]\n");
  		perror("finger: connect");
  		(void)close(s);
  		return;
  	}
+ 	(void)printf("]\n");
  
  	/* -l flag for remote fingerd  */
  	if (lflag)

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                 Reliable computers for FreeBSD



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