Joe Maimon wrote:

I can probably send a patch if you would like.

Here is a rough version that I am testing that seems to work for me.


Joe _______________________________________________ http://lists.clamav.net/cgi-bin/mailman/listinfo/clamav-users


--- clamav-devel/clamav-milter/clamav-milter.c  2004-11-20 18:02:23.000000000 
-0500
+++ clamav-devel.smrecv/clamav-milter/clamav-milter.c   2004-11-29 
22:41:58.000000000 -0500
@@ -2272,8 +2272,44 @@
 
        privdata->from = strdup(argv[0]);
 
-       if(hflag)
+       if(hflag) {
+               /* craft a sendmail like header for notifications */
+               char *macro_b, *macro_s, *macro_j, *macro__;  
+               char *p;
+               int plen = 0;
+               char *fmt = "from %s (%s) by %s\n";
+               
+
                privdata->headers = header_list_new();
+               macro_s = smfi_getsymval(ctx, "s");
+               macro_j = smfi_getsymval(ctx, "j");
+               macro__ = smfi_getsymval(ctx, "_");
+
+               plen += (macro_s) ? strlen(macro_s) : sizeof("unknown");
+               plen += (macro_j) ? strlen(macro_j) : sizeof("localhost");
+               plen += (macro__) ? strlen(macro__) : 0;
+               plen += strlen(fmt);
+
+               p = cli_malloc(plen);
+               if(p) {
+                       sprintf(p, fmt,
+                               (macro_s) ? macro_s : "unknown",
+                               (macro__) ? macro__ : "",
+                               (macro_j) ? macro_j : "localhost"
+                               );
+#ifdef CL_DEBUG
+                       if(debug_level > 5) {
+                               char *msg_p = "clamfi_header: created Recieved 
header alloclen=%d, len=%d,\"%s\"\n";
+                               if(use_syslog)
+                                       syslog(LOG_NOTICE, _(msg_p), plen, 
strlen(p), p);
+                               cli_dbgmsg(_(msg_p),plen, strlen(p), p);
+                       }
+#endif
+
+                       header_list_add(privdata->headers, "Received", p);
+                       free(p);
+               }
+       }
 
        if(smfi_setpriv(ctx, privdata) == MI_SUCCESS)
                return SMFIS_CONTINUE;
_______________________________________________
http://lists.clamav.net/cgi-bin/mailman/listinfo/clamav-users

Reply via email to