summaryrefslogtreecommitdiff
path: root/src/assuan-defs.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-07-12 10:06:26 +0000
committerWerner Koch <wk@gnupg.org>2007-07-12 10:06:26 +0000
commit35fedf1acdf8aabea7a897dad06672cce10b6a3d (patch)
tree899f9afec6ecbd4eb8fb20b8669448730cac2b7c /src/assuan-defs.h
parent12d756396fb2fd7232b7650ebaa41de7da303546 (diff)
downloadlibassuan-35fedf1acdf8aabea7a897dad06672cce10b6a3d.tar.gz
Introduced new type for better support of W32 HADNLES vs. file descriptors.
Diffstat (limited to 'src/assuan-defs.h')
-rw-r--r--src/assuan-defs.h37
1 files changed, 24 insertions, 13 deletions
diff --git a/src/assuan-defs.h b/src/assuan-defs.h
index b1d9f3e..d1037c8 100644
--- a/src/assuan-defs.h
+++ b/src/assuan-defs.h
@@ -80,9 +80,9 @@ struct assuan_io
/* Routine to write to output_fd. */
ssize_t (*writefnc) (assuan_context_t, const void *, size_t);
/* Send a file descriptor. */
- assuan_error_t (*sendfd) (assuan_context_t, int);
+ assuan_error_t (*sendfd) (assuan_context_t, assuan_fd_t);
/* Receive a file descriptor. */
- assuan_error_t (*receivefd) (assuan_context_t, int *);
+ assuan_error_t (*receivefd) (assuan_context_t, assuan_fd_t *);
};
@@ -111,7 +111,7 @@ struct assuan_context_s
FILE *log_fp;
struct {
- int fd;
+ assuan_fd_t fd;
int eof;
char line[LINELENGTH];
int linelen; /* w/o CR, LF - might not be the same as
@@ -125,7 +125,7 @@ struct assuan_context_s
} inbound;
struct {
- int fd;
+ assuan_fd_t fd;
struct {
FILE *fp;
char line[LINELENGTH];
@@ -137,8 +137,9 @@ struct assuan_context_s
int pipe_mode; /* We are in pipe mode, i.e. we can handle just one
connection and must terminate then. */
pid_t pid; /* The pid of the peer. */
- int listen_fd; /* The fd we are listening on (used by socket servers) */
- int connected_fd; /* helper */
+ assuan_fd_t listen_fd; /* The fd we are listening on (used by
+ socket servers) */
+ assuan_fd_t connected_fd; /* helper */
struct {
int valid; /* Whether this structure has valid information. */
@@ -162,7 +163,7 @@ struct assuan_context_s
int bufferoffset; /* Offset of start of buffer. */
int buffersize; /* Bytes buffered. */
- int pendingfds[5]; /* Array to save received descriptors. */
+ assuan_fd_t pendingfds[5]; /* Array to save received descriptors. */
int pendingfdscount; /* Number of received descriptors. */
} uds;
@@ -195,8 +196,8 @@ struct assuan_context_s
const char *line,
size_t linelen);
- int input_fd; /* set by INPUT command */
- int output_fd; /* set by OUTPUT command */
+ assuan_fd_t input_fd; /* Set by the INPUT command. */
+ assuan_fd_t output_fd; /* Set by the OUTPUT command. */
/* io routines. */
struct assuan_io *io;
@@ -293,10 +294,11 @@ ssize_t _assuan_simple_recvmsg (assuan_context_t ctx, struct msghdr *msg);
#endif
/*-- assuan-socket.c --*/
-int _assuan_close (int fd);
-int _assuan_sock_new (int domain, int type, int proto);
-int _assuan_sock_bind (int sockfd, struct sockaddr *addr, int addrlen);
-int _assuan_sock_connect (int sockfd, struct sockaddr *addr, int addrlen);
+int _assuan_close (assuan_fd_t fd);
+assuan_fd_t _assuan_sock_new (int domain, int type, int proto);
+int _assuan_sock_bind (assuan_fd_t sockfd, struct sockaddr *addr, int addrlen);
+int _assuan_sock_connect (assuan_fd_t sockfd,
+ struct sockaddr *addr, int addrlen);
#ifdef HAVE_FOPENCOOKIE
/* We have to implement funopen in terms of glibc's fopencookie. */
@@ -329,4 +331,13 @@ int putc_unlocked (int c, FILE *stream);
#define DIMof(type,member) DIM(((type *)0)->member)
+#if HAVE_W32_SYSTEM
+#define SOCKET2HANDLE(s) ((void *)(s))
+#define HANDLE2SOCKET(h) ((unsigned int)(h))
+#else
+#define SOCKET2HANDLE(s) (s)
+#define HANDLE2SOCKET(h) (h)
+#endif
+
+
#endif /*ASSUAN_DEFS_H*/