From 9d055846f225bea4953822f40fab1d2f1a2e2d07 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 27 Oct 2004 03:15:42 +0000 Subject: r3278: - rewrote the client side rpc connection code to use lib/socket/ rather than doing everything itself. This greatly simplifies the code, although I really don't like the socket_recv() interface (it always allocates memory for you, which means an extra memcpy in this code) - fixed several bugs in the socket_ipv4.c code, in particular client side code used a non-blocking connect but didn't handle EINPROGRESS, so it had no chance of working. Also fixed the error codes, using map_nt_error_from_unix() - cleaned up and expanded map_nt_error_from_unix() - changed interpret_addr2() to not take a mem_ctx. It makes absolutely no sense to allocate a fixed size 4 byte structure like this. Dozens of places in the code were also using interpret_addr2() incorrectly (precisely because the allocation made no sense) (This used to be commit 7f2c771b0e0e98c5c9e5cf662592d64d34ff1205) --- source4/rpc_server/dcerpc_sock.c | 7 +++---- 1 file changed, 3 insertions(+), 4 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 bffa5cffd8..79d1f5a3bb 100644 --- a/source4/rpc_server/dcerpc_sock.c +++ b/source4/rpc_server/dcerpc_sock.c @@ -180,10 +180,9 @@ static void add_socket_rpc_tcp(struct server_service *service, add_socket_rpc_tcp_iface(service, model_ops, dce_ctx, e, ifip); } } else { - struct in_addr *ifip; - ifip = interpret_addr2(dce_ctx, lp_socket_address()); - add_socket_rpc_tcp_iface(service, model_ops, dce_ctx, e, ifip); - talloc_free(ifip); + struct in_addr ifip; + ifip = interpret_addr2(lp_socket_address()); + add_socket_rpc_tcp_iface(service, model_ops, dce_ctx, e, &ifip); } return; -- cgit