diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/Makefile netstd/fping/Makefile
*** netstd.orig/fping.orig/Makefile	Thu Jan 19 00:08:54 1995
--- netstd/fping/Makefile	Wed Mar 15 23:20:57 1995
***************
*** 2,11 ****
  PROG= fping
  OBJS= fping.o
  SRC= fping.c
! BIN= /usr/local/bin
! MAN= /usr/man/manl
  MANSRC= fping.man
! MANDST= fping.l
  
  #
  # Interval is the minimum amount of time between sending a ping packet to 
--- 2,11 ----
  PROG= fping
  OBJS= fping.o
  SRC= fping.c
! BIN= /usr/bin
! MAN= /usr/man/man8
  MANSRC= fping.man
! MANDST= fping.8
  
  #
  # Interval is the minimum amount of time between sending a ping packet to 
***************
*** 27,36 ****
  
  LIBS=
  
  all: $(PROG)
  
  $(PROG) : $(OBJS)
! 	$(CC) $(OBJS) -o $(PROG) $(LIBS)
  
  $(OBJS) : $(SRC)
  	$(CC) $(CFLAGS) -c $(DEFAULTS) $(SRC)
--- 27,38 ----
  
  LIBS=
  
+ CFLAGS=-O2 -include /usr/include/bsd/bsd.h -I./bsd -I/usr/include/bsd -N
+ 
  all: $(PROG)
  
  $(PROG) : $(OBJS)
! 	$(CC) $(OBJS) -N -o $(PROG) $(LIBS)
  
  $(OBJS) : $(SRC)
  	$(CC) $(CFLAGS) -c $(DEFAULTS) $(SRC)
***************
*** 42,50 ****
  # strip      /usr/local/bin/$(PROG)
  #
  
! install:
! 	install -c -m 4555 -o root -s $(PROG) $(BIN)/$(PROG)
! 	install -c -m 0444 -o root $(MANSRC) $(MAN)/$(MANDST)
  
  clean:
  	rm -f a.out core *~  *.o $(PROG)
--- 44,53 ----
  # strip      /usr/local/bin/$(PROG)
  #
  
