]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:winbindd: Remove implementation of WINBINDD_SHOW_SEQUENCE
authorPavel Filipenský <pfilipensky@samba.org>
Mon, 16 Dec 2024 13:16:07 +0000 (14:16 +0100)
committerVolker Lendecke <vl@samba.org>
Tue, 17 Dec 2024 12:30:31 +0000 (12:30 +0000)
Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/winbindd/wb_seqnum.c [deleted file]
source3/winbindd/wb_seqnums.c [deleted file]
source3/winbindd/winbindd.c
source3/winbindd/winbindd_proto.h
source3/winbindd/winbindd_show_sequence.c [deleted file]
source3/winbindd/wscript_build

diff --git a/source3/winbindd/wb_seqnum.c b/source3/winbindd/wb_seqnum.c
deleted file mode 100644 (file)
index 7affd76..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-   async seqnum
-   Copyright (C) Volker Lendecke 2009
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "winbindd.h"
-#include "librpc/gen_ndr/ndr_winbind_c.h"
-
-struct wb_seqnum_state {
-       uint32_t seqnum;
-};
-
-static void wb_seqnum_done(struct tevent_req *subreq);
-
-struct tevent_req *wb_seqnum_send(TALLOC_CTX *mem_ctx,
-                                 struct tevent_context *ev,
-                                 struct winbindd_domain *domain)
-{
-       struct tevent_req *req, *subreq;
-       struct wb_seqnum_state *state;
-
-       req = tevent_req_create(mem_ctx, &state, struct wb_seqnum_state);
-       if (req == NULL) {
-               return NULL;
-       }
-       subreq = dcerpc_wbint_QuerySequenceNumber_send(
-               state, ev, dom_child_handle(domain), &state->seqnum);
-       if (tevent_req_nomem(subreq, req)) {
-               return tevent_req_post(req, ev);
-       }
-       tevent_req_set_callback(subreq, wb_seqnum_done, req);
-       return req;
-}
-
-static void wb_seqnum_done(struct tevent_req *subreq)
-{
-       struct tevent_req *req = tevent_req_callback_data(
-               subreq, struct tevent_req);
-       struct wb_seqnum_state *state = tevent_req_data(
-               req, struct wb_seqnum_state);
-       NTSTATUS status, result;
-
-       status = dcerpc_wbint_QuerySequenceNumber_recv(subreq, state, &result);
-       TALLOC_FREE(subreq);
-       if (any_nt_status_not_ok(status, result, &status)) {
-               tevent_req_nterror(req, status);
-               return;
-       }
-       tevent_req_done(req);
-}
-
-NTSTATUS wb_seqnum_recv(struct tevent_req *req, uint32_t *seqnum)
-{
-       struct wb_seqnum_state *state = tevent_req_data(
-               req, struct wb_seqnum_state);
-       NTSTATUS status;
-
-       if (tevent_req_is_nterror(req, &status)) {
-               return status;
-       }
-       *seqnum = state->seqnum;
-       return NT_STATUS_OK;
-}
diff --git a/source3/winbindd/wb_seqnums.c b/source3/winbindd/wb_seqnums.c
deleted file mode 100644 (file)
index 24955ad..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-
-   async seqnums, update the seqnums in winbindd_cache.c
-
-   Copyright (C) Volker Lendecke 2009
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "winbindd.h"
-#include "librpc/gen_ndr/ndr_winbind_c.h"
-
-struct wb_seqnums_state {
-       int num_domains;
-       int num_received;
-
-       struct tevent_req **subreqs;
-       struct winbindd_domain **domains;
-       NTSTATUS *statuses;
-       uint32_t *seqnums;
-};
-
-static void wb_seqnums_done(struct tevent_req *subreq);
-
-struct tevent_req *wb_seqnums_send(TALLOC_CTX *mem_ctx,
-                                  struct tevent_context *ev)
-{
-       struct tevent_req *req;
-       struct wb_seqnums_state *state;
-       struct winbindd_domain *domain;
-       int i;
-
-       req = tevent_req_create(mem_ctx, &state, struct wb_seqnums_state);
-       if (req == NULL) {
-               return NULL;
-       }
-       state->num_received = 0;
-       state->num_domains = 0;
-
-       for (domain = domain_list(); domain != NULL; domain = domain->next) {
-               state->num_domains += 1;
-       }
-
-       state->subreqs = talloc_array(state, struct tevent_req *,
-                                     state->num_domains);
-       state->domains = talloc_zero_array(state, struct winbindd_domain *,
-                                          state->num_domains);
-       state->statuses = talloc_array(state, NTSTATUS, state->num_domains);
-       state->seqnums = talloc_array(state, uint32_t, state->num_domains);
-
-       if ((state->subreqs == NULL) || (state->domains == NULL) ||
-           (state->statuses == NULL) || (state->seqnums == NULL)) {
-               tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
-               return tevent_req_post(req, ev);
-       }
-
-       i = 0;
-
-       for (domain = domain_list(); domain != NULL; domain = domain->next) {
-               state->domains[i] = domain;
-               state->subreqs[i] = wb_seqnum_send(state->subreqs, ev, domain);
-               if (tevent_req_nomem(state->subreqs[i], req)) {
-                       /* Don't even start all the other requests */
-                       TALLOC_FREE(state->subreqs);
-                       return tevent_req_post(req, ev);
-               }
-               tevent_req_set_callback(state->subreqs[i], wb_seqnums_done,
-                                       req);
-               i += 1;
-       }
-       return req;
-}
-
-static void wb_seqnums_done(struct tevent_req *subreq)
-{
-       struct tevent_req *req = tevent_req_callback_data(
-               subreq, struct tevent_req);
-       struct wb_seqnums_state *state = tevent_req_data(
-               req, struct wb_seqnums_state);
-       NTSTATUS status;
-       uint32_t seqnum;
-       int i;
-
-       status = wb_seqnum_recv(subreq, &seqnum);
-
-       for (i=0; i<state->num_domains; i++) {
-               if (subreq == state->subreqs[i]) {
-                       break;
-               }
-       }
-       if (i < state->num_domains) {
-               /* found one */
-
-               state->subreqs[i] = NULL;
-               state->statuses[i] = status;
-               if (NT_STATUS_IS_OK(status)) {
-                       state->seqnums[i] = seqnum;
-
-                       /*
-                        * This first assignment might be removed
-                        * later
-                        */
-                       state->domains[i]->sequence_number = seqnum;
-
-                       if (!wcache_store_seqnum(state->domains[i]->name,
-                                                state->seqnums[i],
-                                                time(NULL))) {
-                               DEBUG(1, ("wcache_store_seqnum failed for "
-                                         "domain %s\n",
-                                         state->domains[i]->name));
-                       }
-               }
-       }
-
-       TALLOC_FREE(subreq);
-
-       state->num_received += 1;
-
-       if (state->num_received >= state->num_domains) {
-               tevent_req_done(req);
-       }
-}
-
-NTSTATUS wb_seqnums_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
-                        int *num_domains, struct winbindd_domain ***domains,
-                        NTSTATUS **statuses, uint32_t **seqnums)
-{
-       struct wb_seqnums_state *state = tevent_req_data(
-               req, struct wb_seqnums_state);
-       NTSTATUS status;
-
-       if (tevent_req_is_nterror(req, &status)) {
-               return status;
-       }
-       *num_domains = state->num_domains;
-       *domains = talloc_move(mem_ctx, &state->domains);
-       *statuses = talloc_move(mem_ctx, &state->statuses);
-       *seqnums = talloc_move(mem_ctx, &state->seqnums);
-       return NT_STATUS_OK;
-}
index df0c7d08cf0fda5c85a26eb061c6611453f425f8..c7370bc859d5be306d71cc17bf923a95d5400f5c 100644 (file)
@@ -338,8 +338,6 @@ static struct winbindd_async_dispatch_table async_nonpriv_table[] = {
          winbindd_getuserdomgroups_send, winbindd_getuserdomgroups_recv },
        { WINBINDD_GETGROUPS, "GETGROUPS",
          winbindd_getgroups_send, winbindd_getgroups_recv },
