diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/assuan-socket.c | 65 | ||||
-rw-r--r-- | src/assuan.h.in | 2 | ||||
-rw-r--r-- | src/libassuan.def | 2 | ||||
-rw-r--r-- | src/libassuan.vers | 2 |
4 files changed, 63 insertions, 8 deletions
diff --git a/src/assuan-socket.c b/src/assuan-socket.c index ed6a488..7bca0ae 100644 --- a/src/assuan-socket.c +++ b/src/assuan-socket.c @@ -1,5 +1,6 @@ -/* assuan-socket.c +/* assuan-socket.c - Socket wrapper Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. + Copyright (C) 2001-2015 g10 Code GmbH This file is part of Assuan. @@ -78,6 +79,13 @@ + strlen ((ptr)->sun_path)) #endif +/* In the future, we can allow access to sock_ctx, if that context's + hook functions need to be overridden. There can only be one global + assuan_sock_* user (one library or one application) with this + convenience interface, if non-standard hook functions are + needed. */ +static assuan_context_t sock_ctx; + #ifdef HAVE_W32_SYSTEM @@ -375,6 +383,42 @@ _assuan_sock_new (assuan_context_t ctx, int domain, int type, int proto) int +_assuan_sock_set_flag (assuan_context_t ctx, assuan_fd_t sockfd, + const char *name, int value) +{ + if (0) + { + } + else + { + gpg_err_set_errno (EINVAL); + return -1; + } + + return 0; +} + + +int +_assuan_sock_get_flag (assuan_context_t ctx, assuan_fd_t sockfd, + const char *name, int *r_value) +{ + (void)ctx; + + if (0) + { + } + else + { + gpg_err_set_errno (EINVAL); + return -1; + } + + return 0; +} + + +int _assuan_sock_connect (assuan_context_t ctx, assuan_fd_t sockfd, struct sockaddr *addr, int addrlen) { @@ -695,13 +739,6 @@ _assuan_sock_check_nonce (assuan_context_t ctx, assuan_fd_t fd, /* Public API. */ -/* In the future, we can allow access to sock_ctx, if that context's - hook functions need to be overridden. There can only be one global - assuan_sock_* user (one library or one application) with this - convenience interface, if non-standard hook functions are - needed. */ -static assuan_context_t sock_ctx; - gpg_error_t assuan_sock_init () { @@ -752,6 +789,18 @@ assuan_sock_new (int domain, int type, int proto) } int +assuan_sock_set_flag (assuan_fd_t sockfd, const char *name, int value) +{ + return _assuan_sock_set_flag (sock_ctx, sockfd, name, value); +} + +int +assuan_sock_get_flag (assuan_fd_t sockfd, const char *name, int *r_value) +{ + return _assuan_sock_get_flag (sock_ctx, sockfd, name, r_value); +} + +int assuan_sock_connect (assuan_fd_t sockfd, struct sockaddr *addr, int addrlen) { return _assuan_sock_connect (sock_ctx, sockfd, addr, addrlen); diff --git a/src/assuan.h.in b/src/assuan.h.in index f53c26e..14255ea 100644 --- a/src/assuan.h.in +++ b/src/assuan.h.in @@ -467,6 +467,8 @@ gpg_error_t assuan_sock_init (void); void assuan_sock_deinit (void); int assuan_sock_close (assuan_fd_t fd); assuan_fd_t assuan_sock_new (int domain, int type, int proto); +int assuan_sock_set_flag (assuan_fd_t sockfd, const char *name, int value); +int assuan_sock_get_flag (assuan_fd_t sockfd, const char *name, int *r_value); int assuan_sock_connect (assuan_fd_t sockfd, struct sockaddr *addr, int addrlen); int assuan_sock_bind (assuan_fd_t sockfd, struct sockaddr *addr, int addrlen); diff --git a/src/libassuan.def b/src/libassuan.def index d9997e3..9f31c31 100644 --- a/src/libassuan.def +++ b/src/libassuan.def @@ -112,6 +112,8 @@ EXPORTS __assuan_waitpid @91 assuan_check_version @92 assuan_sock_set_sockaddr_un @93 + assuan_sock_set_flag @94 + assuan_sock_get_flag @95 ; END diff --git a/src/libassuan.vers b/src/libassuan.vers index e36c322..2b2389d 100644 --- a/src/libassuan.vers +++ b/src/libassuan.vers @@ -102,6 +102,8 @@ LIBASSUAN_1.0 { assuan_socket_connect_fd; assuan_check_version; assuan_sock_set_sockaddr_un; + assuan_sock_set_flag; + assuan_sock_get_flag; __assuan_close; __assuan_pipe; |