From a30740affdb9342dee394ffdc77591ec9bc75ae7 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 1 Dec 2000 06:22:53 +0000 Subject: Minor bugfixes. svn path=/trunk/; revision=2993 --- fetchmail-FAQ.html | 12 ++++++++++-- fetchmail.c | 2 +- fetchmail.man | 8 ++++---- fetchmailconf | 4 ++-- indexgen.sh | 4 ++-- interface.c | 23 +++++++++++++++++------ 6 files changed, 36 insertions(+), 17 deletions(-) diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index a47342d6..947699b1 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -10,7 +10,7 @@
Back to Fetchmail Home Page To Site Map -$Date: 2000/11/26 18:20:28 $ +$Date: 2000/12/01 06:22:45 $

Frequently Asked Questions About Fetchmail

@@ -558,6 +558,14 @@ necessary to do this just to get a link working. Get the link working first, observe the actual address range you see on connections, and add an interface option (if you need one) later.

+You can't use ETRN if you have a dynamic IP address (your ISP changes +your IP address occasionally, possibly with every connect). You need +to have your own registered domain and a definite IP address +registered for that domain. The server needs to be configured to +accept mail for your domain but then queue it to forward to your +machine. ETRN just tells to server to flush its queue for your +domain. Fetchmail doesn't actually get the mail in that case.

+ If you're using a dynamic-IP configuration, one other (non-fetchmail) problem you may run into with outgoing mail is that some sites will bounce your email because the hostname your giving them isn't real @@ -2963,7 +2971,7 @@ install Linux on your server...

Back to Fetchmail Home Page To Site Map -$Date: 2000/11/26 18:20:28 $ +$Date: 2000/12/01 06:22:45 $

Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/fetchmail.c b/fetchmail.c index 8f270c0c..fc5371b2 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -677,7 +677,7 @@ int main(int argc, char **argv) #ifdef POP3_ENABLE /* leave the UIDL state alone if there have been any errors */ if (!check_only && - ((querystatus==PS_SUCCESS) || (querystatus==PS_NOMAIL))) + ((querystatus==PS_SUCCESS) || (querystatus==PS_NOMAIL) || (querystatus==PS_MAXFETCH))) uid_swap_lists(ctl); #endif /* POP3_ENABLE */ diff --git a/fetchmail.man b/fetchmail.man index a9b8a21e..e7aead68 100644 --- a/fetchmail.man +++ b/fetchmail.man @@ -458,7 +458,7 @@ See USER AUTHENTICATION below for a complete description. .B \-I , --interface (Keyword: interface) Require that a specific interface device be up and have a specific local -IP address (or range) before polling. Frequently +or remote IP address (or range) before polling. Frequently .I fetchmail is used over a transient point-to-point TCP/IP link established directly to a mailserver via SLIP or PPP. That is a relatively secure channel. @@ -2027,9 +2027,9 @@ mailserver. This creates a risk that name/password pairs might be snaffled with a packet sniffer or more sophisticated monitoring software. Under Linux and FreeBSD, the --interface option can be used to restrict polling to availability of a specific interface device -with a specific local IP address, but snooping is still possible if -(a) either host has a network device that can be opened in promiscuous -mode, or (b) the intervening network link can be tapped. +with a specific local or remote IP address, but snooping is still +possible if (a) either host has a network device that can be opened +in promiscuous mode, or (b) the intervening network link can be tapped. .PP Use of the %F or %T escapes in an mda option could open a security hole, because they pass text manipulable by an attacker to a shell diff --git a/fetchmailconf b/fetchmailconf index ba8b6e09..ef295ce6 100755 --- a/fetchmailconf +++ b/fetchmailconf @@ -4,7 +4,7 @@ # by Eric S. Raymond, . # Requires Python with Tkinter, and the following OS-dependent services: # posix, posixpath, socket -version = "1.32" +version = "1.33" from Tkinter import * from Dialog import * @@ -110,7 +110,7 @@ class Server: ('plugin', 'String'), ('plugout', 'String'), ('netsec', 'String'), - ('principal', 'String')), + ('principal', 'String')) def dump(self, folded): res = "" diff --git a/indexgen.sh b/indexgen.sh index 60f45df1..189ee6ef 100755 --- a/indexgen.sh +++ b/indexgen.sh @@ -2,8 +2,8 @@ # # indexgen.sh -- generate current version of fetchmail home page. # -goldvers="5.5.0" -goldname="5.5.0" +goldvers="5.6.0" +goldname="5.6.0" version=`sed -n addr = ((struct sockaddr_in *) (&request.ifr_addr))->sin_addr; - /* get the PPP destination IP address */ + /* get the PPP destination (remote) IP address */ + ifinfo->dstaddr.s_addr = 0; strcpy(request.ifr_name, ifname); if (ioctl(socket_fd, SIOCGIFDSTADDR, &request) >= 0) ifinfo->dstaddr = ((struct sockaddr_in *) @@ -665,10 +666,20 @@ int interface_approve(struct hostdata *hp, flag domonitor) hp->pollname, hp->interface); return(FALSE); } - /* check the IP address (range) */ - if ((ifinfo.addr.s_addr & - hp->interface_pair->interface_mask.s_addr) != - hp->interface_pair->interface_address.s_addr) { + /* check the IP addresses (range) */ + if (!( + /* check remote IP address */ + ((ifinfo.dstaddr.s_addr != 0) && + (ifinfo.dstaddr.s_addr & + hp->interface_pair->interface_mask.s_addr) == + hp->interface_pair->interface_address.s_addr) + || + /* check local IP address */ + ((ifinfo.addr.s_addr & + hp->interface_pair->interface_mask.s_addr) == + hp->interface_pair->interface_address.s_addr) + ) ) + { (void) report(stdout, _("skipping poll of %s, %s IP address excluded\n"), hp->pollname, hp->interface); -- cgit v1.2.3