From 4061ac57ca84a1e0ed779096897a160d49b50c03 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 26 Oct 2015 14:35:41 +0100 Subject: Support hostname based SOCKS5 connection. * src/assuan.h.in (ASSUAN_SOCK_SOCKS): New. (ASSUAN_SOCK_TOR): New. (assuan_sock_connect_byname): New. * src/libassuan.def, src/libassuan.vers: Add that function. * src/assuan-socket.c (socks5_connect): Add args socksport, credentials, hostname, and hostport. Implement user/password authentication and domainname address type. Change callers accordingly. (_assuan_sock_connect_byname): New. (assuan_sock_connect_byname): New. * tests/socks5.c (main): Add options --byname, --user, and --pass. -- The assuan_sock_connect_byname may eventually be extended to work without Tor or SOCKS by using getaddrinfo. Or we move that all to libgpgrt (aka libgpg-error). Signed-off-by: Werner Koch --- doc/assuan.texi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc') diff --git a/doc/assuan.texi b/doc/assuan.texi index 9161f0b..8445eb4 100644 --- a/doc/assuan.texi +++ b/doc/assuan.texi @@ -1979,6 +1979,22 @@ details on the redirection file format. @end deftypefun +@deftypefun int assuan_sock_connect_byname (@w{const char * @var{host}}, @ + @w{unsigned short @var{port}}, @ + @w{int @var{reserved}}, @ + @w{const char *@var{credentials}}, @ + @w{unsigned int @var{flags}}) + +Directly connect to @var{port} on @var{host} given as a name. The +current implementation requires that @var{flags} has either +@code{ASSUAN_SOCK_SOCKS} or @code{ASSUAN_SOCK_TOR} set. On success a +new TCP STREAM socket is returned; on error @code{ASSUAN_INVALID_FD} +and ERRNO set. If @var{credentials} is not @code{NULL}, it is a +string used for password based SOCKS authentication. Username and +password are separated by a colon. @var{reserved} should be 0. +@end deftypefun + + @deftypefun int assuan_sock_bind ( @ @w{assuan_fd_t @var{sockfd}}, @ @w{struct sockaddr *@var{addr}}, @ -- cgit v1.2.3