]> git.mikk.net Git - ssm_nmsg/commitdiff
Allocate ssm_nmsg_state structure only once per connection structure.
authorchris mikkelson <chris@mikk.net>
Sat, 13 Mar 2010 06:02:36 +0000 (00:02 -0600)
committerchris mikkelson <chris@mikk.net>
Sat, 13 Mar 2010 06:02:36 +0000 (00:02 -0600)
The calling smtpsink recycles the structures, and can recycle private
data along with it.

ssm_nmsg.c

index 2b35d4548c8351b5b29066fb92f8684b6eac56c5..9ad51bfea5411ff8522ed7139a2f4a49a9ed2341 100644 (file)
@@ -82,10 +82,12 @@ struct smtpsink_module ss_module;
 static int
 ssm_nmsg_connect(struct conn *c)
 {
-       struct ssm_nmsg_state *nms = malloc(sizeof(struct ssm_nmsg_state));
+       struct ssm_nmsg_state *nms = ssm_getpriv(&ss_module, c);
        char ip[80];
        const uint8_t *addr = (const uint8_t *)ip;
 
+       if (!nms) nms = malloc(sizeof(struct ssm_nmsg_state));
+
        if (nms) {
                nms->msg = nmsg_message_init(nmsg_emailmod);
                nms->nurl = 0;