diff options
Diffstat (limited to 'Src/Modules/tcp.h')
-rw-r--r-- | Src/Modules/tcp.h | 67 |
1 files changed, 67 insertions, 0 deletions
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 <sys/types.h> +#include <sys/socket.h> +#include <netdb.h> + +/* 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 |