aboutsummaryrefslogtreecommitdiff
path: root/src/imap/ngx_imap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/imap/ngx_imap.h')
-rw-r--r--src/imap/ngx_imap.h59
1 files changed, 41 insertions, 18 deletions
diff --git a/src/imap/ngx_imap.h b/src/imap/ngx_imap.h
index 6f5307d3d..d5adc184e 100644
--- a/src/imap/ngx_imap.h
+++ b/src/imap/ngx_imap.h
@@ -4,40 +4,63 @@
#include <ngx_config.h>
#include <ngx_core.h>
+#include <ngx_event.h>
+#include <ngx_event_connect.h>
typedef struct {
- ngx_connection_t *connection;
+ ngx_peer_connection_t upstream;
- ngx_buf_t *downstream_buffer;
- ngx_buf_t *upstream_buffer;
+ ngx_buf_t *buffer;
} ngx_imap_proxy_ctx_t;
typedef struct {
- uint32_t signature; /* "IMAP" */
+ uint32_t signature; /* "IMAP" */
- ngx_connection_t *connection;
- ngx_imap_proxy_ctx_t *proxy;
+ ngx_connection_t *connection;
+ ngx_buf_t *buffer;
+
+ ngx_imap_proxy_ctx_t *proxy;
+
+ ngx_uint_t command;
+ ngx_array_t args;
+
+ /* used to parse IMAP/POP3 command */
+
+ ngx_uint_t state;
+ u_char *arg_start;
+ u_char *arg_end;
} ngx_imap_session_t;
-#define NGX_POP3_USER 1
-#define NGX_POP3_PASS 2
-#define NGX_POP3_APOP 3
-#define NGX_POP3_STAT 4
-#define NGX_POP3_LIST 5
-#define NGX_POP3_RETR 6
-#define NGX_POP3_DELE 7
-#define NGX_POP3_NOOP 8
-#define NGX_POP3_RSET 9
-#define NGX_POP3_TOP 10
-#define NGX_POP3_UIDL 11
-#define NGX_POP3_QUIT 12
+#define NGX_POP3_USER 1
+#define NGX_POP3_PASS 2
+#define NGX_POP3_APOP 3
+#define NGX_POP3_STAT 4
+#define NGX_POP3_LIST 5
+#define NGX_POP3_RETR 6
+#define NGX_POP3_DELE 7
+#define NGX_POP3_NOOP 8
+#define NGX_POP3_RSET 9
+#define NGX_POP3_TOP 10
+#define NGX_POP3_UIDL 11
+#define NGX_POP3_QUIT 12
+
+
+#define NGX_IMAP_PARSE_INVALID_COMMAND 10
+
+
+#define NGX_IMAP_PROXY_INVALID 10
+#define NGX_IMAP_PROXY_ERROR 11
void ngx_imap_init_connection(ngx_connection_t *c);
void ngx_imap_close_connection(ngx_connection_t *c);
+void ngx_imap_proxy_init(ngx_imap_session_t *s);
+
+ngx_int_t ngx_pop3_parse_command(ngx_imap_session_t *s);
+
#endif /* _NGX_IMAP_H_INCLUDED_ */