{"id":117,"date":"2009-06-07T14:03:15","date_gmt":"2009-06-07T07:03:15","guid":{"rendered":"http:\/\/www.icez.net\/blog\/?p=117"},"modified":"2009-06-07T14:03:15","modified_gmt":"2009-06-07T07:03:15","slug":"qmailtoaster-patch-for-spamassassin-spf-validation","status":"publish","type":"post","link":"https:\/\/www.icez.net\/blog\/117\/qmailtoaster-patch-for-spamassassin-spf-validation","title":{"rendered":"0062 | qmailtoaster patch for spamassassin SPF validation"},"content":{"rendered":"<p>\u0e08\u0e14\u0e44\u0e27\u0e49\u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e44\u0e27\u0e49\u0e43\u0e0a\u0e49 build \u0e43\u0e2b\u0e21\u0e48<\/p>\n<p>qmail-spf.patch<\/p>\n<pre lang=\"diff\">\r\ndiff -rua qmail-1.03.orig\/qmail-qmqpd.c qmail-1.03\/qmail-qmqpd.c\r\n--- qmail-1.03.orig\/qmail-qmqpd.c       1998-06-15 18:53:16.000000000 +0800\r\n+++ qmail-1.03\/qmail-qmqpd.c    2004-06-06 05:21:02.000000000 +0800\r\n@@ -53,6 +53,8 @@\r\n   }\r\n }\r\n\r\n+char envelope_from[1000];\r\n+\r\n void getcomma()\r\n {\r\n   char ch;\r\n@@ -78,7 +80,7 @@\r\n   if (!local) local = env_get(\"TCPLOCALIP\");\r\n   if (!local) local = \"unknown\";\r\n\r\n-  received(&qq,\"QMQP\",local,remoteip,remotehost,remoteinfo,(char *) 0);\r\n+  received(&qq,\"QMQP\",local,remoteip,remotehost,remoteinfo,(char *) 0,envelope_from);\r\n }\r\n\r\n char buf[1000];\r\n@@ -132,9 +134,11 @@\r\n   }\r\n   getcomma();\r\n\r\n-  if (getbuf())\r\n+  envelope_from[0]=0;\r\n+  if (getbuf()){\r\n     qmail_from(&qq,buf);\r\n-  else {\r\n+    str_copy(envelope_from,buf);\r\n+  } else {\r\n     qmail_from(&qq,\"\");\r\n     qmail_fail(&qq);\r\n     flagok = 0;\r\ndiff -rua qmail-1.03.orig\/received.c qmail-1.03\/received.c\r\n--- qmail-1.03.orig\/received.c  1998-06-15 18:53:16.000000000 +0800\r\n+++ qmail-1.03\/received.c       2004-06-06 05:14:39.000000000 +0800\r\n@@ -37,7 +37,7 @@\r\n \/* \"Received: from relay1.uu.net (HELO uunet.uu.net) (7@192.48.96.5)\\n\" *\/\r\n \/* \"  by silverton.berkeley.edu with SMTP; 26 Sep 1995 04:46:54 -0000\\n\" *\/\r\n\r\n-void received(qqt,protocol,local,remoteip,remotehost,remoteinfo,helo)\r\n+void received(qqt,protocol,local,remoteip,remotehost,remoteinfo,helo,envelope_from)\r\n struct qmail *qqt;\r\n char *protocol;\r\n char *local;\r\n@@ -45,6 +45,7 @@\r\n char *remotehost;\r\n char *remoteinfo;\r\n char *helo;\r\n+char *envelope_from;\r\n {\r\n   struct datetime dt;\r\n\r\n@@ -63,6 +64,9 @@\r\n   safeput(qqt,remoteip);\r\n   qmail_puts(qqt,\")\\n  by \");\r\n   safeput(qqt,local);\r\n+  qmail_puts(qqt,\" (envelope-from \");\r\n+  safeput(qqt,envelope_from);\r\n+  qmail_puts(qqt,\")\\n\\t\");\r\n   qmail_puts(qqt,\" with \");\r\n   qmail_puts(qqt,protocol);\r\n   qmail_puts(qqt,\"; \");\r\n<\/pre>\n<p>qmail-spf2.patch<\/p>\n<pre lang=\"diff\">\r\n--- qmail-smtpd.c       2009-06-07 12:46:04.000000000 +0700\r\n+++ qmail-smtpd.c.new   2009-06-07 12:39:42.000000000 +0700\r\n@@ -831,7 +831,7 @@\r\n   qp = qmail_qp(&qqt);\r\n   out(\"354 go ahead\\r\\n\");\r\n\r\n-  received(&qqt,protocol,local,remoteip,remotehost,remoteinfo,fakehelo);\r\n+  received(&qqt,protocol,local,remoteip,remotehost,remoteinfo,fakehelo,mailfrom.s);\r\n   spfreceived();\r\n   blast(&hops);\r\n   hops = (hops >= MAXHOPS);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0e08\u0e14\u0e44\u0e27\u0e49\u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e44\u0e27\u0e49\u0e43\u0e0a\u0e49 build \u0e43\u0e2b\u0e21\u0e48 qmail-spf.patch diff -rua qmail-1.03.orig\/qmail-qmqpd.c qmail-1.03\/qmail-qmqpd.c &#8212; qmail-1.03.orig\/qmail-qmqpd.c 1998-06-15 18:53:16.000000000 +0800 +++ qmail-1.03\/qmail-qmqpd.c 2004-06-06 05:21:02.000000000 +0800 @@ -53,6 +53,8 @@ } } +char envelope_from[1000]; + void getcomma() { char ch; @@ -78,7 +80,7 @@ if (!local) local = env_get(&#8220;TCPLOCALIP&#8221;); if (!local) local = &#8220;unknown&#8221;; &#8211; received(&#038;qq,&#8221;QMQP&#8221;,local,remoteip,remotehost,remoteinfo,(char *) 0); + received(&#038;qq,&#8221;QMQP&#8221;,local,remoteip,remotehost,remoteinfo,(char *) 0,envelope_from); } [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-117","post","type-post","status-publish","format-standard","hentry","category-misc"],"_links":{"self":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":0,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}