summaryrefslogtreecommitdiffstats
path: root/server/providers
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-11-07 21:21:36 -0500
committerStephen Gallagher <sgallagh@redhat.com>2009-11-10 09:33:57 -0500
commit0f6f40eee34677b0169fe9fdbbf65c3a838165bb (patch)
treea51c9894ac2fc7840289454f91b4929b554af696 /server/providers
parente31821dd6f4a4ca9d07b367c26bfb21d6755bef0 (diff)
downloadsssd-0f6f40eee34677b0169fe9fdbbf65c3a838165bb.tar.gz
sssd-0f6f40eee34677b0169fe9fdbbf65c3a838165bb.tar.xz
sssd-0f6f40eee34677b0169fe9fdbbf65c3a838165bb.zip
Refactor delete functions and add a few
Refactor user/group delete functions so that they can be used without a transaction (they autostart an operation). Add user and group search function where a subfilter can be specified.
Diffstat (limited to 'server/providers')
-rw-r--r--server/providers/proxy.c37
1 files changed, 17 insertions, 20 deletions
diff --git a/server/providers/proxy.c b/server/providers/proxy.c
index 628f9d496..aea2df307 100644
--- a/server/providers/proxy.c
+++ b/server/providers/proxy.c
@@ -628,11 +628,10 @@ static void get_pw_uid_process(struct tevent_req *subreq)
DEBUG(7, ("User %d does not exist (or is invalid) on remote server,"
" deleting!\n", state->uid));
- subreq = sysdb_delete_user_by_uid_send(state, state->ev,
- state->handle,
- state->domain,
- state->uid,
- true);
+ subreq = sysdb_delete_user_send(state, state->ev,
+ NULL, state->handle,
+ state->domain,
+ NULL, state->uid);
if (!subreq) {
tevent_req_error(req, ENOMEM);
return;
@@ -649,9 +648,9 @@ static void get_pw_uid_remove_done(struct tevent_req *subreq)
struct proxy_state);
int ret;
- ret = sysdb_delete_user_by_uid_recv(subreq);
+ ret = sysdb_delete_user_recv(subreq);
talloc_zfree(subreq);
- if (ret) {
+ if (ret && ret != ENOENT) {
tevent_req_error(req, ret);
return;
}
@@ -1239,11 +1238,10 @@ again:
DEBUG(7, ("Group %d does not exist (or is invalid) on remote server,"
" deleting!\n", state->gid));
- subreq = sysdb_delete_group_by_gid_send(state, state->ev,
- state->handle,
- state->domain,
- state->gid,
- true);
+ subreq = sysdb_delete_group_send(state, state->ev,
+ NULL, state->handle,
+ state->domain,
+ NULL, state->gid);
if (!subreq) {
tevent_req_error(req, ENOMEM);
return;
@@ -1260,9 +1258,9 @@ static void get_gr_gid_remove_done(struct tevent_req *subreq)
struct proxy_state);
int ret;
- ret = sysdb_delete_group_by_gid_recv(subreq);
+ ret = sysdb_delete_group_recv(subreq);
talloc_zfree(subreq);
- if (ret) {
+ if (ret && ret != ENOENT) {
tevent_req_error(req, ret);
return;
}
@@ -1911,11 +1909,10 @@ again:
}
if (delete_user) {
- subreq = sysdb_delete_group_by_gid_send(state, state->ev,
- state->handle,
- state->domain,
- state->gid,
- true);
+ subreq = sysdb_delete_group_send(state, state->ev,
+ NULL, state->handle,
+ state->domain,
+ NULL, state->gid);
if (!subreq) {
ret = ENOMEM;
goto fail;
@@ -1955,7 +1952,7 @@ static void get_group_from_gid_send_del_done(struct tevent_req *subreq)
ret = sysdb_delete_entry_recv(subreq);
talloc_zfree(subreq);
- if (ret) {
+ if (ret && ret != ENOENT) {
tevent_req_error(req, ret);
return;
}