dumprcv.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23/*	  All Rights Reserved  	*/
24
25
26#ident	"%Z%%M%	%I%	%E% SMI"        /* SVr4.0 1.6 */
27
28#include "mail.h"
29/*
30 * Put out H_RECEIVED lines if necessary, or
31 * suppress their printing from the calling routine.
32 */
33void dumprcv (type, htype, didrcvlines, suppress, f)
34register int	type;
35register int	htype;
36register int	*didrcvlines;
37register int	*suppress;
38register FILE	*f;
39{
40	int		rcvspot;	/* Place to put H_RECEIVED lines */
41	struct hdrs	*hptr;
42	char		*pn = "dumprcv";
43
44	Dout(pn, 15, "type=%d, htype=%d/%s, *didrcvlines=%d, *suppress=%d\n", type, htype, htype >= 0 ? header[htype].tag : "None", *didrcvlines, *suppress);
45
46	rcvspot = pckrcvspot();
47	if (rcvspot == -1) {
48		Dout(pn, 15, "\trcvspot==-1\n");
49		return;
50	}
51
52	if (htype == H_RECEIVED) {
53		*suppress = TRUE;
54	}
55
56	if (*didrcvlines == TRUE) {
57		Dout(pn, 15, "\tdidrcvlines == TRUE\n");
58		return;
59	}
60	if ((htype >= 0) && (rcvspot != htype)) {
61		Dout(pn, 15, "\thtype < 0 || rcvspot != htype, *suppress=%d\n", *suppress);
62		return;
63	}
64
65	*didrcvlines = TRUE;
66	for (hptr = hdrlines[H_RECEIVED].head;
67	     hptr != (struct hdrs *)NULL;
68	     hptr = hptr->next) {
69		printhdr(type, H_RECEIVED, hptr, f);
70	}
71	Dout(pn, 15, "\t*didrcvlines=%d, *suppress=%d\n", *didrcvlines, *suppress);
72}
73