param_table: Remove misleading allow dns updates options.
[obnox/samba/samba-obnox.git] / dfs_server / dfs_server_ad.c
index 6b71f709846030e65a969a4848dcd35641278426..4d3891a774a9042749d1a6f0b1be685b5fa39225 100644 (file)
@@ -26,6 +26,7 @@
 #include "param/param.h"
 #include "lib/tsocket/tsocket.h"
 #include "dfs_server/dfs_server_ad.h"
+#include "lib/util/util_net.h"
 
 #define MAX_DFS_RESPONSE 56*1024 /* 56 Kb */
 
@@ -232,15 +233,15 @@ static NTSTATUS get_dcs_insite(TALLOC_CTX *ctx, struct ldb_context *ldb,
                        NT_STATUS_HAVE_NO_MEMORY_AND_FREE(list->names[list->count], r);
                } else {
                        char *tmp;
-                       const char *acct = ldb_msg_find_attr_as_string(r2->msgs[0], "sAMAccountName", NULL);
-                       if (acct == NULL) {
+                       const char *aname = ldb_msg_find_attr_as_string(r2->msgs[0], "sAMAccountName", NULL);
+                       if (aname == NULL) {
                                DEBUG(2,(__location__ ": sAMAccountName missing on %s\n",
                                         ldb_dn_get_linearized(dn)));
                                talloc_free(r);
                                return NT_STATUS_INTERNAL_ERROR;
                        }
 
-                       tmp = talloc_strdup(list->names, acct);
+                       tmp = talloc_strdup(list->names, aname);
                        NT_STATUS_HAVE_NO_MEMORY_AND_FREE(tmp, r);
 
                        /* Netbios name is also the sAMAccountName for
@@ -277,7 +278,7 @@ static NTSTATUS get_dcs(TALLOC_CTX *ctx, struct ldb_context *ldb,
        int ret;
        uint32_t current_pos = 0;
        NTSTATUS status;
-       TALLOC_CTX *subctx = talloc_new(ctx);
+       TALLOC_CTX *subctx;
 
        *pset_list = set_list = NULL;
 
@@ -816,7 +817,14 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
                 * handle it here.
                 */
                return NT_STATUS_NOT_FOUND;
+       }
 
+       if (is_ipaddress(server_name)) {
+               /*
+                * If it is not domain related do not
+                * handle it here.
+                */
+               return NT_STATUS_NOT_FOUND;
        }
 
        if ((strcasecmp_m(server_name, netbios_domain) != 0) &&