struct nbt_name_request **queries;
struct nbt_name_query *io_queries;
const char *reply_addr;
+ struct interface *ifaces;
};
/*
struct composite_context);
struct nbtlist_state *state = talloc_get_type(c->private_data, struct nbtlist_state);
struct nbt_name_query *q;
- struct interface *ifaces;
int i;
for (i=0;i<state->num_queries;i++) {
}
/* favor a local address if possible */
- load_interfaces(NULL, lp_interfaces(global_loadparm), &ifaces);
state->reply_addr = NULL;
for (i=0;i<q->out.num_addrs;i++) {
- if (iface_is_local(ifaces, q->out.reply_addrs[i])) {
+ if (iface_is_local(state->ifaces, q->out.reply_addrs[i])) {
state->reply_addr = talloc_steal(state,
q->out.reply_addrs[i]);
break;
}
}
- talloc_free(ifaces);
if (state->reply_addr == NULL) {
state->reply_addr = talloc_steal(state,
if (composite_nomem(state->name.scope, c)) return c;
}
+ load_interfaces(state, lp_interfaces(global_loadparm), &state->ifaces);
+
/*
* we can't push long names on the wire,
* so bail out here to give a useful error message
bool broadcast, bool wins_lookup,
const char **reply_addr)
{
- struct composite_context *c = resolve_name_nbtlist_send(mem_ctx, NULL, name, address_list,
+ struct composite_context *c = resolve_name_nbtlist_send(mem_ctx, NULL,
+ name, address_list,
broadcast, wins_lookup);
return resolve_name_nbtlist_recv(c, mem_ctx, reply_addr);
}