We should avoid deferencing struct dcerpc_binding if possible.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
/* store input parameters in state structure */
s->io = *io;
- if (io->binding->localaddress != NULL) {
- s->localaddr = talloc_strdup(s, io->binding->localaddress);
- if (composite_nomem(s->localaddr, c)) return c;
- }
+ s->localaddr = dcerpc_binding_get_string_option(io->binding,
+ "localaddress");
if (io->binding->host != NULL) {
s->host = talloc_strdup(s, io->binding->host);
if (composite_nomem(s->host, c)) return c;
struct dcerpc_pipe *pipe2;
struct dcerpc_binding *binding;
struct socket_address *peer_addr;
+ const char *localaddress;
};
return c;
}
+ s->localaddress = dcerpc_binding_get_string_option(s->binding,
+ "localaddress");
+
pipe_tcp_req = dcerpc_pipe_open_tcp_send(s->pipe2->conn,
- s->binding->localaddress,
+ s->localaddress,
s->peer_addr->addr,
s->binding->target_hostname,
atoi(s->binding->endpoint),
struct epm_map_binding_state *s;
struct composite_context *pipe_connect_req;
struct cli_credentials *anon_creds;
+ const char *localaddress;
NTSTATUS status;
struct dcerpc_binding *epmapper_binding;
/* basic endpoint mapping data */
epmapper_binding->options = NULL;
+ localaddress = dcerpc_binding_get_string_option(binding, "localaddress");
+ if (localaddress != NULL) {
+ c->status = dcerpc_binding_set_string_option(epmapper_binding,
+ "localaddress",
+ localaddress);
+ if (!composite_is_ok(c)) return c;
+ }
epmapper_binding->flags = 0;
epmapper_binding->assoc_group_id = 0;
epmapper_binding->endpoint = NULL;