File: rfc2045xdump.c

package info (click to toggle)
maildrop 2.9.3-2.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,104 kB
  • sloc: ansic: 26,822; cpp: 9,085; sh: 4,868; makefile: 753; perl: 94
file content (47 lines) | stat: -rw-r--r-- 1,218 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
** Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for
** distribution information.
*/

/*
*/
#include	"rfc2045.h"
#include	<stdio.h>

#define	DUMP(s,n) if ( (s) ) { printf("%*s%s: %s\n", level*4, "", n, (s)); }

/* Extended RFC2045 dump */

static void dodump(struct rfc2045 *p, int level)
{
	if (!p->isdummy)
	{
		printf("%*sMessage start %ld, end %ld, startbody %ld, endbody %ld.\n", level*4,
			"", (long)p->startpos, (long)p->endpos,
			(long)p->startbody, (long)p->endbody);
		DUMP(p->mime_version, "Mime-Version")
		DUMP(p->content_type, "Content-Type")
		DUMP(rfc2045_getattr(p->content_type_attr, "charset"),
								"Charset")
		DUMP(p->content_transfer_encoding, "Transfer Encoding")
		DUMP(rfc2045_getattr(p->content_type_attr, "boundary"),
								"Boundary")
		DUMP(p->content_disposition, "Content Disposition")
		DUMP(rfc2045_getattr(p->content_disposition_attr, "name"),
							"Disposition Name")
		DUMP(rfc2045_getattr(p->content_disposition_attr, "filename"),
							"Disposition Filename")
	}

	for (p=p->firstpart; p; p=p->next)
	{
		printf("%*s{\n", level*4, "");
		dodump(p, level+1);
		printf("%*s}\n", level*4, "");
	}
}

void rfc2045_xdump(struct rfc2045 *p)
{
	dodump(p, 0);
}