Rspamd: add $authenticated_id as User to scan command
authorAndrew Lewis <exim@judo.za.org>
Sat, 14 Feb 2015 20:32:25 +0000 (20:32 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 14 Feb 2015 20:33:00 +0000 (20:33 +0000)
src/src/spam.c
test/scripts/4000-scanning/4008
test/stdout/4008

index 96780f59e0ba94a9d3d221c84018d5744bdcf788..4b99aca4b7e390b9091dcca88cefcfade6d0e43c 100644 (file)
@@ -380,8 +380,9 @@ if (spamd_sock == -1)
 if (sd->is_rspamd)
   {                            /* rspamd variant */
   uschar *req_str;
-  const char *helo;
-  const char *fcrdns;
+  const uschar * helo;
+  const uschar * fcrdns;
+  const uschar * authid;
 
   req_str = string_sprintf("CHECK RSPAMC/1.3\r\nContent-length: %lu\r\n"
     "Queue-Id: %s\r\nFrom: <%s>\r\nRecipient-Number: %d\r\n", mbox_size,
@@ -394,10 +395,12 @@ if (sd->is_rspamd)
     req_str = string_sprintf("%sHostname: %s\r\n", req_str, fcrdns);
   if (sender_host_address != NULL)
     req_str = string_sprintf("%sIP: %s\r\n", req_str, sender_host_address);
+  if ((authid = expand_string(US"$authenticated_id")) != NULL && *authid != '\0')
+    req_str = string_sprintf("%sUser: %s\r\n", req_str, authid);
   req_str = string_sprintf("%s\r\n", req_str);
   wrote = send(spamd_sock, req_str, Ustrlen(req_str), 0); 
   }
-  else
+else
   {                            /* spamassassin variant */
   (void)string_format(spamd_buffer,
          sizeof(spamd_buffer),
@@ -407,6 +410,7 @@ if (sd->is_rspamd)
   /* send our request */
   wrote = send(spamd_sock, spamd_buffer, Ustrlen(spamd_buffer), 0);
   }
+
 if (wrote == -1)
   {
   (void)close(spamd_sock);
@@ -527,9 +531,9 @@ if (sd->is_rspamd)
          spamd_version, spamd_short_result, &spamd_score, &spamd_threshold,
          &spamd_reject_score, &spamd_report_offset)) != 5)
     {
-      log_write(0, LOG_MAIN|LOG_PANIC,
-               "%s cannot parse spamd output: %d", loglabel, r);
-      return DEFER;
+    log_write(0, LOG_MAIN|LOG_PANIC,
+             "%s cannot parse spamd output: %d", loglabel, r);
+    return DEFER;
     }
   /* now parse action */
   p = &spamd_buffer[spamd_report_offset];
index 30c1d94d060f224f6f11b30a2ec669ab48c58570..c44b93854d07d4163653e37fbe30950c4bfe083c 100644 (file)
@@ -7,6 +7,7 @@ server 11333
 <Recipient-Number: 1\r
 <Rcpt: 
 <Helo:
+<User:
 <\r
 <From 
 <X-Envelope-From
index 957fbd8c544b044586006ea623beb7acd6e34b70..e41af881dc1f7b713951867ed11194547f80694f 100644 (file)
@@ -20,6 +20,7 @@ Connection request from [127.0.0.1]
 <Recipient-Number: 1
 <Rcpt: <userx@test.ex>
 <Helo: test.ex
+<User: CALLER
 <
 <From MAILER-DAEMON Tue Mar 02 09:44:33 1999
 <X-Envelope-From: <CALLER@myhost.test.ex>