diff options
author | Simo Sorce <ssorce@redhat.com> | 2009-11-07 21:21:36 -0500 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2009-11-10 09:33:57 -0500 |
commit | 0f6f40eee34677b0169fe9fdbbf65c3a838165bb (patch) | |
tree | a51c9894ac2fc7840289454f91b4929b554af696 /server/providers | |
parent | e31821dd6f4a4ca9d07b367c26bfb21d6755bef0 (diff) | |
download | sssd-0f6f40eee34677b0169fe9fdbbf65c3a838165bb.tar.gz sssd-0f6f40eee34677b0169fe9fdbbf65c3a838165bb.tar.bz2 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.c | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/server/providers/proxy.c b/server/providers/proxy.c index 628f9d49..aea2df30 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; } |