-       { WINBINDD_SHOW_SEQUENCE, "SHOW_SEQUENCE",
-         winbindd_show_sequence_send, winbindd_show_sequence_recv },
        { WINBINDD_GETGRGID, "GETGRGID",
          winbindd_getgrgid_send, winbindd_getgrgid_recv },
        { WINBINDD_GETGRNAM, "GETGRNAM",
index 5b90a7a731f05934cc0d065fab6598f5aee36dcf..2904dec7e830cea23ff66bd547017242b4aeefab 100644 (file)
@@ -742,24 +742,6 @@ struct tevent_req *winbindd_getgroups_send(TALLOC_CTX *mem_ctx,
 NTSTATUS winbindd_getgroups_recv(struct tevent_req *req,
                                 struct winbindd_response *response);
 
-struct tevent_req *wb_seqnum_send(TALLOC_CTX *mem_ctx,
-                                 struct tevent_context *ev,
-                                 struct winbindd_domain *domain);
-NTSTATUS wb_seqnum_recv(struct tevent_req *req, uint32_t *seqnum);
-
-struct tevent_req *wb_seqnums_send(TALLOC_CTX *mem_ctx,
-                                  struct tevent_context *ev);
-NTSTATUS wb_seqnums_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
-                        int *num_domains, struct winbindd_domain ***domains,
-                        NTSTATUS **statuses, uint32_t **seqnums);
-
-struct tevent_req *winbindd_show_sequence_send(TALLOC_CTX *mem_ctx,
-                                              struct tevent_context *ev,
-                                              struct winbindd_cli_state *cli,
-                                              struct winbindd_request *request);
-NTSTATUS winbindd_show_sequence_recv(struct tevent_req *req,
-                                    struct winbindd_response *response);
-
 struct tevent_req *wb_group_members_send(TALLOC_CTX *mem_ctx,
                                         struct tevent_context *ev,
                                         const struct dom_sid *sid,
diff --git a/source3/winbindd/winbindd_show_sequence.c b/source3/winbindd/winbindd_show_sequence.c
deleted file mode 100644 (file)
index e12f476..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-   async implementation of WINBINDD_SHOW_SEQUENCE
-   Copyright (C) Volker Lendecke 2009
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "winbindd.h"
-
-struct winbindd_show_sequence_state {
-       bool one_domain;
-       /* One domain */
-       uint32_t seqnum;
-
-       /* All domains */
-       int num_domains;
-       NTSTATUS *statuses;
-       struct winbindd_domain **domains;
-       uint32_t *seqnums;
-};
-
-static void winbindd_show_sequence_done_one(struct tevent_req *subreq);
-static void winbindd_show_sequence_done_all(struct tevent_req *subreq);
-
-struct tevent_req *winbindd_show_sequence_send(TALLOC_CTX *mem_ctx,
-                                              struct tevent_context *ev,
-                                              struct winbindd_cli_state *cli,
-                                              struct winbindd_request *request)
-{
-       struct tevent_req *req, *subreq;
-       struct winbindd_show_sequence_state *state;
-
-       req = tevent_req_create(mem_ctx, &state,
-                               struct winbindd_show_sequence_state);
-       if (req == NULL) {
-               return NULL;
-       }
-       state->one_domain = false;
-       state->domains = NULL;
-       state->statuses = NULL;
-       state->seqnums = NULL;
-
-       /* Ensure null termination */
-       request->domain_name[sizeof(request->domain_name)-1]='\0';
-
-       DEBUG(3, ("show_sequence %s\n", request->domain_name));
-
-       if (request->domain_name[0] != '\0') {
-               struct winbindd_domain *domain;
-
-               state->one_domain = true;
-
-               domain = find_domain_from_name_noinit(
-                       request->domain_name);
-               if (domain == NULL) {
-                       tevent_req_nterror(req, NT_STATUS_NO_SUCH_DOMAIN);
-                       return tevent_req_post(req, ev);
-               }
-
-               subreq = wb_seqnum_send(state, ev, domain);
-               if (tevent_req_nomem(subreq, req)) {
-                       return tevent_req_post(req, ev);
-               }
-               tevent_req_set_callback(
-                       subreq, winbindd_show_sequence_done_one, req);
-               return req;
-       }
-
-       subreq = wb_seqnums_send(state, ev);
-       if (tevent_req_nomem(subreq, req)) {
-               return tevent_req_post(req, ev);
-       }
-       tevent_req_set_callback(subreq, winbindd_show_sequence_done_all, req);
-       return req;
-}
-
-static void winbindd_show_sequence_done_one(struct tevent_req *subreq)
-{
-       struct tevent_req *req = tevent_req_callback_data(
-               subreq, struct tevent_req);
-       struct winbindd_show_sequence_state *state = tevent_req_data(
-               req, struct winbindd_show_sequence_state);
-       NTSTATUS status;
-
-       status = wb_seqnum_recv(subreq, &state->seqnum);
-       TALLOC_FREE(subreq);
-       if (tevent_req_nterror(req, status)) {
-               return;
-       }
-       tevent_req_done(req);
-}
-
-static void winbindd_show_sequence_done_all(struct tevent_req *subreq)
-{
-       struct tevent_req *req = tevent_req_callback_data(
-               subreq, struct tevent_req);
-       struct winbindd_show_sequence_state *state = tevent_req_data(
-               req, struct winbindd_show_sequence_state);
-       NTSTATUS status;
-
-       status = wb_seqnums_recv(subreq, state, &state->num_domains,
-                                &state->domains, &state->statuses,
-                                &state->seqnums);
-       TALLOC_FREE(subreq);
-       if (tevent_req_nterror(req, status)) {
-               return;
-       }
-       tevent_req_done(req);
-}
-
-NTSTATUS winbindd_show_sequence_recv(struct tevent_req *req,
-                                    struct winbindd_response *response)
-{
-       struct winbindd_show_sequence_state *state = tevent_req_data(
-               req, struct winbindd_show_sequence_state);
-       NTSTATUS status;
-       char *extra_data;
-       int i;
-
-       if (tevent_req_is_nterror(req, &status)) {
-               return status;
-       }
-
-       if (state->one_domain) {
-               response->data.sequence_number = state->seqnum;
-               return NT_STATUS_OK;
-       }
-
-       extra_data = talloc_strdup(response, "");
-       if (extra_data == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       for (i=0; i<state->num_domains; i++) {
-               if (!NT_STATUS_IS_OK(state->statuses[i])
-                   || (state->seqnums[i] == DOM_SEQUENCE_NONE)) {
-                       extra_data = talloc_asprintf_append_buffer(
-                               extra_data, "%s : DISCONNECTED\n",
-                               state->domains[i]->name);
-               } else {
-                       extra_data = talloc_asprintf_append_buffer(
-                               extra_data, "%s : %d\n",
-                               state->domains[i]->name,
-                               (int)state->seqnums[i]);
-               }
-               if (extra_data == NULL) {
-                       return NT_STATUS_NO_MEMORY;
-               }
-       }
-
-       response->extra_data.data = extra_data;
-       response->length += talloc_get_size(extra_data);
-       return NT_STATUS_OK;
-}
index 4c85876b5adf88b5155021ba315fe41a13f85b04..03aa6e5c06052c2c74408f8b1badb00e1cd91568 100644 (file)
@@ -208,8 +208,6 @@ bld.SAMBA3_SUBSYSTEM('winbindd-lib',
                     wb_lookupusergroups.c
                     wb_getpwsid.c
                     wb_gettoken.c
-                    wb_seqnum.c
-                    wb_seqnums.c
                     wb_group_members.c
                     wb_alias_members.c
                     wb_getgrsid.c
@@ -231,7 +229,6 @@ bld.SAMBA3_SUBSYSTEM('winbindd-lib',
                     winbindd_getsidaliases.c
                     winbindd_getuserdomgroups.c
                     winbindd_getgroups.c
-                    winbindd_show_sequence.c
                     winbindd_getgrgid.c
                     winbindd_getgrnam.c
                     winbindd_getusersids.c