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);
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);
}
}
-struct smtpsink_module ss_module;
-
static int
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);
}
}