diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-02-04 09:59:54 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2014-02-13 11:54:16 +0100 |
commit | 776f5c65bf6123d4f6909724436c48fe900866f0 (patch) | |
tree | 048bdde6960364489b56f544c84d5638136db117 /source4/libnet | |
parent | ab5f89bc72e4d42fd12572e267f8c236705646fb (diff) | |
download | samba-776f5c65bf6123d4f6909724436c48fe900866f0.tar.gz samba-776f5c65bf6123d4f6909724436c48fe900866f0.tar.xz samba-776f5c65bf6123d4f6909724436c48fe900866f0.zip |
s4:libnet: use helper functions to access dcerpc_binding->target_hostname
If possible also specify the already known address as dcerpc_binding->host.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Diffstat (limited to 'source4/libnet')
-rw-r--r-- | source4/libnet/libnet_become_dc.c | 7 | ||||
-rw-r--r-- | source4/libnet/libnet_join.c | 2 | ||||
-rw-r--r-- | source4/libnet/libnet_rpc.c | 10 | ||||
-rw-r--r-- | source4/libnet/libnet_unbecome_dc.c | 4 |
4 files changed, 10 insertions, 13 deletions
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c index 9422172f69..6d00fcc37b 100644 --- a/source4/libnet/libnet_become_dc.c +++ b/source4/libnet/libnet_become_dc.c @@ -1573,9 +1573,10 @@ static void becomeDC_drsuapi_connect_send(struct libnet_BecomeDC_state *s, { print_str = "print,"; } - binding_str = talloc_asprintf(s, "ncacn_ip_tcp:%s[%s%sseal]", - s->source_dsa.dns_name, - krb5_str, print_str); + binding_str = talloc_asprintf(s, "ncacn_ip_tcp:%s[%s%sseal,target_hostname=%s]", + s->source_dsa.address, + krb5_str, print_str, + s->source_dsa.dns_name); if (composite_nomem(binding_str, c)) return; c->status = dcerpc_parse_binding(s, binding_str, &drsuapi->binding); talloc_free(binding_str); diff --git a/source4/libnet/libnet_join.c b/source4/libnet/libnet_join.c index 1c5253191d..f9578407de 100644 --- a/source4/libnet/libnet_join.c +++ b/source4/libnet/libnet_join.c @@ -243,7 +243,7 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J /* Now we know the user's DN, open with LDAP, read and modify a few things */ remote_ldb_url = talloc_asprintf(tmp_ctx, "ldap://%s", - drsuapi_binding->target_hostname); + dcerpc_binding_get_string_option(drsuapi_binding, "target_hostname")); if (!remote_ldb_url) { r->out.error_string = NULL; talloc_free(tmp_ctx); diff --git a/source4/libnet/libnet_rpc.c b/source4/libnet/libnet_rpc.c index db48ea3f7d..19838d4fe3 100644 --- a/source4/libnet/libnet_rpc.c +++ b/source4/libnet/libnet_rpc.c @@ -79,7 +79,8 @@ static struct composite_context* libnet_RpcConnectSrv_send(struct libnet_context s->binding = talloc_asprintf(s, "ncacn_np:%s", r->in.name); break; case LIBNET_RPC_CONNECT_SERVER_ADDRESS: - s->binding = talloc_asprintf(s, "ncacn_np:%s", r->in.address); + s->binding = talloc_asprintf(s, "ncacn_np:%s[target_hostname=%s]", + r->in.address, r->in.name); break; case LIBNET_RPC_CONNECT_BINDING: @@ -121,13 +122,6 @@ static struct composite_context* libnet_RpcConnectSrv_send(struct libnet_context if (!composite_is_ok(c)) return c; } - if (r->level == LIBNET_RPC_CONNECT_SERVER_ADDRESS) { - b->target_hostname = talloc_strdup(b, r->in.name); - if (composite_nomem(b->target_hostname, c)) { - return c; - } - } - /* connect to remote dcerpc pipe */ pipe_connect_req = dcerpc_pipe_connect_b_send(c, b, r->in.dcerpc_iface, ctx->cred, c->event_ctx, diff --git a/source4/libnet/libnet_unbecome_dc.c b/source4/libnet/libnet_unbecome_dc.c index b0fe07b0d7..f575eb1fe6 100644 --- a/source4/libnet/libnet_unbecome_dc.c +++ b/source4/libnet/libnet_unbecome_dc.c @@ -543,7 +543,9 @@ static void unbecomeDC_drsuapi_connect_send(struct libnet_UnbecomeDC_state *s) struct composite_context *creq; char *binding_str; - binding_str = talloc_asprintf(s, "ncacn_ip_tcp:%s[seal]", s->source_dsa.dns_name); + binding_str = talloc_asprintf(s, "ncacn_ip_tcp:%s[seal,target_hostname=%s]", + s->source_dsa.address, + s->source_dsa.dns_name); if (composite_nomem(binding_str, c)) return; c->status = dcerpc_parse_binding(s, binding_str, &s->drsuapi.binding); |