diff options
author | Gilles Chehade <gilles@poolp.org> | 2018-08-25 20:57:18 +0200 |
---|---|---|
committer | Gilles Chehade <gilles@poolp.org> | 2018-08-25 20:57:18 +0200 |
commit | 4384f8c3d2aef82d2bdd263eefced758de576022 (patch) | |
tree | c44c3ccf60005c118240af90fb51e202a48b54e3 /smtpd/rfc5322.h | |
parent | sync (diff) | |
download | OpenSMTPD-4384f8c3d2aef82d2bdd263eefced758de576022.tar.xz OpenSMTPD-4384f8c3d2aef82d2bdd263eefced758de576022.zip |
sync
Diffstat (limited to 'smtpd/rfc5322.h')
-rw-r--r-- | smtpd/rfc5322.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/smtpd/rfc5322.h b/smtpd/rfc5322.h new file mode 100644 index 00000000..0979bd4c --- /dev/null +++ b/smtpd/rfc5322.h @@ -0,0 +1,41 @@ +/* $OpenBSD: rfc5322.h,v 1.1 2018/08/23 10:07:06 eric Exp $ */ + +/* + * Copyright (c) 2018 Eric Faurot <eric@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +struct rfc5322_result { + const char *hdr; + const char *value; +}; + +#define RFC5322_ERR -1 +#define RFC5322_NONE 0 +#define RFC5322_HEADER_START 1 +#define RFC5322_HEADER_CONT 2 +#define RFC5322_HEADER_END 3 +#define RFC5322_END_OF_HEADERS 4 +#define RFC5322_BODY_START 5 +#define RFC5322_BODY 6 +#define RFC5322_END_OF_MESSAGE 7 + +struct rfc5322_parser; + +struct rfc5322_parser *rfc5322_parser_new(void); +void rfc5322_free(struct rfc5322_parser *); +void rfc5322_clear(struct rfc5322_parser *); +int rfc5322_push(struct rfc5322_parser *, const char *); +int rfc5322_next(struct rfc5322_parser *, struct rfc5322_result *); +int rfc5322_unfold_header(struct rfc5322_parser *); |