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>
{
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);
/* 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);
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:
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,
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);