summaryrefslogtreecommitdiff
path: root/source4/libnet/libnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libnet/libnet.c')
-rw-r--r--source4/libnet/libnet.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source4/libnet/libnet.c b/source4/libnet/libnet.c
index 5d66005a27..963e824497 100644
--- a/source4/libnet/libnet.c
+++ b/source4/libnet/libnet.c
@@ -24,13 +24,19 @@
struct libnet_context *libnet_context_init(struct event_context *ev)
{
+ /* default name resolution methods */
+ const char *nr_methods[] = { "lmhosts", "wins", "host", "bcast", NULL };
+ int nr_count = 0, nr_i;
+
struct libnet_context *ctx;
+ /* create brand new libnet context */
ctx = talloc(NULL, struct libnet_context);
if (!ctx) {
return NULL;
}
+ /* events */
if (ev == NULL) {
ev = event_context_init(ctx);
if (ev == NULL) {
@@ -40,6 +46,15 @@ struct libnet_context *libnet_context_init(struct event_context *ev)
}
ctx->event_ctx = ev;
+ /* count name resolution methods */
+ while (nr_methods[nr_count]) nr_count++;
+
+ /* assign name resolution methods */
+ ctx->name_res_methods = talloc_array(ctx, char*, nr_count+1);
+ for (nr_i = 0; nr_i < nr_count; nr_i++) {
+ ctx->name_res_methods[nr_i] = talloc_strdup(ctx, nr_methods[nr_i]);
+ }
+ ctx->name_res_methods[nr_count+1] = NULL;
+
return ctx;
}
-