From ba81d7045344613a98f9e25ed98cf5b4d1e6a2bf Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Wed, 6 Jun 2001 18:53:56 +0000 Subject: 14770: tcp module from zftp --- Src/Modules/tcp.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Src/Modules/tcp.h (limited to 'Src/Modules/tcp.h') diff --git a/Src/Modules/tcp.h b/Src/Modules/tcp.h new file mode 100644 index 000000000..edb2119ad --- /dev/null +++ b/Src/Modules/tcp.h @@ -0,0 +1,67 @@ +/* + * tcp.h - builtin FTP client + * + * This file is part of zsh, the Z shell. + * + * Copyright (c) 1998-2001 Peter Stephenson + * All rights reserved. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and to distribute modified versions of this software for any + * purpose, provided that the above copyright notice and the following + * two paragraphs appear in all copies of this software. + * + * In no event shall Peter Stephenson or the Zsh Development + * Group be liable to any party for direct, indirect, special, incidental, + * or consequential damages arising out of the use of this software and + * its documentation, even if Peter Stephenson, and the Zsh + * Development Group have been advised of the possibility of such damage. + * + * Peter Stephenson and the Zsh Development Group specifically + * disclaim any warranties, including, but not limited to, the implied + * warranties of merchantability and fitness for a particular purpose. The + * software provided hereunder is on an "as is" basis, and Peter Stephenson + * and the Zsh Development Group have no obligation to provide maintenance, + * support, updates, enhancements, or modifications. + * + */ + +#include "../../config.h" +#include +#include +#include + +/* Is IPv6 supported by the library? */ + +#if defined(AF_INET6) && defined(IN6ADDR_LOOPBACK_INIT) \ + && defined(HAVE_INET_NTOP) && defined(HAVE_INET_PTON) +# define SUPPORT_IPV6 1 +#endif + +union tcp_sockaddr { + struct sockaddr a; + struct sockaddr_in in; +#ifdef SUPPORT_IPV6 + struct sockaddr_in6 in6; +#endif +}; + +struct tcp_session { + int fd; /* file descriptor */ + union tcp_sockaddr sock; /* local address */ + union tcp_sockaddr peer; /* remote address */ +}; + +typedef struct tcp_session *Tcp_session; + +#include "tcp.mdh" +#include "tcp.pro" + +#ifndef INET_ADDRSTRLEN +# define INET_ADDRSTRLEN 16 +#endif + +#ifndef INET6_ADDRSTRLEN +# define INET6_ADDRSTRLEN 46 +#endif -- cgit v1.2.3