summaryrefslogtreecommitdiffstats
path: root/src/buffer.h
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-10 21:47:22 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-10 21:47:22 +0400
commit07082741605e8e048a129bec28695f57263de1e8 (patch)
tree7c3f92439dfc40cac6c495f052ff3e913aea6709 /src/buffer.h
parent1be79df4d51fc2e497a73fc0163de08d406cc1f3 (diff)
downloadrspamd-07082741605e8e048a129bec28695f57263de1e8.tar.gz
rspamd-07082741605e8e048a129bec28695f57263de1e8.zip
* Check messages received via smtp proxy
* Add support for sendfile in io dispatcher * Fix issues with compatibility of worker_task and smtp proxy * Proxy DATA command
Diffstat (limited to 'src/buffer.h')
-rw-r--r--src/buffer.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h
index 4cf9de555..9f3897d1c 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -20,6 +20,7 @@ typedef void (*dispatcher_err_callback_t)(GError *err, void *user_data);
enum io_policy {
BUFFER_LINE, /**< call handler when we have line ready */
BUFFER_CHARACTER, /**< call handler when we have some characters */
+ BUFFER_ANY /**< call handler whenever we got data in buffer */
};
/**
@@ -45,6 +46,13 @@ typedef struct rspamd_io_dispatcher_s {
dispatcher_write_callback_t write_callback; /**< write callback */
dispatcher_err_callback_t err_callback; /**< error callback */
void *user_data; /**< user's data for callbacks */
+ off_t offset; /**< for sendfile use */
+ size_t file_size;
+ int sendfile_fd;
+ gboolean in_sendfile; /**< whether buffer is in sendfile mode */
+#ifndef HAVE_SENDFILE
+ void *map;
+#endif
} rspamd_io_dispatcher_t;
/**
@@ -87,6 +95,14 @@ gboolean rspamd_dispatcher_write (rspamd_io_dispatcher_t *d,
size_t len, gboolean delayed, gboolean allocated);
/**
+ * Send specified descriptor to dispatcher
+ * @param d pointer to dispatcher's object
+ * @param fd descriptor of file
+ * @param len length of data
+ */
+gboolean rspamd_dispatcher_sendfile (rspamd_io_dispatcher_t *d, int fd, size_t len);
+
+/**
* Pause IO events on dispatcher
* @param d pointer to dispatcher's object
*/