aboutsummaryrefslogtreecommitdiffstats
path: root/ipv6-connect.c
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2005-08-01 22:09:23 +0000
committerMatthias Andree <matthias.andree@gmx.de>2005-08-01 22:09:23 +0000
commit80839c4a90693dd4f46217ac7c88ed5b3313f276 (patch)
treed5b08def1f0f2d75feb7b79f1cde1ac4e9b35a4d /ipv6-connect.c
parentee13b0e37bf5eb003bfae44721fb5f01e6ac5ddc (diff)
downloadfetchmail-80839c4a90693dd4f46217ac7c88ed5b3313f276.tar.gz
fetchmail-80839c4a90693dd4f46217ac7c88ed5b3313f276.tar.bz2
fetchmail-80839c4a90693dd4f46217ac7c88ed5b3313f276.zip
Cleanup: Drop inner_connect and ipv6-connect.c.
svn path=/trunk/; revision=4214
Diffstat (limited to 'ipv6-connect.c')
-rw-r--r--ipv6-connect.c135
1 files changed, 0 insertions, 135 deletions
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 */