Rename project -> pfixtools.
[apps/pfixtools.git] / postfix.h
index d24dcbb..4d038e8 100644 (file)
--- a/postfix.h
+++ b/postfix.h
@@ -1,5 +1,5 @@
 /******************************************************************************/
-/*          postlicyd: a postfix policy daemon with a lot of features         */
+/*          pfixtools: a collection of postfix related tools                  */
 /*          ~~~~~~~~~                                                         */
 /*  ________________________________________________________________________  */
 /*                                                                            */
 #ifndef POSTLICYD_POSTFIX_H
 #define POSTLICYD_POSTFIX_H
 
+#include <stddef.h>
+
 #include "buffer.h"
 
+enum smtp_state {
+    SMTP_UNKNOWN,
+    SMTP_CONNECT,
+    SMTP_EHLO,
+    SMTP_HELO = SMTP_EHLO,
+    SMTP_MAIL,
+    SMTP_RCPT,
+    SMTP_DATA,
+    SMTP_END_OF_MESSAGE,
+    SMTP_VRFY,
+    SMTP_ETRN,
+};
+
 /* \see http://www.postfix.org/SMTPD_POLICY_README.html */
 typedef struct query_t {
     unsigned state : 4;
@@ -72,10 +87,15 @@ typedef struct query_t {
 } query_t;
 
 static inline query_t *query_init(query_t *rq) {
-    p_clear(rq, 1);
+    memset(rq, 0, offsetof(query_t, data));
     buffer_init(&rq->data);
     return rq;
 }
+static inline query_t *query_reset(query_t *rq) {
+    memset(rq, 0, offsetof(query_t, data));
+    buffer_reset(&rq->data);
+    return rq;
+}
 static inline void query_wipe(query_t *rq) {
     buffer_wipe(&rq->data);
 }