[Pkg-gnupg-commit] [libassuan] 375/437: Fix npth port file handle use.
Eric Dorland
eric at moszumanska.debian.org
Fri May 22 05:34:06 UTC 2015
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository libassuan.
commit cef55142f2552538714f8296479f58a63d14a239
Author: Marcus Brinkmann <marcus.brinkmann at ruhr-uni-bochum.de>
Date: Tue Jan 24 18:49:57 2012 +0100
Fix npth port file handle use.
* assuan.h.in (ASSUAN_SYSTEM_NPTH_IMPL): Use npth_unprotect and
npth_protect with actual assuan functions instead of npth wrappers.
* libassuan.def: Add __assuan_read, __assuan_write, __assuan_sendmsg,
__assuan_recvmsg, __assuan_waitpid exports.
* system-w32.c (__assuan_read, __assuan_write, __assuan_sendmsg,
__assuan_recvmsg, __assuan_waitpid): Make non-static.
---
src/assuan.h.in | 27 ++++++++++++++++++++-------
src/libassuan.def | 5 +++++
src/system-w32.c | 10 +++++-----
3 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/src/assuan.h.in b/src/assuan.h.in
index 2e43c81..69a6a9c 100644
--- a/src/assuan.h.in
+++ b/src/assuan.h.in
@@ -482,6 +482,11 @@ int __assuan_socketpair (assuan_context_t ctx, int _namespace, int style,
int protocol, assuan_fd_t filedes[2]);
int __assuan_socket (assuan_context_t ctx, int _namespace, int style, int protocol);
int __assuan_connect (assuan_context_t ctx, int sock, struct sockaddr *addr, socklen_t length);
+ssize_t __assuan_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size);
+ssize_t __assuan_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer, size_t size);
+int __assuan_recvmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg, int flags);
+int __assuan_sendmsg (assuan_context_t ctx, assuan_fd_t fd, const assuan_msghdr_t msg, int flags);
+pid_t __assuan_waitpid (assuan_context_t ctx, pid_t pid, int nowait, int *status, int options);
#define ASSUAN_SYSTEM_PTH_IMPL \
@@ -515,21 +520,29 @@ extern struct assuan_system_hooks _assuan_system_pth;
{ (void) ctx; npth_usleep (usec); } \
static ssize_t _assuan_npth_read (assuan_context_t ctx, assuan_fd_t fd, \
void *buffer, size_t size) \
- { (void) ctx; return npth_read (fd, buffer, size); } \
+ { ssize_t res; (void) ctx; npth_unprotect(); \
+ res = __assuan_read (ctx, fd, buffer, size); \
+ npth_protect(); return res; } \
static ssize_t _assuan_npth_write (assuan_context_t ctx, assuan_fd_t fd, \
const void *buffer, size_t size) \
- { (void) ctx; return npth_write (fd, buffer, size); } \
+ { ssize_t res; (void) ctx; npth_unprotect(); \
+ res = __assuan_write (ctx, fd, buffer, size); \
+ npth_protect(); return res; } \
static int _assuan_npth_recvmsg (assuan_context_t ctx, assuan_fd_t fd, \
assuan_msghdr_t msg, int flags) \
- { (void) ctx; return npth_recvmsg (fd, msg, flags); } \
+ { int res; (void) ctx; npth_unprotect(); \
+ res = __assuan_recvmsg (ctx, fd, msg, flags); \
+ npth_protect(); return res; } \
static int _assuan_npth_sendmsg (assuan_context_t ctx, assuan_fd_t fd, \
const assuan_msghdr_t msg, int flags) \
- { (void) ctx; return npth_sendmsg (fd, msg, flags); } \
+ { int res; (void) ctx; npth_unprotect(); \
+ res = __assuan_sendmsg (ctx, fd, msg, flags); \
+ npth_protect(); return res; } \
static pid_t _assuan_npth_waitpid (assuan_context_t ctx, pid_t pid, \
int nowait, int *status, int options) \
- { (void) ctx; \
- if (!nowait) return npth_waitpid (pid, status, options); \
- else return 0; } \
+ { pid_t res; (void) ctx; npth_unprotect(); \
+ res = __assuan_waitpid (ctx, pid, nowait, status, options); \
+ npth_protect(); return res; } \
\
struct assuan_system_hooks _assuan_system_npth = \
{ ASSUAN_SYSTEM_HOOKS_VERSION, _assuan_npth_usleep, __assuan_pipe, \
diff --git a/src/libassuan.def b/src/libassuan.def
index 9287486..b634b1c 100644
--- a/src/libassuan.def
+++ b/src/libassuan.def
@@ -105,6 +105,11 @@ EXPORTS
__assuan_connect @84
assuan_register_pre_cmd_notify @85
assuan_socket_connect_fd @86
+ __assuan_read @87
+ __assuan_write @88
+ __assuan_recvmsg @89
+ __assuan_sendmsg @90
+ __assuan_waitpid @91
; END
diff --git a/src/system-w32.c b/src/system-w32.c
index 9753f71..c6ced5e 100644
--- a/src/system-w32.c
+++ b/src/system-w32.c
@@ -190,7 +190,7 @@ is_socket (HANDLE hd)
}
-static ssize_t
+ssize_t
__assuan_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
{
int res;
@@ -239,7 +239,7 @@ __assuan_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
-static ssize_t
+ssize_t
__assuan_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer,
size_t size)
{
@@ -292,7 +292,7 @@ __assuan_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer,
-static int
+int
__assuan_recvmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg,
int flags)
{
@@ -303,7 +303,7 @@ __assuan_recvmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg,
-static int
+int
__assuan_sendmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg,
int flags)
{
@@ -496,7 +496,7 @@ __assuan_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name,
/* FIXME: Add some sort of waitpid function that covers GPGME and
gpg-agent's use of assuan. */
-static pid_t
+pid_t
__assuan_waitpid (assuan_context_t ctx, pid_t pid, int nowait,
int *status, int options)
{
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git
More information about the Pkg-gnupg-commit
mailing list