1 Index: spamass-milter/spamass-milter.cpp
2 ===================================================================
3 --- spamass-milter.orig/spamass-milter.cpp 2012-06-21 13:03:42.000000000 -0700
4 +++ spamass-milter/spamass-milter.cpp 2012-06-21 14:02:32.000000000 -0700
8 const char *macro_b, *macro_i, *macro_j, *macro_r,
9 - *macro_s, *macro_v, *macro_Z, *macro__;
10 + *macro_s, *macro_v, *macro_Z, *macro__,
11 + *macro_auth_type, *macro_auth_ssf;
17 warnmacro("r", "ENVRCPT");
21 + /* Authenticated bits Information */
22 + macro_auth_type = smfi_getsymval(ctx, "{auth_type}");
23 + if (!macro_auth_type)
25 + macro_auth_type = "";
26 + warnmacro("auth_type", "ENVRCPT");
29 + macro_auth_ssf = smfi_getsymval(ctx, "{auth_ssf}");
30 + if (!macro_auth_ssf)
32 + macro_auth_ssf = "";
33 + warnmacro("auth_ssf", "ENVRCPT");
36 /* Sendmail currently cannot pass us the {s} macro, but
37 I do not know why. Leave this in for the day sendmail is
38 fixed. Until that day, use the value remembered by
40 assassin->output((string)"X-Envelope-From: "+assassin->from()+"\r\n");
41 assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n");
43 - assassin->output((string)
44 - "Received: from "+macro_s+" ("+macro__+")\r\n\t"+
45 - "by "+macro_j+" ("+macro_v+"/"+macro_Z+") with "+macro_r+" id "+macro_i+"\r\n\t"+
47 + rec_header=(string)"Received: from "+macro_s+" ("+macro__+")\r\n\t";
48 + if (strlen(macro_auth_type)!=0) {
49 + rec_header+=(string)"(authenticated";
50 + if (strlen(macro_auth_ssf)!=0) {
51 + rec_header+=(string)" bits="+macro_auth_ssf;
53 + rec_header+=(string)")\r\n\t";
55 + rec_header+=(string)"by "+macro_j+"("+macro_v+"/"+macro_Z+") with "+
56 + macro_r+" id "+macro_i+"\r\n\t"+
58 - "(envelope-from "+assassin->from()+")\r\n");
59 + "(envelope-from "+assassin->from()+"\r\n";
61 + debug(D_SPAMC, "Received header for spamc: %s", rec_header.c_str());
62 + assassin->output(rec_header);
65 assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n");