Annotation of libwww/Library/src/HTMIME.html, revision 2.19
2.6 timbl 1: <HTML>
2: <HEAD>
2.16 frystyk 3: <TITLE>RFC822 Header Parser</TITLE>
2.19 ! frystyk 4: <!-- Changed by: Henrik Frystyk Nielsen, 6-Oct-1995 -->
2.6 timbl 5: </HEAD>
6: <BODY>
2.9 frystyk 7:
8: <H1>MIME Parser</H1>
9:
10: <PRE>
11: /*
2.13 frystyk 12: ** (c) COPYRIGHT MIT 1995.
2.9 frystyk 13: ** Please first read the full copyright statement in the file COPYRIGH.
14: */
15: </PRE>
16:
17: The MIME parser stream presents a MIME document. It recursively
18: invokes the format manager to handle embedded formats.<P>
19:
20: As well as stripping off and parsing the headers, the MIME parser has
21: to parse any weirld MIME encodings it may meet within the body parts
22: of messages, and must deal with multipart messages. <P>
23:
24: This module is implemented to the level necessary for operation with
25: WWW, but is not currently complete for any arbitrary MIME message.<P>
26:
27: Check the <A NAME="z0" HREF="HTMIME.c">source</A> for latest additions
28: to functionality.<P> The MIME parser is complicated by the fact that
29: WWW allows real binary to be sent, not ASCII encoded. Therefore the
30: netascii decoding is included in this module. One cannot layer it by
31: converting first from Net to local text, then decoding it. Of course,
32: for local files, the net ascii decoding is not needed. There are
33: therefore two creation routines. <P>
34:
35: This module is implemented by <A HREF="HTMIME.c">HTMIME.c</A>, and it is
36: a part of the <A
2.17 frystyk 37: HREF="http://www.w3.org/pub/WWW/Library/">
2.14 frystyk 38: W3C Reference Library</A>.
2.9 frystyk 39:
40: <PRE>
41: #ifndef HTMIME_H
2.1 timbl 42: #define HTMIME_H
43:
44: #include "HTStream.h"
2.15 frystyk 45: #include "HTFormat.h"
2.6 timbl 46: </PRE>
2.7 timbl 47:
2.8 frystyk 48: <H3>Converters in this Module</H3>
2.1 timbl 49:
2.8 frystyk 50: <PRE>
51: extern HTConverter HTMIMEConvert, HTNetMIME;
2.18 frystyk 52: </PRE>
53:
54: <H2>Handling Unknown Headers</H2>
2.1 timbl 55:
2.18 frystyk 56: If you have additional headers that you want to experient with you can
57: register a header parser to handle all unknown headers. This handler
58: is called whenever an unknown header is encountered when parsing the
59: object header. If the returns YES then the MIME parser stores the
60: metainformation in the anchor object ifself so that it can be found at
61: a later point in time. If the handler returns NO, then the header is
62: discarded.<P>
63:
64: The header passed to the call back function will be in normal NULL
65: terminated C string without any CRLF. The line will also be unwrapped
66: so that it is easier to parse for the call back function.
67:
68: <PRE>
69: typedef BOOL HTMIMEHandler (HTRequest * request, char * header);
70:
71: extern BOOL HTMIME_register (HTMIMEHandler * cbf);
72: extern BOOL HTMIME_unRegister (void);
73: </PRE>
74:
75: <PRE>
2.1 timbl 76: #endif
2.8 frystyk 77: </PRE>
2.1 timbl 78:
2.8 frystyk 79: End of HTMIME
80: </BODY>
2.6 timbl 81: </HTML>
Webmaster