From 8a300c9248cc956d2aaed59e89efc2535a9f60f5 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 30 Jun 2005 17:10:03 +0000 Subject: 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) --- source4/rpc_server/dcerpc_sock.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'source4/rpc_server/dcerpc_sock.c') 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) -- cgit