From 3c65324c21d5dfb51d3d1b0ac28c04306ac5e07f Mon Sep 17 00:00:00 2001 From: chris mikkelson Date: Thu, 15 Apr 2010 16:04:08 -0500 Subject: [PATCH] Publish URLs to inter-module communication channel. --- ssm_nmsg.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ssm_nmsg.c b/ssm_nmsg.c index 5318a58..c2b3c07 100644 --- a/ssm_nmsg.c +++ b/ssm_nmsg.c @@ -40,13 +40,20 @@ struct ssm_nmsg_state { unsigned nurl; }; +struct smtpsink_module ss_module; +int publish_urls = 0; + static void addurl(msgproc *m, char *s, void *data) { - struct ssm_nmsg_state *nms = (struct ssm_nmsg_state *)data; + struct conn *c = (struct conn *)data; + struct ssm_nmsg_state *nms = ssm_getpriv(&ss_module, c); const uint8_t *url = (const uint8_t *)s; size_t len = strlen(s) + 1; + if (publish_urls) + ssm_publish("bodyurl", c, s); + if (nms->msg) nmsg_message_set_field(nms->msg, "bodyurl", nms->nurl++, url, len); @@ -87,6 +94,11 @@ ssm_nmsg_init(char *config) nmsg_res res; nmsg_message_t m; + if (!ssm_nproviders("bodyurl")) { + ssm_provide("bodyurl"); + publish_urls = 1; + } + pthread_key_create(&nmsg_output_key, 0); msgproc_module_init(&msgproc_message); @@ -126,8 +138,6 @@ ssm_nmsg_init(char *config) } } -struct smtpsink_module ss_module; - static int ssm_nmsg_connect(struct conn *c) { @@ -152,7 +162,7 @@ ssm_nmsg_connect(struct conn *c) } if (nms->urlproc) { - msgproc_setcallback(nms->urlproc, addurl, nms); + msgproc_setcallback(nms->urlproc, addurl, c); msgproc_start(nms->urlproc); } } -- 2.50.1