diff options
author | Michael Hanselmann <hansmi@gentoo.org> | 2005-07-14 21:35:24 +0000 |
---|---|---|
committer | Michael Hanselmann <hansmi@gentoo.org> | 2005-07-14 21:35:24 +0000 |
commit | 7d9c3c3107b361ab004042603ecead5cb9445b3d (patch) | |
tree | 0a00f974fb8499d4f76a538bfe2003f1590680f2 | |
parent | Fix #80617, #98944, add GRUB :root_device support and add a more versatile gr... (diff) | |
download | gentoo-2-7d9c3c3107b361ab004042603ecead5cb9445b3d.tar.gz gentoo-2-7d9c3c3107b361ab004042603ecead5cb9445b3d.tar.bz2 gentoo-2-7d9c3c3107b361ab004042603ecead5cb9445b3d.zip |
Added patch from bug 98961.
(Portage version: 2.0.51.22-r1)
-rw-r--r-- | mail-mta/qmail/ChangeLog | 7 | ||||
-rw-r--r-- | mail-mta/qmail/files/1.03-r16/virtual-domain-outgoing-IP-address.patch | 115 | ||||
-rw-r--r-- | mail-mta/qmail/qmail-1.03-r16.ebuild | 6 |
3 files changed, 125 insertions, 3 deletions
diff --git a/mail-mta/qmail/ChangeLog b/mail-mta/qmail/ChangeLog index f9da1ab24049..87a0c2d61b24 100644 --- a/mail-mta/qmail/ChangeLog +++ b/mail-mta/qmail/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for mail-mta/qmail # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail/ChangeLog,v 1.49 2005/07/13 10:57:26 hansmi Exp $ +# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail/ChangeLog,v 1.50 2005/07/14 21:35:24 hansmi Exp $ + + 14 Jul 2005; Michael Hanselmann <hansmi@gentoo.org> + +files/1.03-r16/virtual-domain-outgoing-IP-address.patch, + qmail-1.03-r16.ebuild: + Added patch from bug 98961. 13 Jul 2005; Michael Hanselmann <hansmi@gentoo.org> +files/1.03-r16/invalid-envelope-sender-log.patch, qmail-1.03-r16.ebuild: diff --git a/mail-mta/qmail/files/1.03-r16/virtual-domain-outgoing-IP-address.patch b/mail-mta/qmail/files/1.03-r16/virtual-domain-outgoing-IP-address.patch new file mode 100644 index 000000000000..e122b26a46d3 --- /dev/null +++ b/mail-mta/qmail/files/1.03-r16/virtual-domain-outgoing-IP-address.patch @@ -0,0 +1,115 @@ +diff -NuarbBw qmail-1.03.orig/qmail-qmqpc.c qmail-1.03/qmail-qmqpc.c +--- qmail-1.03.orig/qmail-qmqpc.c 1998-06-15 03:53:16.000000000 -0700 ++++ qmail-1.03/qmail-qmqpc.c 2005-07-14 01:00:24.000000000 -0700 +@@ -109,7 +109,7 @@ + qmqpfd = socket(AF_INET,SOCK_STREAM,0); + if (qmqpfd == -1) die_socket(); + +- if (timeoutconn(qmqpfd,&ip,PORT_QMQP,10) != 0) { ++ if (timeoutconn(qmqpfd,&ip, ( struct ip_address * ) 0, PORT_QMQP,10) != 0) { // JAK + lasterror = 73; + if (errno == error_timeout) lasterror = 72; + close(qmqpfd); +diff -NuarbBw qmail-1.03.orig/qmail-remote.c qmail-1.03/qmail-remote.c +--- qmail-1.03.orig/qmail-remote.c 2005-07-14 00:50:58.000000000 -0700 ++++ qmail-1.03/qmail-remote.c 2005-07-14 01:01:22.000000000 -0700 +@@ -52,6 +52,9 @@ + stralloc auth_b64_pass = {0}; + stralloc auth_status = {0}; + ++stralloc smtphost = { 0 }; // JAK ++ipalloc smtpip = { 0 }; // JAK ++ + saa reciplist = {0}; + + struct ip_address partner; +@@ -902,9 +905,27 @@ + + addrmangle(&sender,argv[2],&flagalias,0); + ++ // 'canonhost' now should contain the canonical name of the sender's host. ++ // Most of the time this is a local domain name, but sometimes the domain ++ // name of a forwarded email. ++ ++ stralloc_copy ( &smtphost, &canonhost ); // JAK ++ dns_ip ( &smtpip, &smtphost ); // JAK ++ + if (!saa_readyplus(&reciplist,0)) temp_nomem(); + if (ipme_init() != 1) temp_oserr(); + ++ // JAK => ++ // Check if the obtained SMTP IP address is one of the addresses ++ // on this machine. If it is, set 'helohost' to 'smtphost'. ++ ++ if ( ipme_is ( &smtpip.ix -> ip ) ) ++ stralloc_copy ( &helohost, &smtphost ); ++ else ++ smtpip.ix -> ip.d [ 0 ] = smtpip.ix -> ip.d [ 1 ] = smtpip.ix -> ip.d [ 2 ] = smtpip.ix -> ip.d [ 3 ] = 0; ++ ++ // JAK <= ++ + flagallaliases = 1; + recips = argv + 3; + while (*recips) { +@@ -951,7 +972,7 @@ + if (smtpfd == -1) temp_oserr(); + + if (qmtp_priority(ip.ix[i].pref)) { +- if (timeoutconn(smtpfd,&ip.ix[i].ip,(unsigned int) qmtp_port,timeoutconnect) == 0) { ++ if (timeoutconn(smtpfd,&ip.ix[i].ip, &smtpip.ix -> ip, (unsigned int) port,timeoutconnect) == 0) { // JAK + tcpto_err(&ip.ix[i].ip,0); + partner = ip.ix[i].ip; + qmtp(); /* does not return */ +diff -NuarbBw qmail-1.03.orig/remoteinfo.c qmail-1.03/remoteinfo.c +--- qmail-1.03.orig/remoteinfo.c 1998-06-15 03:53:16.000000000 -0700 ++++ qmail-1.03/remoteinfo.c 2005-07-14 01:00:24.000000000 -0700 +@@ -49,7 +49,7 @@ + byte_copy(&sin.sin_addr,4,ipl); + sin.sin_port = 0; + if (bind(s,(struct sockaddr *) &sin,sizeof(sin)) == -1) { close(s); return 0; } +- if (timeoutconn(s,ipr,113,timeout) == -1) { close(s); return 0; } ++ if (timeoutconn(s,ipr,ipl,113,timeout) == -1) { close(s); return 0; } // JAK + fcntl(s,F_SETFL,fcntl(s,F_GETFL,0) & ~O_NDELAY); + + len = 0; +diff -NuarbBw qmail-1.03.orig/timeoutconn.c qmail-1.03/timeoutconn.c +--- qmail-1.03.orig/timeoutconn.c 1998-06-15 03:53:16.000000000 -0700 ++++ qmail-1.03/timeoutconn.c 2005-07-14 01:00:24.000000000 -0700 +@@ -10,9 +10,10 @@ + #include "byte.h" + #include "timeoutconn.h" + +-int timeoutconn(s,ip,port,timeout) ++int timeoutconn(s,ip,smtpip,port,timeout) // JAK + int s; + struct ip_address *ip; ++struct ip_address *smtpip; // JAK + unsigned int port; + int timeout; + { +@@ -22,6 +23,25 @@ + fd_set wfds; + struct timeval tv; + ++ // JAK => ++ // If 'smtpip' != 0.0.0.0 bind () it as outgoing SMTP IP address. ++ ++ if ( ( smtpip != 0 ) && ++ ( smtpip -> d [ 0 ] != 0 ) && ++ ( smtpip -> d [ 1 ] != 0 ) && ++ ( smtpip -> d [ 2 ] != 0 ) && ++ ( smtpip -> d [ 3 ] != 0 ) ) ++ { ++ byte_zero ( &sin, sizeof ( sin ) ); ++ byte_copy ( &sin.sin_addr.s_addr, 4, smtpip ); ++ sin.sin_family = AF_INET; ++ ++ if ( bind ( s, ( struct sockaddr * ) &sin, sizeof ( sin ) ) ) ++ return ( -1 ); ++ } ++ ++ // JAK <= ++ + byte_zero(&sin,sizeof(sin)); + byte_copy(&sin.sin_addr,4,ip); + x = (char *) &sin.sin_port; diff --git a/mail-mta/qmail/qmail-1.03-r16.ebuild b/mail-mta/qmail/qmail-1.03-r16.ebuild index 61dc9cd9ea6c..421942d8327b 100644 --- a/mail-mta/qmail/qmail-1.03-r16.ebuild +++ b/mail-mta/qmail/qmail-1.03-r16.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail/qmail-1.03-r16.ebuild,v 1.24 2005/07/13 10:57:26 hansmi Exp $ +# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail/qmail-1.03-r16.ebuild,v 1.25 2005/07/14 21:35:24 hansmi Exp $ inherit toolchain-funcs eutils fixheadtails flag-o-matic @@ -244,9 +244,11 @@ src_unpack() { epatch ${FILESDIR}/${PVR}/qmail-1.03-env-servercert.patch # Log invalid envelope senders (MAIL FROM:) - EPATCH_SINGLE_MSG="Log invalid envelope senders" \ epatch ${FILESDIR}/${PVR}/invalid-envelope-sender-log.patch + # See bug 98961 + epatch ${FILESDIR}/${PVR}/virtual-domain-outgoing-IP-address.patch + # See bug #90631 if use logmail; then EPATCH_SINGLE_MSG='Enabling logging of all mails via ~alias/.qmail-log' \ |