Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 Mar 2000 21:06:13 +0900
From:      Yoshinobu Inoue <shin@nd.net.fujitsu.co.jp>
To:        mzaki@e-mail.ne.jp
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: IPv6 trouble
Message-ID:  <20000302210613S.shin@nd.net.fujitsu.co.jp>
In-Reply-To: <86og8xehys.wl@tkc.att.ne.jp>
References:  <86og8xehys.wl@tkc.att.ne.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
> I suspect,
> 
> * fetchmail inquire "localhost" to resolver
> * resolver returns "::1" because there is the entry in /etc/hosts
> * fetchmail try to connect port 25 on "::1"
> * sendmail listen on only port 25 of inet4, not of inet6
> * trial failes, and fetchmail giving up
> 
> Then, I commented out "::1" from /etc/hosts, works fine.
> 
> 
> By the way, WHO is responsible for this?
> fetchmail? resolver? my setting?

It seems to be fetchmail bug. It should try IPv4 if IPv6
access is failed.

Could you please copy this patches as your
ports/mail/fetchmail/patches/patch-ak file, and rebuild
fetchmail, and try again?

Sorry for your problem.
Yoshinobu Inoue


*** socket.c~	Tue Feb  8 08:44:01 2000
--- socket.c	Thu Mar  2 21:00:00 2000
***************
*** 126,131 ****
--- 126,133 ----
  #if NET_SECURITY
      void *request = NULL;
      int requestlen;
+ #else /* NET_SECURITY */
+     struct addrinfo *ai0;
  #endif /* NET_SECURITY */
  
  #ifdef HAVE_SOCKETPAIR
***************
*** 156,171 ****
  #ifdef HAVE_INNER_CONNECT
      i = inner_connect(ai, NULL, 0, NULL, NULL, "fetchmail", NULL);
  #else
      i = socket(ai->ai_family, ai->ai_socktype, 0);
!     if (i < 0) {
! 	freeaddrinfo(ai);
! 	return -1;
!     }
      if (connect(i, (struct sockaddr *) ai->ai_addr, ai->ai_addrlen) < 0) {
- 	freeaddrinfo(ai);
  	close(i);	/* don't use SockClose, no traffic yet */
! 	return -1;
      }
  #endif
  #endif /* NET_SECURITY */
  
--- 158,174 ----
  #ifdef HAVE_INNER_CONNECT
      i = inner_connect(ai, NULL, 0, NULL, NULL, "fetchmail", NULL);
  #else
+     for (ai0 = ai; ai != NULL; ai = ai->ai_next)
+   {
      i = socket(ai->ai_family, ai->ai_socktype, 0);
!     if (i < 0)
! 	continue;
      if (connect(i, (struct sockaddr *) ai->ai_addr, ai->ai_addrlen) < 0) {
  	close(i);	/* don't use SockClose, no traffic yet */
! 	continue;
      }
+   }
+     ai = ai0;
  #endif
  #endif /* NET_SECURITY */
  


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000302210613S.shin>