! install: all
! 	install -c -m 4755 -o root -g root -s $(PROG) ${DEBDIR}$(BIN)/$(PROG)
! 	install -c -m 0644 -o root -g root $(MANSRC) ${DEBDIR}$(MAN)/$(MANDST)
! 	install -c -m 0644 -o root -g root COPYRIGHT ${DEBDIR}/usr/doc/copyright/fping
  
  clean:
  	rm -f a.out core *~  *.o $(PROG)
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/bsd/netinet/in.h netstd/fping/bsd/netinet/in.h
*** netstd.orig/fping.orig/bsd/netinet/in.h	Thu Jan  1 01:00:00 1970
--- netstd/fping/bsd/netinet/in.h	Fri Mar 12 08:02:57 1993
***************
*** 0 ****
--- 1,14 ----
+ #ifndef _BSD_NETINET_IN_H
+ #define _BSD_NETINET_IN_H
+ 
+ #include_next <netinet/in.h>
+ 
+ /* not implemented yet */
+ 
+ #undef IP_OPTIONS
+ 
+ /* concession to stupidity */
+ 
+ #define sin_zero __pad
+ 
+ #endif /* _BSD_NETINET_IN_H */
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/bsd/netinet/in_systm.h netstd/fping/bsd/netinet/in_systm.h
*** netstd.orig/fping.orig/bsd/netinet/in_systm.h	Thu Jan  1 01:00:00 1970
--- netstd/fping/bsd/netinet/in_systm.h	Fri Mar 12 08:04:28 1993
***************
*** 0 ****
--- 1,57 ----
+ /*
+  * Copyright (c) 1982, 1986 Regents of the University of California.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+  * are met:
+  * 1. Redistributions of source code must retain the above copyright
+  *    notice, this list of conditions and the following disclaimer.
+  * 2. Redistributions in binary form must reproduce the above copyright
+  *    notice, this list of conditions and the following disclaimer in the
+  *    documentation and/or other materials provided with the distribution.
+  * 3. All advertising materials mentioning features or use of this software
+  *    must display the following acknowledgement:
+  *	This product includes software developed by the University of
+  *	California, Berkeley and its contributors.
+  * 4. Neither the name of the University nor the names of its contributors
+  *    may be used to endorse or promote products derived from this software
+  *    without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  * SUCH DAMAGE.
+  *
+  *	@(#)in_systm.h	7.4 (Berkeley) 6/28/90
+  */
+ 
+ #ifndef _BSD_NETINET_IN_SYSTM_H
+ #define _BSD_NETINET_IN_SYSTM_H
+ 
+ /*
+  * Miscellaneous internetwork
+  * definitions for kernel.
+  */
+ 
+ /*
+  * Network types.
+  *
+  * Internally the system keeps counters in the headers with the bytes
+  * swapped so that VAX instructions will work on them.  It reverses
+  * the bytes before transmission at each protocol level.  The n_ types
+  * represent the types with the bytes in ``high-ender'' order.
+  */
+ typedef u_short n_short;		/* short as received from the net */
+ typedef u_long	n_long;			/* long as received from the net */
+ 
+ typedef	u_long	n_time;			/* ms since 00:00 GMT, byte rev */
+ 
+ #endif /* _BSD_NETINET_IN_SYSTM_H */
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/bsd/netinet/ip.h netstd/fping/bsd/netinet/ip.h
*** netstd.orig/fping.orig/bsd/netinet/ip.h	Thu Jan  1 01:00:00 1970
--- netstd/fping/bsd/netinet/ip.h	Fri Mar 12 08:05:02 1993
***************
*** 0 ****
--- 1,171 ----
+ /*
+  * Copyright (c) 1982, 1986 Regents of the University of California.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+  * are met:
+  * 1. Redistributions of source code must retain the above copyright
+  *    notice, this list of conditions and the following disclaimer.
+  * 2. Redistributions in binary form must reproduce the above copyright
+  *    notice, this list of conditions and the following disclaimer in the
+  *    documentation and/or other materials provided with the distribution.
+  * 3. All advertising materials mentioning features or use of this software
+  *    must display the following acknowledgement:
+  *	This product includes software developed by the University of
+  *	California, Berkeley and its contributors.
+  * 4. Neither the name of the University nor the names of its contributors
+  *    may be used to endorse or promote products derived from this software
+  *    without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  * SUCH DAMAGE.
+  *
+  *	@(#)ip.h	7.10 (Berkeley) 6/28/90
+  */
+ 
+ #ifndef _BSD_NETINET_IP_H
+ #define _BSD_NETINET_IP_H
+ 
+ /*
+  * Definitions for internet protocol version 4.
+  * Per RFC 791, September 1981.
+  */
+ #define	IPVERSION	4
+ 
+ /*
+  * Structure of an internet header, naked of options.
+  *
+  * We declare ip_len and ip_off to be short, rather than u_short
+  * pragmatically since otherwise unsigned comparisons can result
+  * against negative integers quite easily, and fail in subtle ways.
+  */
+ struct ip {
+ #if BYTE_ORDER == LITTLE_ENDIAN 
+ 	u_char	ip_hl:4,		/* header length */
+ 		ip_v:4;			/* version */
+ #endif
+ #if BYTE_ORDER == BIG_ENDIAN 
+ 	u_char	ip_v:4,			/* version */
+ 		ip_hl:4;		/* header length */
+ #endif
+ 	u_char	ip_tos;			/* type of service */
+ 	short	ip_len;			/* total length */
+ 	u_short	ip_id;			/* identification */
+ 	short	ip_off;			/* fragment offset field */
+ #define	IP_DF 0x4000			/* dont fragment flag */
+ #define	IP_MF 0x2000			/* more fragments flag */
+ 	u_char	ip_ttl;			/* time to live */
+ 	u_char	ip_p;			/* protocol */
+ 	u_short	ip_sum;			/* checksum */
+ 	struct	in_addr ip_src,ip_dst;	/* source and dest address */
+ };
+ 
+ #define	IP_MAXPACKET	65535		/* maximum packet size */
+ 
+ /*
+  * Definitions for IP type of service (ip_tos)
+  */
+ #define	IPTOS_LOWDELAY		0x10
+ #define	IPTOS_THROUGHPUT	0x08
+ #define	IPTOS_RELIABILITY	0x04
+ 
+ /*
+  * Definitions for IP precedence (also in ip_tos) (hopefully unused)
+  */
+ #define	IPTOS_PREC_NETCONTROL		0xe0
+ #define	IPTOS_PREC_INTERNETCONTROL	0xc0
+ #define	IPTOS_PREC_CRITIC_ECP		0xa0
+ #define	IPTOS_PREC_FLASHOVERRIDE	0x80
+ #define	IPTOS_PREC_FLASH		0x60
+ #define	IPTOS_PREC_IMMEDIATE		0x40
+ #define	IPTOS_PREC_PRIORITY		0x20
+ #define	IPTOS_PREC_ROUTINE		0x10
+ 
+ /*
+  * Definitions for options.
+  */
+ #define	IPOPT_COPIED(o)		((o)&0x80)
+ #define	IPOPT_CLASS(o)		((o)&0x60)
+ #define	IPOPT_NUMBER(o)		((o)&0x1f)
+ 
+ #define	IPOPT_CONTROL		0x00
+ #define	IPOPT_RESERVED1		0x20
+ #define	IPOPT_DEBMEAS		0x40
+ #define	IPOPT_RESERVED2		0x60
+ 
+ #define	IPOPT_EOL		0		/* end of option list */
+ #define	IPOPT_NOP		1		/* no operation */
+ 
+ #define	IPOPT_RR		7		/* record packet route */
+ #define	IPOPT_TS		68		/* timestamp */
+ #define	IPOPT_SECURITY		130		/* provide s,c,h,tcc */
+ #define	IPOPT_LSRR		131		/* loose source route */
+ #define	IPOPT_SATID		136		/* satnet id */
+ #define	IPOPT_SSRR		137		/* strict source route */
+ 
+ /*
+  * Offsets to fields in options other than EOL and NOP.
+  */
+ #define	IPOPT_OPTVAL		0		/* option ID */
+ #define	IPOPT_OLEN		1		/* option length */
+ #define IPOPT_OFFSET		2		/* offset within option */
+ #define	IPOPT_MINOFF		4		/* min value of above */
+ 
+ /*
+  * Time stamp option structure.
+  */
+ struct	ip_timestamp {
+ 	u_char	ipt_code;		/* IPOPT_TS */
+ 	u_char	ipt_len;		/* size of structure (variable) */
+ 	u_char	ipt_ptr;		/* index of current entry */
+ #if BYTE_ORDER == LITTLE_ENDIAN 
+ 	u_char	ipt_flg:4,		/* flags, see below */
+ 		ipt_oflw:4;		/* overflow counter */
+ #endif
+ #if BYTE_ORDER == BIG_ENDIAN 
+ 	u_char	ipt_oflw:4,		/* overflow counter */
+ 		ipt_flg:4;		/* flags, see below */
+ #endif
+ 	union ipt_timestamp {
+ 		n_long	ipt_time[1];
+ 		struct	ipt_ta {
+ 			struct in_addr ipt_addr;
+ 			n_long ipt_time;
+ 		} ipt_ta[1];
+ 	} ipt_timestamp;
+ };
+ 
+ /* flag bits for ipt_flg */
+ #define	IPOPT_TS_TSONLY		0		/* timestamps only */
+ #define	IPOPT_TS_TSANDADDR	1		/* timestamps and addresses */
+ #define	IPOPT_TS_PRESPEC	3		/* specified modules only */
+ 
+ /* bits for security (not byte swapped) */
+ #define	IPOPT_SECUR_UNCLASS	0x0000
+ #define	IPOPT_SECUR_CONFID	0xf135
+ #define	IPOPT_SECUR_EFTO	0x789a
+ #define	IPOPT_SECUR_MMMM	0xbc4d
+ #define	IPOPT_SECUR_RESTR	0xaf13
+ #define	IPOPT_SECUR_SECRET	0xd788
+ #define	IPOPT_SECUR_TOPSECRET	0x6bc5
+ 
+ /*
+  * Internet implementation parameters.
+  */
+ #define	MAXTTL		255		/* maximum time to live (seconds) */
+ #define	IPFRAGTTL	60		/* time to live for frags, slowhz */
+ #define	IPTTLDEC	1		/* subtracted when forwarding */
+ 
+ #define	IP_MSS		576		/* default maximum segment size */
+ 
+ #endif _BSD_NETINET_IP_H
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/bsd/netinet/ip_icmp.h netstd/fping/bsd/netinet/ip_icmp.h
*** netstd.orig/fping.orig/bsd/netinet/ip_icmp.h	Thu Jan  1 01:00:00 1970
--- netstd/fping/bsd/netinet/ip_icmp.h	Fri Mar 12 08:05:38 1993
***************
*** 0 ****
--- 1,138 ----
+ /*
+  * Copyright (c) 1982, 1986 Regents of the University of California.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+  * are met:
+  * 1. Redistributions of source code must retain the above copyright
+  *    notice, this list of conditions and the following disclaimer.
+  * 2. Redistributions in binary form must reproduce the above copyright
+  *    notice, this list of conditions and the following disclaimer in the
+  *    documentation and/or other materials provided with the distribution.
+  * 3. All advertising materials mentioning features or use of this software
+  *    must display the following acknowledgement:
+  *	This product includes software developed by the University of
+  *	California, Berkeley and its contributors.
+  * 4. Neither the name of the University nor the names of its contributors
+  *    may be used to endorse or promote products derived from this software
+  *    without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  * SUCH DAMAGE.
+  *
+  *	@(#)ip_icmp.h	7.5 (Berkeley) 6/28/90
+  */
+ 
+ #ifndef _BSD_NETINET_IN_ICMP_H
+ #define _BSD_NETINET_IN_ICMP_H
+ 
+ /*
+  * Interface Control Message Protocol Definitions.
+  * Per RFC 792, September 1981.
+  */
+ 
+ /*
+  * Structure of an icmp header.
+  */
+ struct icmp {
+ 	u_char	icmp_type;		/* type of message, see below */
+ 	u_char	icmp_code;		/* type sub code */
+ 	u_short	icmp_cksum;		/* ones complement cksum of struct */
+ 	union {
+ 		u_char ih_pptr;			/* ICMP_PARAMPROB */
+ 		struct in_addr ih_gwaddr;	/* ICMP_REDIRECT */
+ 		struct ih_idseq {
+ 			n_short	icd_id;
+ 			n_short	icd_seq;
+ 		} ih_idseq;
+ 		int ih_void;
+ 	} icmp_hun;
+ #define	icmp_pptr	icmp_hun.ih_pptr
+ #define	icmp_gwaddr	icmp_hun.ih_gwaddr
+ #define	icmp_id		icmp_hun.ih_idseq.icd_id
+ #define	icmp_seq	icmp_hun.ih_idseq.icd_seq
+ #define	icmp_void	icmp_hun.ih_void
+ 	union {
+ 		struct id_ts {
+ 			n_time its_otime;
+ 			n_time its_rtime;
+ 			n_time its_ttime;
+ 		} id_ts;
+ 		struct id_ip  {
+ 			struct ip idi_ip;
+ 			/* options and then 64 bits of data */
+ 		} id_ip;
+ 		u_long	id_mask;
+ 		char	id_data[1];
+ 	} icmp_dun;
+ #define	icmp_otime	icmp_dun.id_ts.its_otime
+ #define	icmp_rtime	icmp_dun.id_ts.its_rtime
+ #define	icmp_ttime	icmp_dun.id_ts.its_ttime
+ #define	icmp_ip		icmp_dun.id_ip.idi_ip
+ #define	icmp_mask	icmp_dun.id_mask
+ #define	icmp_data	icmp_dun.id_data
+ };
+ 
+ /*
+  * Lower bounds on packet lengths for various types.
+  * For the error advice packets must first insure that the
+  * packet is large enought to contain the returned ip header.
+  * Only then can we do the check to see if 64 bits of packet
+  * data have been returned, since we need to check the returned
+  * ip header length.
+  */
+ #define	ICMP_MINLEN	8				/* abs minimum */
+ #define	ICMP_TSLEN	(8 + 3 * sizeof (n_time))	/* timestamp */
+ #define	ICMP_MASKLEN	12				/* address mask */
+ #define	ICMP_ADVLENMIN	(8 + sizeof (struct ip) + 8)	/* min */
+ #define	ICMP_ADVLEN(p)	(8 + ((p)->icmp_ip.ip_hl << 2) + 8)
+ 	/* N.B.: must separately check that ip_hl >= 5 */
+ 
+ /*
+  * Definition of type and code field values.
+  */
+ #define	ICMP_ECHOREPLY		0		/* echo reply */
+ #define	ICMP_UNREACH		3		/* dest unreachable, codes: */
+ #define		ICMP_UNREACH_NET	0		/* bad net */
+ #define		ICMP_UNREACH_HOST	1		/* bad host */
+ #define		ICMP_UNREACH_PROTOCOL	2		/* bad protocol */
+ #define		ICMP_UNREACH_PORT	3		/* bad port */
+ #define		ICMP_UNREACH_NEEDFRAG	4		/* IP_DF caused drop */
+ #define		ICMP_UNREACH_SRCFAIL	5		/* src route failed */
+ #define	ICMP_SOURCEQUENCH	4		/* packet lost, slow down */
+ #define	ICMP_REDIRECT		5		/* shorter route, codes: */
+ #define		ICMP_REDIRECT_NET	0		/* for network */
+ #define		ICMP_REDIRECT_HOST	1		/* for host */
+ #define		ICMP_REDIRECT_TOSNET	2		/* for tos and net */
+ #define		ICMP_REDIRECT_TOSHOST	3		/* for tos and host */
+ #define	ICMP_ECHO		8		/* echo service */
+ #define	ICMP_TIMXCEED		11		/* time exceeded, code: */
+ #define		ICMP_TIMXCEED_INTRANS	0		/* ttl==0 in transit */
+ #define		ICMP_TIMXCEED_REASS	1		/* ttl==0 in reass */
+ #define	ICMP_PARAMPROB		12		/* ip header bad */
+ #define	ICMP_TSTAMP		13		/* timestamp request */
+ #define	ICMP_TSTAMPREPLY	14		/* timestamp reply */
+ #define	ICMP_IREQ		15		/* information request */
+ #define	ICMP_IREQREPLY		16		/* information reply */
+ #define	ICMP_MASKREQ		17		/* address mask request */
+ #define	ICMP_MASKREPLY		18		/* address mask reply */
+ 
+ #define	ICMP_MAXTYPE		18
+ 
+ #define	ICMP_INFOTYPE(type) \
+ 	((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
+ 	(type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
+ 	(type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
+ 	(type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
+ 
+ #endif /* _BSD_NETINET_IN_ICMP_H */
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/bsd/netinet/ip_var.h netstd/fping/bsd/netinet/ip_var.h
*** netstd.orig/fping.orig/bsd/netinet/ip_var.h	Thu Jan  1 01:00:00 1970
--- netstd/fping/bsd/netinet/ip_var.h	Fri Mar 12 08:06:15 1993
***************
*** 0 ****
--- 1,141 ----
+ /*
+  * Copyright (c) 1982, 1986 Regents of the University of California.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+  * are met:
+  * 1. Redistributions of source code must retain the above copyright
+  *    notice, this list of conditions and the following disclaimer.
+  * 2. Redistributions in binary form must reproduce the above copyright
+  *    notice, this list of conditions and the following disclaimer in the
+  *    documentation and/or other materials provided with the distribution.
+  * 3. All advertising materials mentioning features or use of this software
+  *    must display the following acknowledgement:
+  *	This product includes software developed by the University of
+  *	California, Berkeley and its contributors.
+  * 4. Neither the name of the University nor the names of its contributors
+  *    may be used to endorse or promote products derived from this software
+  *    without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  * SUCH DAMAGE.
+  *
+  *	@(#)ip_var.h	7.7 (Berkeley) 6/28/90
+  */
+ 
+ #ifndef _BSD_NETINET_IN_VAR_H
+ #define _BSD_NETINET_IN_VAR_H
+ 
+ /*
+  * Overlay for ip header used by other protocols (tcp, udp).
+  */
+ struct ipovly {
+ 	caddr_t	ih_next, ih_prev;	/* for protocol sequence q's */
+ 	u_char	ih_x1;			/* (unused) */
+ 	u_char	ih_pr;			/* protocol */
+ 	short	ih_len;			/* protocol length */
+ 	struct	in_addr ih_src;		/* source internet address */
+ 	struct	in_addr ih_dst;		/* destination internet address */
+ };
+ 
+ /*
+  * Ip reassembly queue structure.  Each fragment
+  * being reassembled is attached to one of these structures.
+  * They are timed out after ipq_ttl drops to 0, and may also
+  * be reclaimed if memory becomes tight.
+  */
+ struct ipq {
+ 	struct	ipq *next,*prev;	/* to other reass headers */
+ 	u_char	ipq_ttl;		/* time for reass q to live */
+ 	u_char	ipq_p;			/* protocol of this fragment */
+ 	u_short	ipq_id;			/* sequence id for reassembly */
+ 	struct	ipasfrag *ipq_next,*ipq_prev;
+ 					/* to ip headers of fragments */
+ 	struct	in_addr ipq_src,ipq_dst;
+ };
+ 
+ /*
+  * Ip header, when holding a fragment.
+  *
+  * Note: ipf_next must be at same offset as ipq_next above
+  */
+ struct	ipasfrag {
+ #if BYTE_ORDER == LITTLE_ENDIAN 
+ 	u_char	ip_hl:4,
+ 		ip_v:4;
+ #endif
+ #if BYTE_ORDER == BIG_ENDIAN 
+ 	u_char	ip_v:4,
+ 		ip_hl:4;
+ #endif
+ 	u_char	ipf_mff;		/* copied from (ip_off&IP_MF) */
+ 	short	ip_len;
+ 	u_short	ip_id;
+ 	short	ip_off;
+ 	u_char	ip_ttl;
+ 	u_char	ip_p;
+ 	u_short	ip_sum;
+ 	struct	ipasfrag *ipf_next;	/* next fragment */
+ 	struct	ipasfrag *ipf_prev;	/* previous fragment */
+ };
+ 
+ /*
+  * Structure stored in mbuf in inpcb.ip_options
+  * and passed to ip_output when ip options are in use.
+  * The actual length of the options (including ipopt_dst)
+  * is in m_len.
+  */
+ #define MAX_IPOPTLEN	40
+ 
+ struct ipoption {
+ 	struct	in_addr ipopt_dst;	/* first-hop dst if source routed */
+ 	char	ipopt_list[MAX_IPOPTLEN];	/* options proper */
+ };
+ 
+ struct	ipstat {
+ 	long	ips_total;		/* total packets received */
+ 	long	ips_badsum;		/* checksum bad */
+ 	long	ips_tooshort;		/* packet too short */
+ 	long	ips_toosmall;		/* not enough data */
+ 	long	ips_badhlen;		/* ip header length < data size */
+ 	long	ips_badlen;		/* ip length < ip header length */
+ 	long	ips_fragments;		/* fragments received */
+ 	long	ips_fragdropped;	/* frags dropped (dups, out of space) */
+ 	long	ips_fragtimeout;	/* fragments timed out */
+ 	long	ips_forward;		/* packets forwarded */
+ 	long	ips_cantforward;	/* packets rcvd for unreachable dest */
+ 	long	ips_redirectsent;	/* packets forwarded on same net */
+ 	long	ips_noproto;		/* unknown or unsupported protocol */
+ 	long	ips_delivered;		/* packets consumed here */
+ 	long	ips_localout;		/* total ip packets generated here */
+ 	long	ips_odropped;		/* lost packets due to nobufs, etc. */
+ 	long	ips_reassembled;	/* total packets reassembled ok */
+ 	long	ips_fragmented;		/* output packets fragmented ok */
+ 	long	ips_ofragments;		/* output fragments created */
+ 	long	ips_cantfrag;		/* don't fragment flag was set, etc. */
+ };
+ 
+ #ifdef KERNEL
+ /* flags passed to ip_output as last parameter */
+ #define	IP_FORWARDING		0x1		/* most of ip header exists */
+ #define	IP_ROUTETOIF		SO_DONTROUTE	/* bypass routing tables */
+ #define	IP_ALLOWBROADCAST	SO_BROADCAST	/* can send broadcast packets */
+ 
+ struct	ipstat	ipstat;
+ struct	ipq	ipq;			/* ip reass. queue */
+ u_short	ip_id;				/* ip packet ctr, for ids */
+ 
+ struct	mbuf *ip_srcroute();
+ #endif
+ 
+ #endif /* _BSD_NETINET_IN_VAR_H */
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/fping.man netstd/fping/fping.man
*** netstd.orig/fping.orig/fping.man	Thu Jan 19 00:08:54 1995
--- netstd/fping/fping.man	Wed Jul 19 18:43:00 1995
***************
*** 1,4 ****
! .TH fping l
  .SH NAME
  fping \- send ICMP ECHO_REQUEST packets to network hosts
  .SH SYNOPSIS
--- 1,4 ----
! .TH fping 8
  .SH NAME
  fping \- send ICMP ECHO_REQUEST packets to network hosts
  .SH SYNOPSIS
***************
*** 13,19 ****
        
  .B fping 
  is a 
! .MS ping 8
  like program which uses the Internet Control
  Message Protocol (ICMP) echo request to determine if a host is
  up. 
--- 13,19 ----
        
  .B fping 
  is a 
! .BR ping (8)
  like program which uses the Internet Control
  Message Protocol (ICMP) echo request to determine if a host is
  up. 
***************
*** 30,36 ****
  will be considered unreachable. 
  .PP
  Unlike 
! .MS ping 8
  ,
  .B fping 
  is meant to be used in scripts and its output is easy to parse.
--- 30,36 ----
  will be considered unreachable. 
  .PP
  Unlike 
! .BR ping (8)
  ,
  .B fping 
  is meant to be used in scripts and its output is easy to parse.
***************
*** 129,133 ****
  
  .ni
  .SH SEE ALSO
! netstat(1), ping(8), ifconfig(8c)
  
--- 129,133 ----
  
  .ni
  .SH SEE ALSO
! netstat(8), ping(8), ifconfig(8)
  
diff -c -P --recursive --exclude=COPYRIGHT --exclude=COPYING netstd.orig/fping.orig/fping.man.orig netstd/fping/fping.man.orig
*** netstd.orig/fping.orig/fping.man.orig	Thu Jan  1 01:00:00 1970
--- netstd/fping/fping.man.orig	Thu Jan 19 00:08:54 1995
***************
*** 0 ****
--- 1,133 ----
+ .TH fping l
+ .SH NAME
+ fping \- send ICMP ECHO_REQUEST packets to network hosts
+ .SH SYNOPSIS
+ .B fping
+ [ \fIoptions\fR ]
+ [ \fIsystems...\fR ]
+ 
+ .SH DESCRIPTION
+ .NXR "fping command"
+ .NXR "ICMP ECHO_REQUEST"
+ 
+       
+ .B fping 
+ is a 
+ .MS ping 8
+ like program which uses the Internet Control
+ Message Protocol (ICMP) echo request to determine if a host is
+ up. 
+ .B fping 
+ is different from ping in that you can specify any
+ number of hosts on the command line, or specify a file containing
+ the lists of hosts to ping. Instead of trying one host until it
+ timeouts or replies, 
+ .B fping 
+ will send out a ping packet and move
+ on to the next host in a round-robin fashion. If a host replies,
+ it is noted and removed from the list of hosts to check. If a host
+ does not respond within a certain time limit and/or retry limit it 
+ will be considered unreachable. 
+ .PP
+ Unlike 
+ .MS ping 8
+ ,
+ .B fping 
+ is meant to be used in scripts and its output is easy to parse.
+ .SH OPTIONS
+ .IP \fB-a\fR 5
+ Show systems that are alive.
+ .IP \fB-d\fR 5
+ Use DNS to lookup address of return ping packet. This allows you to give
+ fping a list of IP addresses as input and print hostnames in the output.
+ .IP \fB-e\fR 5
+ Show elapsed (round-trip) time of packets
+ .IP \fB-f\fR 5
+ Read list of system from a file.
+ .IP \fB-i\fIn\fR 5
+ The minimum amount of time (in milliseconds) between sending a ping packet to any host (default is 25).
+ .IP \fB-q\fR 5
+ Quiet. Don't show per host results, just set final exit status.
+ .IP \fB-r\fIn\fR 5
+ Retry limit (default 3). This is the number of times an attempt at pinging
+ a host will be made, not including the first try.
+ .IP \fB-s\fR 5
+ Dump final statistics.
+ .IP \fB-t\fIn\fR 5
+ Individual host timeout in milliseconds (default 2500). This is the 
+ minimum number of milliseconds between ping packets directed towards a given
+ host.
+ .IP \fB-u\fR 5
+ Show systems that are unreachable.
+ .B fping
+ a list of IP addresses as input and have the results printed as hostnames.
+ .SH EXAMPLES
+ The following perl script will check a list of hosts and send mail if
+ any are unreachable. It uses the open2 function which allows a program
+ to be opened for reading and writing. fping does not start pinging the
+ list of systems until it reads EOF, which it gets after INPUT is closed. 
+ Sure the open2 usage is not need in this example, but its a good open2
+ example none the less. 
+ .nf
+ 
+ #!/usr/local/bin/perl
+ require 'open2.pl';
+ 
+ $MAILTO = "root";
+ 
+ $pid = &open2("OUTPUT","INPUT","/usr/local/bin/fping -u");
+ 
+ @check=("slapshot","foo","foobar");
+ 
+ foreach(@check) {  print INPUT "$_\\n"; }
+ close(INPUT);
+ @output=<OUTPUT>;
+ 
+ if ($#output != -1) {
+  chop($date=`date`);
+  open(MAIL,"|mail -s 'unreachable systems' $MAILTO");
+  print MAIL "\\nThe following systems are unreachable as of: $date\\n\\n";
+  print MAIL @output;
+  close MAIL;
+ }
+ 
+ .ni
+ Another good example is when you want to perform an action only on hosts
+ that are currently reachable.
+ .nf
+ 
+ #!/usr/local/bin/perl
+ 
+ $hosts_to_backup = `cat /etc/hosts.backup | fping -a`;
+ 
+ foreach $host (split(/\\n/,$hosts_to_backup)) {
+   # do it
+ }
+ 
+ .ni
+ 
+ .SH AUTHOR
+ Roland J. Schemers III, Stanford University
+ .SH DIAGNOSTICS
+ Exit status is 0 if all the hosts are reachable, 1 if some hosts were
+ unreachable, 2 if any IP addresses were not found, 3 for invalid
+ command line arguments, and 4 for a system call failure.
+ .SH BUGS
+ Ha! If there were any I knew of I would have fixed them!
+ .SH RESTRICTIONS
+ If certain options are used (i.e, a low value for -i and -t, and a 
+ high value for -r) it is possible to flood the network. This program
+ must be installed as setuid root in order to open up a raw socket,
+ or must be run by root. In order to stop mere mortals from hosing the
+ network (when fping is installed setuid root) , normal users can't specify 
+ the following:
+ .nf
+ 
+  -i n   where n < 10  msec
+  -r n   where n > 20
+  -t n   where n < 250 msec
+ 
+ .ni
+ .SH SEE ALSO
+ netstat(1), ping(8), ifconfig(8c)
+ 
