diff options
author | Stefan Metzmacher <metze@samba.org> | 2005-06-30 17:10:03 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:19:00 -0500 |
commit | 8a300c9248cc956d2aaed59e89efc2535a9f60f5 (patch) | |
tree | 97d180180386b35f3fbdd788359542fe44002da2 /source4/rpc_server/dcerpc_sock.c | |
parent | 7a4496f606ab3d6594489eeee89ed2140b8c7655 (diff) | |
download | samba-8a300c9248cc956d2aaed59e89efc2535a9f60f5.tar.gz samba-8a300c9248cc956d2aaed59e89efc2535a9f60f5.tar.bz2 samba-8a300c9248cc956d2aaed59e89efc2535a9f60f5.zip |
r8021: we only need to return STATUS_BUFFER_OVERFLOW for the ipc_trans replies
and not for the ipc_read() replies as here the client explicit says how much data it wants
the write_fn() in dcesrv_output() now returns NTSTATUS
and the ipc specific implementations are moved to the ntvfs_ipc module
metze
(This used to be commit fe483dcd874b7243d61e9623840c672b4ea06b2c)
Diffstat (limited to 'source4/rpc_server/dcerpc_sock.c')
-rw-r--r-- | source4/rpc_server/dcerpc_sock.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/source4/rpc_server/dcerpc_sock.c b/source4/rpc_server/dcerpc_sock.c index 317655cfcf..5bba948c08 100644 --- a/source4/rpc_server/dcerpc_sock.c +++ b/source4/rpc_server/dcerpc_sock.c @@ -38,18 +38,17 @@ struct dcesrv_socket_context { /* write_fn callback for dcesrv_output() */ -static ssize_t dcerpc_write_fn(void *private, DATA_BLOB *out) +static NTSTATUS dcerpc_write_fn(void *private_data, DATA_BLOB *out, size_t *nwritten) { NTSTATUS status; - struct socket_context *sock = private; + struct socket_context *sock = talloc_get_type(private_data, struct socket_context); size_t sendlen; status = socket_send(sock, out, &sendlen, 0); - if (NT_STATUS_IS_ERR(status)) { - return -1; - } + NT_STATUS_IS_ERR_RETURN(status); - return sendlen; + *nwritten = sendlen; + return status; } static void dcesrv_terminate_connection(struct dcesrv_connection *dce_conn, const char *reason) |