diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-01-19 03:20:20 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:08:59 -0500 |
commit | 8783aa8ea57c3a6989e0722d5184e98d543352d4 (patch) | |
tree | 93df839740cf04b88ec6ff9f81fcde5c99e77951 /source4/lib/socket/socket.h | |
parent | 6c310003d21fe832da46bbfeb078f716d87be04f (diff) | |
download | samba-8783aa8ea57c3a6989e0722d5184e98d543352d4.tar.gz samba-8783aa8ea57c3a6989e0722d5184e98d543352d4.tar.bz2 samba-8783aa8ea57c3a6989e0722d5184e98d543352d4.zip |
r4831: added udp support to our generic sockets library.
I decided to incorporate the udp support into the socket_ipv4.c
backend (and later in socket_ipv6.c) rather than doing a separate
backend, as so much of the code is shareable. Basically this adds a
socket_sendto() and a socket_recvfrom() call and not much all.
For udp servers, I decided to keep the call as socket_listen(), even
though dgram servers don't actually call listen(). This keeps the API
consistent.
I also added a simple local sockets testsuite in smbtorture,
LOCAL-SOCKET
(This used to be commit 9f12a45a05c5c447fb4ec18c8dd28f70e90e32a5)
Diffstat (limited to 'source4/lib/socket/socket.h')
-rw-r--r-- | source4/lib/socket/socket.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/source4/lib/socket/socket.h b/source4/lib/socket/socket.h index 7dd8c0ae17..162a05cb40 100644 --- a/source4/lib/socket/socket.h +++ b/source4/lib/socket/socket.h @@ -24,12 +24,12 @@ struct socket_context; enum socket_type { - SOCKET_TYPE_STREAM + SOCKET_TYPE_STREAM, + SOCKET_TYPE_DGRAM }; struct socket_ops { const char *name; - enum socket_type type; NTSTATUS (*fn_init)(struct socket_context *sock); @@ -50,9 +50,16 @@ struct socket_ops { /* general ops */ NTSTATUS (*fn_recv)(struct socket_context *sock, void *buf, - size_t wantlen, size_t *nread, uint32_t flags); + size_t wantlen, size_t *nread, uint32_t flags); NTSTATUS (*fn_send)(struct socket_context *sock, - const DATA_BLOB *blob, size_t *sendlen, uint32_t flags); + const DATA_BLOB *blob, size_t *sendlen, uint32_t flags); + + NTSTATUS (*fn_sendto)(struct socket_context *sock, + const DATA_BLOB *blob, size_t *sendlen, uint32_t flags, + const char *dest_addr, int dest_port); + NTSTATUS (*fn_recvfrom)(struct socket_context *sock, + void *buf, size_t wantlen, size_t *nread, uint32_t flags, + const char **src_addr, int *src_port); void (*fn_close)(struct socket_context *sock); |