diff options
-rw-r--r-- | COPYING | 4 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | ipv6-connect.c | 135 | ||||
-rw-r--r-- | socket.c | 8 |
5 files changed, 1 insertions, 150 deletions
@@ -8,10 +8,6 @@ fetchmail. The relevant files are smb*.[ch] and ntlm.h. The following files are public-domain: acconfig.h, md5c.c, md5.h. -The following file is under a variant of the InnerNet Version 2 license -(with the advertising clause removed for GPL compatibility) supplied -by its author, Craig Metz: ipv6_connect.c. - The following files are explicitly GPL-licensed: getopt1.c, getopt.c, getopt.h. The file m4-local/ac_ma_search_package.m4 is copyright by Caolan diff --git a/Makefile.am b/Makefile.am index f960dc72..64587c70 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,7 +48,7 @@ fetchmail_SOURCES= fetchmail.h getopt.h \ uid.c mxget.c md5ify.c cram.c kerberos.c gssapi.c \ opie.c rpa.c interface.c netrc.c \ unmime.c conf.c checkalias.c smbdes.c smbencrypt.c \ - smbmd4.c smbutil.c ipv6-connect.c lock.c \ + smbmd4.c smbutil.c lock.c \ rcfile_l.l rcfile_y.y ucs/norm_charmap.c check_PROGRAMS += rfc822 unmime netrc rfc2047e diff --git a/configure.ac b/configure.ac index dea23245..74736db5 100644 --- a/configure.ac +++ b/configure.ac @@ -353,8 +353,6 @@ AC_ARG_ENABLE(inet6, [with_inet6=no]) test "$with_inet6" = "yes" && AC_DEFINE(INET6_ENABLE,1,Define if you want IPv6 support compiled in) -AC_CHECK_FUNCS(inner_connect) - # This version of the Kerberos 4 and 5 options addresses the follwing issues: # # * Build correctly under Heimdal kerberos if it is compiled with db2 and diff --git a/ipv6-connect.c b/ipv6-connect.c deleted file mode 100644 index ce9866e8..00000000 --- a/ipv6-connect.c +++ /dev/null @@ -1,135 +0,0 @@ -/* -%%% copyright-cmetz-97 - - The author(s) grant permission for redistribution and use in source and -binary forms, with or without modification, of the software and documentation -provided that the following conditions are met: - -1. All terms of the all other applicable copyrights and licenses must be - followed. -2. Redistributions of source code must retain the authors' copyright - notice(s), this list of conditions, and the following disclaimer. -3. Redistributions in binary form must reproduce the authors' copyright - notice(s), this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. -4. Neither the name(s) of the author(s) nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "config.h" -#ifdef INET6_ENABLE -#include <sys/types.h> -#include <stdio.h> -#ifdef HAVE_NET_SOCKET_H -#include <net/socket.h> -#else -#include <sys/socket.h> -#endif -#include <netinet/in.h> -#include <errno.h> -#include <netdb.h> -#include <signal.h> -#include <string.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -/* This patch, supplying SA_LEN if it's undefined, is from Red Hat */ -#ifndef SA_LEN -#define SA_LEN(sa) sa_len(sa) - -static size_t sa_len(struct sockaddr *sa) -{ - switch(sa->sa_family) { -#if defined(AF_INET) - case AF_INET: - return sizeof(struct sockaddr_in); -#endif -#if defined(AF_INET6) && defined(INET6_ENABLE) - case AF_INET6: - return sizeof(struct sockaddr_in6); -#endif - default: - return sizeof(struct sockaddr); - } -} -#endif /* SA_LEN */ - -static int default_trying_callback(struct sockaddr *sa) -{ - char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV]; - - if (getnameinfo(sa, SA_LEN(sa), hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV)) { - fprintf(stderr, "inner_getstream: getnameinfo failed\n"); - return -1; - }; - - fprintf(stderr, "Trying %s.%s...\n", hbuf, sbuf); - return 0; -}; - -static int default_error_callback(char *myname, char *message) -{ - fprintf(stderr, "%s: %s\n", myname, message); - return 0; -}; - -int inner_connect(struct addrinfo *ai, void *request, int requestlen, int (*trying_callback)(struct sockaddr *sa), int (*error_callback)(char *myname, char *message), char *myname, struct addrinfo **pai) -{ - int fd; - char errorbuf[128]; - - if (!trying_callback) - trying_callback = default_trying_callback; - - if (!error_callback) - error_callback = default_error_callback; - - for (; ai; ai = ai->ai_next) { - if (trying_callback(ai->ai_addr)) - continue; - - if ((fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) < 0) { - snprintf(errorbuf, sizeof(errorbuf), "socket: %s(%d)", - strerror(errno), errno); - error_callback(myname, errorbuf); - continue; - }; - - if (connect(fd, ai->ai_addr, ai->ai_addrlen) < 0) { - snprintf(errorbuf, sizeof(errorbuf), "connect: %s(%d)", - strerror(errno), errno); - error_callback(myname, errorbuf); - close(fd); /* just after a connect; no reads or writes yet */ - continue; - } - break; - }; - - if (ai) { - if (pai) - *pai = ai; - } else { - snprintf(errorbuf, sizeof(errorbuf), "no connections result"); - error_callback(myname, errorbuf); - fd = -1; - }; - - return fd; -}; - -#endif /* INET6_ENABLE */ @@ -281,12 +281,6 @@ int SockOpen(const char *host, const char *service, return -1; } -#ifdef HAVE_INNER_CONNECT - i = inner_connect(ai0, NULL, 0, NULL, NULL, "fetchmail", NULL); - if (i >= 0) - break; -#else - i = -1; for (ai = ai0; ai; ai = ai->ai_next) { i = socket(ai->ai_family, ai->ai_socktype, 0); @@ -310,8 +304,6 @@ int SockOpen(const char *host, const char *service, break; } -#endif - freeaddrinfo(ai0); return i; |