From kayama@personal-media.co.jp Fri Jun 25 08:57:08 2004 Return-Path: X-Original-To: bet@latency.net Delivered-To: bet@latency.net Received: by og.latency.net (Postfix, from userid 1053) id 47B5513FBC6; Fri, 25 Jun 2004 08:55:06 -0400 (EDT) Received: from violet.rahul.net (violet.rahul.net [192.160.13.70]) by og.latency.net (Postfix) with ESMTP id 04E5313FBC5 for ; Fri, 25 Jun 2004 08:54:47 -0400 (EDT) Received: by violet.rahul.net (Postfix) id A5235BD3D; Fri, 25 Jun 2004 05:54:45 -0700 (PDT) Delivered-To: bet@rahul.net Received: from net1.personal-media.co.jp (net1.personal-media.co.jp [61.197.224.164]) by violet.rahul.net (Postfix) with ESMTP id D8BADBCE0 for ; Fri, 25 Jun 2004 05:54:44 -0700 (PDT) Received: from pcsv1.personal-media.co.jp (net2 [192.168.201.168]) by net1.personal-media.co.jp (Postfix) with ESMTP id 26C573B2D4; Fri, 25 Jun 2004 21:54:43 +0900 (JST) Received: from localhost (r53 [192.9.200.153]) by pcsv1.personal-media.co.jp (Postfix) with ESMTP id 06F673598A; Fri, 25 Jun 2004 21:54:43 +0900 (JST) Date: Fri, 25 Jun 2004 21:54:42 +0900 (GMT-9) Message-Id: <20040625.215442.67060583.kayama@personal-media.co.jp> To: postfix-users@postfix.org Cc: bet@rahul.net Subject: XFORWARD patch for smtpprox-1.2 From: Akihiro KAYAMA X-Mailer: Mew version 3.3 on Emacs 21.2 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on og.latency.net X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.63 X-Spam-Level: Hi all. As Google didn't tell me where I can get any piece of XFORWARD support patch for smtpprox-1.2(http://bent.latency.net/smtpprox/), I wrote my own one. I'm writing before-queue content filter version of greylisting with smtpprox. Thanks Bennett. --- MSDW/SMTP/Server.pm.orig 2003-03-10 03:52:24.000000000 +0900 +++ MSDW/SMTP/Server.pm 2004-06-25 21:43:57.000000000 +0900 @@ -183,13 +183,21 @@ return 0 unless defined($_ = $self->getline); s/[\r\n]*$//; $self->{state} = $_; - if (s/^helo\s+//i) { + if (s/^helo\s+//i || s/^ehlo\s+//i) { s/\s*$//;s/\s+/ /g; $self->{helo} = $_; + } elsif (s/^xforward\s*//i) { + my (@attr) = split(/\s+/, $_); + my ($attr); + foreach $attr (@attr) { + my ($name, $value) = ($attr =~ /^(.*?)=(.*)$/); + $self->{xforward}->{lc($name)} = $value; + } } elsif (s/^rset\s*//i) { delete $self->{to}; delete $self->{data}; delete $self->{recipients}; + delete $self->{xforward}; } elsif (s/^mail\s+from:\s*//i) { delete $self->{to}; delete $self->{data}; -- kayama