--- spamass-milter.cpp.orig 2010-07-23 11:09:46.000000000 -0500 +++ spamass-milter.cpp 2010-07-23 11:07:20.000000000 -0500 @@ -905,7 +905,9 @@ */ const char *macro_b, *macro_i, *macro_j, *macro_r, - *macro_s, *macro_v, *macro_Z, *macro__; + *macro_s, *macro_v, *macro_Z, *macro__, + *macro_auth_ssf, *macro_auth_authen, *macro_auth_author, + *macro_auth_type; char date[32]; /* RFC 822 date. */ @@ -942,6 +944,35 @@ macro_r = "SMTP"; warnmacro("r", "ENVRCPT"); } + + /* Authenticated bits Information */ + macro_auth_ssf = smfi_getsymval(ctx, "{auth_ssf}"); + if (!macro_auth_ssf) + { + macro_auth_ssf = ""; + warnmacro("auth_ssf", "ENVRCPT"); + } + + macro_auth_authen = smfi_getsymval(ctx, "{auth_authen}"); + if (!macro_auth_authen) + { + macro_auth_authen = ""; + warnmacro("auth_authen", "ENVRCPT"); + } + + macro_auth_author = smfi_getsymval(ctx, "{auth_author}"); + if (!macro_auth_author) + { + macro_auth_author = ""; + warnmacro("auth_author", "ENVRCPT"); + } + + macro_auth_type = smfi_getsymval(ctx, "{auth_type}"); + if (!macro_auth_type) + { + macro_auth_type = ""; + warnmacro("auth_type", "ENVRCPT"); + } /* Sendmail currently cannot pass us the {s} macro, but I do not know why. Leave this in for the day sendmail is @@ -981,11 +1012,16 @@ assassin->output((string)"X-Envelope-From: "+assassin->from()+"\r\n"); assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n"); - assassin->output((string) - "Received: from "+macro_s+" ("+macro__+")\r\n\t"+ - "by "+macro_j+" ("+macro_v+"/"+macro_Z+") with "+macro_r+" id "+macro_i+";\r\n\t"+ + string rec_header; + rec_header=(string)"Received: from "+macro_s+" ("+macro__+")\r\n\t"; + if(strlen(macro_auth_ssf)!=0) { + rec_header+=(string)"(authenticated bits="+macro_auth_ssf+")\r\n\t"; + } + rec_header+=(string)"by "+macro_j+" ("+macro_v+"/"+macro_Z+") with "+macro_r+" id "+macro_i+";\r\n\t"+ macro_b+"\r\n\t"+ - "(envelope-from "+assassin->from()+")\r\n"); + "(envelope-from "+assassin->from()+")\r\n"; + debug(D_SPAMC, "Received header for spamc: %s", rec_header.c_str()); + assassin->output(rec_header); } else assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n");