summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc/dcerpc_sock.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/rpc/dcerpc_sock.c')
-rw-r--r--source4/librpc/rpc/dcerpc_sock.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c
index 0385a70d3c..05c66cd796 100644
--- a/source4/librpc/rpc/dcerpc_sock.c
+++ b/source4/librpc/rpc/dcerpc_sock.c
@@ -187,7 +187,16 @@ static NTSTATUS sock_shutdown_pipe(struct dcerpc_connection *p)
*/
static const char *sock_peer_name(struct dcerpc_connection *p)
{
- struct sock_private *sock = p->transport.private;
+ struct sock_private *sock = talloc_get_type(p->transport.private, struct sock_private);
+ return sock->server_name;
+}
+
+/*
+ return remote name we make the actual connection (good for kerberos)
+*/
+static const char *sock_target_hostname(struct dcerpc_connection *p)
+{
+ struct sock_private *sock = talloc_get_type(p->transport.private, struct sock_private);
return sock->server_name;
}
@@ -226,15 +235,16 @@ static void continue_socket_connect(struct composite_context *ctx)
/*
fill in the transport methods
*/
- conn->transport.transport = s->transport;
- conn->transport.private = NULL;
+ conn->transport.transport = s->transport;
+ conn->transport.private = NULL;
- conn->transport.send_request = sock_send_request;
- conn->transport.send_read = sock_send_read;
- conn->transport.recv_data = NULL;
+ conn->transport.send_request = sock_send_request;
+ conn->transport.send_read = sock_send_read;
+ conn->transport.recv_data = NULL;
- conn->transport.shutdown_pipe = sock_shutdown_pipe;
- conn->transport.peer_name = sock_peer_name;
+ conn->transport.shutdown_pipe = sock_shutdown_pipe;
+ conn->transport.peer_name = sock_peer_name;
+ conn->transport.target_hostname = sock_target_hostname;
sock->sock = s->socket_ctx;
sock->pending_reads = 0;