summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/Makefile.in2
-rw-r--r--source3/winbindd/wb_sid2gid.c167
-rw-r--r--source3/winbindd/wb_sid2uid.c165
-rw-r--r--source3/winbindd/winbindd_proto.h10
-rwxr-xr-xsource3/wscript_build2
5 files changed, 0 insertions, 346 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index bb0861fb38..3818990902 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -1396,8 +1396,6 @@ WINBINDD_OBJ1 = \
winbindd/wb_lookupsid.o \
winbindd/wb_lookupsids.o \
winbindd/wb_lookupname.o \
- winbindd/wb_sid2uid.o \
- winbindd/wb_sid2gid.o \
winbindd/wb_uid2sid.o \
winbindd/wb_gid2sid.o \
winbindd/wb_sids2xids.o \
diff --git a/source3/winbindd/wb_sid2gid.c b/source3/winbindd/wb_sid2gid.c
deleted file mode 100644
index cb95191e7e..0000000000
--- a/source3/winbindd/wb_sid2gid.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- async sid2gid
- 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_wbint_c.h"
-#include "idmap_cache.h"
-#include "../libcli/security/security.h"
-
-struct wb_sid2gid_state {
- struct tevent_context *ev;
- struct dom_sid sid;
- char *dom_name;
- uint64 gid64;
- gid_t gid;
-};
-
-static void wb_sid2gid_lookup_done(struct tevent_req *subreq);
-static void wb_sid2gid_done(struct tevent_req *subreq);
-
-
-struct tevent_req *wb_sid2gid_send(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- const struct dom_sid *sid)
-{
- struct tevent_req *req, *subreq;
- struct wb_sid2gid_state *state;
- bool expired;
-
- req = tevent_req_create(mem_ctx, &state, struct wb_sid2gid_state);
- if (req == NULL) {
- return NULL;
- }
- sid_copy(&state->sid, sid);
- state->ev = ev;
-
- if (winbindd_use_idmap_cache()
- && idmap_cache_find_sid2gid(sid, &state->gid, &expired)) {
-
- DEBUG(10, ("idmap_cache_find_sid2gid found %d%s\n",
- (int)state->gid, expired ? " (expired)": ""));
-
- if (!expired || is_domain_offline(find_our_domain())) {
- if (state->gid == -1) {
- tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
- } else {
- tevent_req_done(req);
- }
- return tevent_req_post(req, ev);
- }
- }
-
- /*
- * We need to make sure the sid is of the right type to not flood
- * idmap with wrong entries
- */
-
- subreq = wb_lookupsid_send(state, ev, &state->sid);
- if (tevent_req_nomem(subreq, req)) {
- return tevent_req_post(req, ev);
- }
- tevent_req_set_callback(subreq, wb_sid2gid_lookup_done, req);
- return req;
-}
-
-static void wb_sid2gid_lookup_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct wb_sid2gid_state *state = tevent_req_data(
- req, struct wb_sid2gid_state);
- struct winbindd_domain *domain;
- const char *domname;
- const char *name;
- enum lsa_SidType type;
- NTSTATUS status;
- struct winbindd_child *child;
-
- status = wb_lookupsid_recv(subreq, talloc_tos(), &type, &domname,
- &name);
- if (tevent_req_nterror(req, status)) {
- return;
- }
-
- if ((type != SID_NAME_DOM_GRP) && (type != SID_NAME_ALIAS)
- && (type != SID_NAME_WKN_GRP)) {
- DEBUG(5, ("Sid %s is not a group.\n",
- sid_string_dbg(&state->sid)));
- /*
- * We have to set the cache ourselves here, the child
- * which is normally responsible was not queried yet.
- */
- idmap_cache_set_sid2gid(&state->sid, -1);
- tevent_req_nterror(req, NT_STATUS_INVALID_SID);
- return;
- }
-
- domain = find_domain_from_sid_noinit(&state->sid);
-
- /*
- * TODO: Issue a gettrustinfo here in case we don't have "domain" yet?
- */
-
- if ((domain != NULL) && domain->have_idmap_config) {
- state->dom_name = domain->name;
- } else {
- state->dom_name = NULL;
- }
-
- child = idmap_child();
-
- subreq = dcerpc_wbint_Sid2Gid_send(state, state->ev, child->binding_handle,
- state->dom_name, &state->sid,
- &state->gid64);
- if (tevent_req_nomem(subreq, req)) {
- return;
- }
- tevent_req_set_callback(subreq, wb_sid2gid_done, req);
-}
-
-static void wb_sid2gid_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct wb_sid2gid_state *state = tevent_req_data(
- req, struct wb_sid2gid_state);
- NTSTATUS status, result;
-
- status = dcerpc_wbint_Sid2Gid_recv(subreq, state, &result);
- TALLOC_FREE(subreq);
- if (any_nt_status_not_ok(status, result, &status)) {
- tevent_req_nterror(req, status);
- return;
- }
-
- state->gid = state->gid64;
- tevent_req_done(req);
-}
-
-NTSTATUS wb_sid2gid_recv(struct tevent_req *req, gid_t *gid)
-{
- struct wb_sid2gid_state *state = tevent_req_data(
- req, struct wb_sid2gid_state);
- NTSTATUS status;
-
- if (tevent_req_is_nterror(req, &status)) {
- return status;
- }
- *gid = state->gid;
- return NT_STATUS_OK;
-}
diff --git a/source3/winbindd/wb_sid2uid.c b/source3/winbindd/wb_sid2uid.c
deleted file mode 100644
index a2e0f9712f..0000000000
--- a/source3/winbindd/wb_sid2uid.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- async sid2uid
- 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_wbint_c.h"
-#include "idmap_cache.h"
-#include "../libcli/security/security.h"
-
-struct wb_sid2uid_state {
- struct tevent_context *ev;
- struct dom_sid sid;
- char *dom_name;
- uint64 uid64;
- uid_t uid;
-};
-
-static void wb_sid2uid_lookup_done(struct tevent_req *subreq);
-static void wb_sid2uid_done(struct tevent_req *subreq);
-
-struct tevent_req *wb_sid2uid_send(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- const struct dom_sid *sid)
-{
- struct tevent_req *req, *subreq;
- struct wb_sid2uid_state *state;
- bool expired;
-
- req = tevent_req_create(mem_ctx, &state, struct wb_sid2uid_state);
- if (req == NULL) {
- return NULL;
- }
- sid_copy(&state->sid, sid);
- state->ev = ev;
-
- if (winbindd_use_idmap_cache()
- && idmap_cache_find_sid2uid(sid, &state->uid, &expired)) {
-
- DEBUG(10, ("idmap_cache_find_sid2uid found %d%s\n",
- (int)state->uid, expired ? " (expired)": ""));
-
- if (!expired || is_domain_offline(find_our_domain())) {
- if (state->uid == -1) {
- tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
- } else {
- tevent_req_done(req);
- }
- return tevent_req_post(req, ev);
- }
- }
-
- /*
- * We need to make sure the sid is of the right type to not flood
- * idmap with wrong entries
- */
-
- subreq = wb_lookupsid_send(state, ev, &state->sid);
- if (tevent_req_nomem(subreq, req)) {
- return tevent_req_post(req, ev);
- }
- tevent_req_set_callback(subreq, wb_sid2uid_lookup_done, req);
- return req;
-}
-
-static void wb_sid2uid_lookup_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct wb_sid2uid_state *state = tevent_req_data(
- req, struct wb_sid2uid_state);
- struct winbindd_domain *domain;
- const char *domname;
- const char *name;
- enum lsa_SidType type;
- NTSTATUS status;
- struct winbindd_child *child;
-
- status = wb_lookupsid_recv(subreq, talloc_tos(), &type, &domname,
- &name);
- if (tevent_req_nterror(req, status)) {
- return;
- }
-
- if ((type != SID_NAME_USER) && (type != SID_NAME_COMPUTER)) {
- DEBUG(5, ("Sid %s is not a user or a computer.\n",
- sid_string_dbg(&state->sid)));
- /*
- * We have to set the cache ourselves here, the child
- * which is normally responsible was not queried yet.
- */
- idmap_cache_set_sid2uid(&state->sid, -1);
- tevent_req_nterror(req, NT_STATUS_INVALID_SID);
- return;
- }
-
- domain = find_domain_from_sid_noinit(&state->sid);
-
- /*
- * TODO: Issue a gettrustinfo here in case we don't have "domain" yet?
- */
-
- if ((domain != NULL) && domain->have_idmap_config) {
- state->dom_name = domain->name;
- } else {
- state->dom_name = NULL;
- }
-
- child = idmap_child();
-
- subreq = dcerpc_wbint_Sid2Uid_send(state, state->ev, child->binding_handle,
- state->dom_name, &state->sid,
- &state->uid64);
- if (tevent_req_nomem(subreq, req)) {
- return;
- }
- tevent_req_set_callback(subreq, wb_sid2uid_done, req);
-}
-
-static void wb_sid2uid_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct wb_sid2uid_state *state = tevent_req_data(
- req, struct wb_sid2uid_state);
- NTSTATUS status, result;
-
- status = dcerpc_wbint_Sid2Uid_recv(subreq, state, &result);
- TALLOC_FREE(subreq);
- if (any_nt_status_not_ok(status, result, &status)) {
- tevent_req_nterror(req, status);
- return;
- }
-
- state->uid = state->uid64;
- tevent_req_done(req);
-}
-
-NTSTATUS wb_sid2uid_recv(struct tevent_req *req, uid_t *uid)
-{
- struct wb_sid2uid_state *state = tevent_req_data(
- req, struct wb_sid2uid_state);
- NTSTATUS status;
-
- if (tevent_req_is_nterror(req, &status)) {
- return status;
- }
- *uid = state->uid;
- return NT_STATUS_OK;
-}
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index 7fe0fed5b6..44693d71dc 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -495,11 +495,6 @@ struct tevent_req *winbindd_lookupname_send(TALLOC_CTX *mem_ctx,
NTSTATUS winbindd_lookupname_recv(struct tevent_req *req,
struct winbindd_response *response);
-struct tevent_req *wb_sid2uid_send(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- const struct dom_sid *sid);
-NTSTATUS wb_sid2uid_recv(struct tevent_req *req, uid_t *uid);
-
struct tevent_req *winbindd_sid_to_uid_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct winbindd_cli_state *cli,
@@ -507,11 +502,6 @@ struct tevent_req *winbindd_sid_to_uid_send(TALLOC_CTX *mem_ctx,
NTSTATUS winbindd_sid_to_uid_recv(struct tevent_req *req,
struct winbindd_response *response);
-struct tevent_req *wb_sid2gid_send(TALLOC_CTX *mem_ctx,
- struct tevent_context *ev,
- const struct dom_sid *sid);
-NTSTATUS wb_sid2gid_recv(struct tevent_req *req, gid_t *gid);
-
struct tevent_req *winbindd_sid_to_gid_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct winbindd_cli_state *cli,
diff --git a/source3/wscript_build b/source3/wscript_build
index 039b6b795e..aac18c7cba 100755
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -265,8 +265,6 @@ WINBINDD_SRC1 = '''winbindd/winbindd.c
winbindd/wb_lookupsid.c
winbindd/wb_lookupsids.c
winbindd/wb_lookupname.c
- winbindd/wb_sid2uid.c
- winbindd/wb_sid2gid.c
winbindd/wb_uid2sid.c
winbindd/wb_gid2sid.c
winbindd/wb_sids2xids.c