s4:cldap_server: Do not handle netlogon ourself anymore
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Fri, 1 Nov 2013 09:52:02 +0000 (10:52 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 11 Nov 2013 22:00:54 +0000 (23:00 +0100)
Netlogon is now handled by the ldb rootdse module.

The netlogon files will be moved to dsdb in the next commit.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Nadezhda Ivanova <nivanova@symas.com>
source4/cldap_server/cldap_server.c
source4/cldap_server/netlogon.c
source4/cldap_server/rootdse.c

index a6248d44930d6af6b5e65a4811bbfcaa8ca38b21..774142e2eaed9aaa925e23257d6360528c0e5e00 100644 (file)
@@ -80,18 +80,6 @@ static void cldapd_request_handler(struct cldap_socket *cldap,
                return;
        }
 
-       if (search->num_attributes == 1 &&
-           strcasecmp(search->attributes[0], "netlogon") == 0) {
-               cldapd_netlogon_request(cldap,
-                                       cldapd,
-                                       in,
-                                       in->ldap_msg->messageid,
-                                       search->tree,
-                                       in->src);
-               talloc_free(in);
-               return;
-       }
-
        cldapd_rootdse_request(cldap, cldapd, in,
                               in->ldap_msg->messageid,
                               search, in->src);
index 0894b2bea734f8ec6f49f0ade8ef7a61897f3037..231bd169e9a4648c9d97520a6908d008056dcac8 100644 (file)
@@ -458,53 +458,3 @@ NTSTATUS parse_netlogon_request(struct ldb_parse_tree *tree,
 failed:
        return NT_STATUS_UNSUCCESSFUL;
 }
-
-/*
-  handle incoming cldap requests
-*/
-void cldapd_netlogon_request(struct cldap_socket *cldap,
-                            struct cldapd_server *cldapd,
-                            TALLOC_CTX *tmp_ctx,
-                            uint32_t message_id,
-                            struct ldb_parse_tree *tree,
-                            struct tsocket_address *src)
-{
-       const char *domain, *host, *user, *domain_guid;
-       struct dom_sid *domain_sid;
-       int acct_control, version;
-       struct netlogon_samlogon_response netlogon;
-       NTSTATUS status = NT_STATUS_INVALID_PARAMETER;
-
-       DEBUG(5,("cldap netlogon query domain=%s host=%s user=%s version=%d guid=%s\n",
-                domain, host, user, version, domain_guid));
-
-       status = parse_netlogon_request(tree, cldapd->task->lp_ctx, tmp_ctx,
-                                       &domain, &host, &user, &domain_guid,
-                                       &domain_sid, &acct_control, &version);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
-
-       status = fill_netlogon_samlogon_response(cldapd->samctx, tmp_ctx,
-                                                domain, NULL, domain_sid,
-                                                domain_guid,
-                                                user, acct_control,
-                                                tsocket_address_inet_addr_string(src, tmp_ctx),
-                                                version, cldapd->task->lp_ctx,
-                                                &netlogon, false);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
-
-       status = cldap_netlogon_reply(cldap, message_id, src, version, &netlogon);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
-
-       return;
-       
-failed:
-       DEBUG(2,("cldap netlogon query failed domain=%s host=%s version=%d - %s\n",
-                domain, host, version, nt_errstr(status)));
-       cldap_empty_reply(cldap, message_id, src);
-}
index b8956169d260faaab3bd323670453859f73f7d2b..3f389ce822576b06c315cd3fa01571af0b342468 100644 (file)
@@ -158,6 +158,11 @@ void cldapd_rootdse_request(struct cldap_socket *cldap,
        reply.response          = NULL;
        reply.result            = &result;
 
+       /* Note: The remoteAddress should rather be set on a ldb request.
+        * We can set this savely on the context here,
+        * since cldapd_rootdse_fill operates synchronously. */
+       ldb_set_opaque(cldapd->samctx, "remoteAddress", src);
+
        cldapd_rootdse_fill(cldapd, tmp_ctx, search, &reply.response,
                            reply.result);