diff options
author | gilles <gilles@poolp.org> | 2016-06-24 10:09:28 +0200 |
---|---|---|
committer | gilles <gilles@poolp.org> | 2016-06-24 10:09:28 +0200 |
commit | fdcf7a80cf21bb1b05e7b6ae50b504c5edd5a49a (patch) | |
tree | 1647ddb9d102156df250553688b5af92ed92504a | |
parent | session_allocator / session_destructor API (diff) | |
download | OpenSMTPD-extras-fdcf7a80cf21bb1b05e7b6ae50b504c5edd5a49a.tar.xz OpenSMTPD-extras-fdcf7a80cf21bb1b05e7b6ae50b504c5edd5a49a.zip |
switch from filter_api_get_udata to filter_api_session
-rw-r--r-- | extras/filters/filter-rspamd/filter_rspamd.c | 26 | ||||
-rw-r--r-- | extras/filters/filter-rspamd/rspamd.c | 4 | ||||
-rw-r--r-- | extras/filters/filter-rspamd/rspamd.h | 4 |
3 files changed, 17 insertions, 17 deletions
diff --git a/extras/filters/filter-rspamd/filter_rspamd.c b/extras/filters/filter-rspamd/filter_rspamd.c index 630fa60..dce3014 100644 --- a/extras/filters/filter-rspamd/filter_rspamd.c +++ b/extras/filters/filter-rspamd/filter_rspamd.c @@ -33,19 +33,17 @@ #include "rspamd.h" + static int on_connect(uint64_t id, struct filter_connect *conn) { - struct session *rs; + struct session *rs = filter_api_session(id); const char *ip; - rs = session_init(id); - //ip = filter_api_sockaddr_to_text((struct sockaddr *)&conn->local); ip = "127.0.0.1"; rs->ip = xstrdup(ip, "on_connect"); rs->hostname = xstrdup(conn->hostname, "on_connect"); - filter_api_set_udata(id, rs); return filter_api_accept(id); } @@ -53,7 +51,7 @@ on_connect(uint64_t id, struct filter_connect *conn) static int on_helo(uint64_t id, const char *helo) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); rs->helo = xstrdup(helo, "on_helo"); @@ -63,7 +61,7 @@ on_helo(uint64_t id, const char *helo) static int on_mail(uint64_t id, struct mailaddr *mail) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); const char *address; address = filter_api_mailaddr_to_text(mail); @@ -75,7 +73,7 @@ on_mail(uint64_t id, struct mailaddr *mail) static int on_rcpt(uint64_t id, struct mailaddr *rcpt) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); const char *address; address = filter_api_mailaddr_to_text(rcpt); @@ -87,7 +85,7 @@ on_rcpt(uint64_t id, struct mailaddr *rcpt) static int on_data(uint64_t id) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); if (! rspamd_buffer(rs)) return filter_api_reject_code(rs->id, FILTER_FAIL, 421, @@ -103,7 +101,7 @@ on_data(uint64_t id) static void on_dataline(uint64_t id, const char *line) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); ssize_t sz; sz = fprintf(rs->tx.fp, "%s\n", line); @@ -116,7 +114,7 @@ on_dataline(uint64_t id, const char *line) static int on_eom(uint64_t id, size_t size) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); rspamd_send_chunk(rs, NULL); @@ -125,7 +123,7 @@ on_eom(uint64_t id, size_t size) static void on_commit(uint64_t id) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); session_reset(rs); } @@ -133,7 +131,7 @@ on_commit(uint64_t id) static void on_rollback(uint64_t id) { - struct session *rs = filter_api_get_udata(id); + struct session *rs = filter_api_session(id); session_reset(rs); } @@ -141,7 +139,6 @@ on_rollback(uint64_t id) static void on_disconnect(uint64_t id) { - session_free(filter_api_get_udata(id)); } int @@ -213,6 +210,9 @@ main(int argc, char **argv) filter_api_on_rollback(on_rollback); filter_api_on_disconnect(on_disconnect); + filter_api_session_allocator(session_allocator); + filter_api_session_destructor(session_destructor); + /* if (c) filter_api_set_chroot(c); diff --git a/extras/filters/filter-rspamd/rspamd.c b/extras/filters/filter-rspamd/rspamd.c index 5ff5b5e..ff2069a 100644 --- a/extras/filters/filter-rspamd/rspamd.c +++ b/extras/filters/filter-rspamd/rspamd.c @@ -99,7 +99,7 @@ dataline_callback(const char *line, void *arg) struct session * -session_init(uint64_t id) +session_allocator(uint64_t id) { struct session *rs; @@ -126,7 +126,7 @@ session_reset(struct session *rs) } void -session_free(struct session *rs) +session_destructor(struct session *rs) { session_reset(rs); diff --git a/extras/filters/filter-rspamd/rspamd.h b/extras/filters/filter-rspamd/rspamd.h index 8d47b5f..e754386 100644 --- a/extras/filters/filter-rspamd/rspamd.h +++ b/extras/filters/filter-rspamd/rspamd.h @@ -61,9 +61,9 @@ struct session { }; -struct session *session_init(uint64_t); +struct session *session_allocator(uint64_t); +void session_destructor(struct session *); void session_reset(struct session *); -void session_free(struct session *); int rspamd_buffer(struct session *); int rspamd_connect(struct session *); |