summaryrefslogtreecommitdiffstats
path: root/src/imap/imap-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/imap/imap-common.h')
-rw-r--r--src/imap/imap-common.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/imap/imap-common.h b/src/imap/imap-common.h
new file mode 100644
index 0000000..ec23879
--- /dev/null
+++ b/src/imap/imap-common.h
@@ -0,0 +1,40 @@
+#ifndef IMAP_COMMON_H
+#define IMAP_COMMON_H
+
+/* Disconnect client after idling this many milliseconds */
+#define CLIENT_IDLE_TIMEOUT_MSECS (60*30*1000)
+
+/* If we can't send anything to client for this long, disconnect the client */
+#define CLIENT_OUTPUT_TIMEOUT_MSECS (5*60*1000)
+
+/* Stop buffering more data into output stream after this many bytes */
+#define CLIENT_OUTPUT_OPTIMAL_SIZE 2048
+
+/* Disconnect client when it sends too many bad commands in a row */
+#define CLIENT_MAX_BAD_COMMANDS 20
+
+#include "lib.h"
+#include "imap-client.h"
+#include "imap-settings.h"
+
+struct mail_storage_service_input;
+
+typedef void imap_client_created_func_t(struct client **client);
+
+extern imap_client_created_func_t *hook_client_created;
+extern bool imap_debug;
+extern struct event_category event_category_imap;
+
+/* Sets the hook_client_created and returns the previous hook,
+ which the new_hook should call if it's non-NULL. */
+imap_client_created_func_t * ATTR_NOWARN_UNUSED_RESULT
+imap_client_created_hook_set(imap_client_created_func_t *new_hook);
+
+void imap_refresh_proctitle(void);
+void imap_refresh_proctitle_delayed(void);
+
+int client_create_from_input(const struct mail_storage_service_input *input,
+ int fd_in, int fd_out, bool unhibernated,
+ struct client **client_r, const char **error_r);
+
+#endif