]> git.ozlabs.org Git - ccan/blobdiff - ccan/rfc822/rfc822.h
rfc822: Index headers by name
[ccan] / ccan / rfc822 / rfc822.h
index 2beae410cda27e80f4905aca63aa37cb776cd70d..24fb3cc37e74e2b58a8a0a1f4d00225708fe9d95 100644 (file)
@@ -117,7 +117,7 @@ struct bytestring rfc822_body(struct rfc822_msg *msg);
 
 enum rfc822_header_errors {
        RFC822_HDR_NO_COLON = 1,
-       RFC822_HDR_BAD_NAME = 2,
+       RFC822_HDR_BAD_NAME_CHARS = 2,
 };
 
 enum rfc822_header_errors rfc822_header_errors(struct rfc822_msg *msg,
@@ -168,4 +168,22 @@ struct bytestring rfc822_header_raw_value(struct rfc822_msg *msg,
 struct bytestring rfc822_header_unfolded_value(struct rfc822_msg *msg,
                                               struct rfc822_header *hdr);
 
+/**
+ * rfc822_header_is - determine if a header is of a given name
+ * @msg: message
+ * @hdr: a header handle
+ * @name: header name
+ *
+ * This returns true if the header field @hdr has name @name (case
+ * insensitive), otherwise false.
+ */
+bool rfc822_header_is(struct rfc822_msg *msg, struct rfc822_header *hdr,
+                     const char *name);
+
+struct rfc822_header *rfc822_first_header_of_name(struct rfc822_msg *msg,
+                                                 const char *name);
+struct rfc822_header *rfc822_next_header_of_name(struct rfc822_msg *msg,
+                                                struct rfc822_header *hdr,
+                                                const char *name);
+
 #endif /* CCAN_RFC822_H_ */