Oh fer cryin' out loud... While playing with the ypserv code on a different
platform, I discovered the following: if you use ypcat (or anything that does a yp_all() for that matter) to dump out a map and then hit ^C before it finishes, ypserv gets hit with a SIGPIPE and dies. (The ypall() service is implemented using TCP.) Fix: ignore SIGPIPEs.
This commit is contained in:
parent
cbc6d18d9f
commit
3f95a88ec7
@ -6,7 +6,7 @@
|
||||
* And thus replied Lpd@NannyMUD:
|
||||
* Who cares? :-) /Peter Eriksson <pen@signum.se>
|
||||
*
|
||||
* $Id: yp_svc.c,v 1.2 1995/04/05 03:23:38 wpaul Exp $
|
||||
* $Id: yp_svc.c,v 1.3 1995/05/30 05:05:37 rgrimes Exp $
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
@ -23,6 +23,7 @@
|
||||
#include <syslog.h>
|
||||
#include <errno.h>
|
||||
#include <paths.h>
|
||||
#include <signal.h>
|
||||
|
||||
extern int errno;
|
||||
extern void Perror();
|
||||
@ -314,6 +315,12 @@ int main(int argc, char **argv)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Ignore SIGPIPEs. They can hurt us is someone does a ypcat
|
||||
* and then hits CTRL-C before it terminales.
|
||||
*/
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
(void) pmap_unset(YPPROG, YPVERS);
|
||||
if (sunos_4_kludge)
|
||||
(void) pmap_unset(YPPROG, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user