]> git.mikk.net Git - ssm_nmsg/commitdiff
Add message type (e.g. "spamtrap") to messages. Type selectable at
authorchris mikkelson <chris@mikk.net>
Sat, 27 Mar 2010 03:46:10 +0000 (22:46 -0500)
committerchris mikkelson <chris@mikk.net>
Tue, 30 Mar 2010 19:25:46 +0000 (14:25 -0500)
startup.

ssm_nmsg.c

index 9ad51bfea5411ff8522ed7139a2f4a49a9ed2341..3a7102342fec1064d11f2cdbc168909cf31affb9 100644 (file)
@@ -61,19 +61,37 @@ ssm_nmsg_reload(void)
        pthread_mutex_unlock(&outmtx);
 }
 
+char *message_type_name = "spamtrap";
+unsigned message_type;
+
 static void
 ssm_nmsg_init(char *config)
 {
+       char *t;
        nmsg_res res;
+       nmsg_message_t m;
+
+       msgproc_module_init(&msgproc_message);
 
        res = nmsg_init();
        if (res != nmsg_res_success) {
                errx(1, "unable to initialize libnmsg");
        }
        nmsg_emailmod = nmsg_msgmod_lookup_byname("ISC", "email");
-       msgproc_module_init(&msgproc_message);
-
-       nmsg_output_filename = strdup(config);
+       m = nmsg_message_init(nmsg_emailmod);
+
+       nmsg_message_enum_name_to_value(m, "type", message_type_name, &message_type);
+
+       while ((t = strsep(&config, ", "))) {
+               if (*t) {
+                       if (!strncasecmp(t, "file=", 5)) {
+                               nmsg_output_filename=strdup(t+5);
+                       } else if (!strncasecmp(t, "type=", 5)) {
+                               nmsg_message_enum_name_to_value(m, "type",
+                                                       t+5, &message_type);
+                       } 
+               }
+       }
        ssm_nmsg_reload();
 }
 
@@ -97,6 +115,9 @@ ssm_nmsg_connect(struct conn *c)
                        inet_ntop(AF_INET, &c->peer.sin_addr, ip, sizeof(ip));
                        nmsg_message_set_field(nms->msg, "srchost", 0,
                                        addr, strnlen(ip, sizeof(ip)) + 1);
+                       nmsg_message_set_field(nms->msg, "type", 0,
+                                       (const uint8_t *)&message_type,
+                                       sizeof(message_type));
                }
 
                if (nms->urlproc) {