mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-21 14:47:03 +01:00
tools: Give mime parser callbacks access to the rfc822 parser.
* tools/mime-parser.c (mime_parser_context_s): Add field MSG. (parse_message_cb): Set it. (mime_parser_rfc822parser): New. * tools/mime-parser.h: Declare rfc822parse_t for the new prototype. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
9e6f8a55ed
commit
4ac138c84d
@ -64,6 +64,9 @@ struct mime_parser_context_s
|
||||
/* The callback to collect a signature. */
|
||||
gpg_error_t (*collect_signature) (void *cookie, const char *data);
|
||||
|
||||
/* The RFC822 parser context is stored here during callbacks. */
|
||||
rfc822parse_t msg;
|
||||
|
||||
/* Helper to convey error codes from user callbacks. */
|
||||
gpg_error_t err;
|
||||
|
||||
@ -189,6 +192,9 @@ parse_message_cb (void *opaque, rfc822parse_event_t event, rfc822parse_t msg)
|
||||
const char *s;
|
||||
int rc = 0;
|
||||
|
||||
/* Make the RFC822 parser context availabale for callbacks. */
|
||||
ctx->msg = msg;
|
||||
|
||||
if (ctx->debug)
|
||||
show_message_parser_event (event);
|
||||
|
||||
@ -475,6 +481,8 @@ parse_message_cb (void *opaque, rfc822parse_event_t event, rfc822parse_t msg)
|
||||
}
|
||||
}
|
||||
|
||||
ctx->msg = NULL;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -599,6 +607,15 @@ mime_parser_set_collect_signature (mime_parser_t ctx,
|
||||
}
|
||||
|
||||
|
||||
/* Return the RFC888 parser context. This is only available inside a
|
||||
* callback. */
|
||||
rfc822parse_t
|
||||
mime_parser_rfc822parser (mime_parser_t ctx)
|
||||
{
|
||||
return ctx->msg;
|
||||
}
|
||||
|
||||
|
||||
/* Read and parse a message from FP and call the appropriate
|
||||
* callbacks. */
|
||||
gpg_error_t
|
||||
|
@ -48,5 +48,12 @@ void mime_parser_set_collect_signature (mime_parser_t ctx,
|
||||
gpg_error_t mime_parser_parse (mime_parser_t ctx, estream_t fp);
|
||||
|
||||
|
||||
/* Duplicated declaration of the RFC822 parser context. */
|
||||
struct rfc822parse_context;
|
||||
typedef struct rfc822parse_context *rfc822parse_t;
|
||||
|
||||
rfc822parse_t mime_parser_rfc822parser (mime_parser_t ctx);
|
||||
|
||||
|
||||
|
||||
#endif /*GNUPG_MIME_PARSER_H*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user