From 2910bd9ff28435dd2cff9532d8161d90304760c9 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Sun, 27 Oct 2013 21:53:15 +0100 Subject: s4:rootdse/netlogon: Pass client ip address This patch may be squashed into "s4:dsdb/rootdse: Support netlogon request". --- source4/dsdb/samdb/ldb_modules/rootdse.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source4/dsdb') diff --git a/source4/dsdb/samdb/ldb_modules/rootdse.c b/source4/dsdb/samdb/ldb_modules/rootdse.c index 6dbd9a072f..bdb5d92603 100644 --- a/source4/dsdb/samdb/ldb_modules/rootdse.c +++ b/source4/dsdb/samdb/ldb_modules/rootdse.c @@ -34,6 +34,7 @@ #include "param/param.h" #include "lib/messaging/irpc.h" #include "librpc/gen_ndr/ndr_irpc_c.h" +#include "lib/tsocket/tsocket.h" #include "cldap_server/cldap_server.h" struct private_data { @@ -750,8 +751,10 @@ static int rootdse_handle_netlogon(struct rootdse_context *ac) struct ldb_context *ldb; struct ldb_parse_tree *tree; struct loadparm_context *lp_ctx; + struct tsocket_address *src_addr; TALLOC_CTX *tmp_ctx = talloc_new(ac->req); const char *domain, *host, *user, *domain_guid; + char *src_addr_s; struct dom_sid *domain_sid; int acct_control = -1; int version = -1; @@ -765,6 +768,9 @@ static int rootdse_handle_netlogon(struct rootdse_context *ac) tree = ac->req->op.search.tree; lp_ctx = talloc_get_type(ldb_get_opaque(ldb, "loadparm"), struct loadparm_context); + src_addr = talloc_get_type(ldb_get_opaque(ldb, "remoteAddress"), + struct tsocket_address); + src_addr_s = tsocket_address_inet_addr_string(src_addr, tmp_ctx); status = parse_netlogon_request(tree, lp_ctx, tmp_ctx, &domain, &host, &user, &domain_guid, @@ -777,7 +783,7 @@ static int rootdse_handle_netlogon(struct rootdse_context *ac) domain, NULL, domain_sid, domain_guid, user, acct_control, - NULL, /* FIXME: How to retrieve client ip addr here? */ + src_addr_s, version, lp_ctx, &netlogon, false); if (!NT_STATUS_IS_OK(status)) { -- cgit