mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
|
diff -urN smtpprox-1.2/MSDW/SMTP/Server.pm smtpprox-1.2-fixed/MSDW/SMTP/Server.pm
|
||
|
--- smtpprox-1.2/MSDW/SMTP/Server.pm 2003-03-09 13:52:24.000000000 -0500
|
||
|
+++ smtpprox-1.2-fixed/MSDW/SMTP/Server.pm 2007-01-18 13:27:44.000000000 -0500
|
||
|
@@ -13,6 +13,7 @@
|
||
|
package MSDW::SMTP::Server;
|
||
|
use IO::Socket;
|
||
|
use IO::File;
|
||
|
+use File::Temp qw(mkstemp);
|
||
|
|
||
|
=head1 NAME
|
||
|
|
||
|
@@ -183,13 +184,21 @@
|
||
|
return 0 unless defined($_ = $self->getline);
|
||
|
s/[\r\n]*$//;
|
||
|
$self->{state} = $_;
|
||
|
- if (s/^helo\s+//i) {
|
||
|
+ if (s/^(helo|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};
|
||
|
@@ -208,7 +217,8 @@
|
||
|
$self->{data}->seek(0, 0);
|
||
|
$self->{data}->truncate(0);
|
||
|
} else {
|
||
|
- $self->{data} = IO::File->new_tmpfile;
|
||
|
+ (undef, $self->{datafilename}) = mkstemp("/tmp/smtpproxXXXXXX");
|
||
|
+ $self->{data} = new IO::File $self->{datafilename}, "r+";
|
||
|
}
|
||
|
while (defined($_ = $self->getline)) {
|
||
|
if ($_ eq ".\r\n") {
|