summaryrefslogtreecommitdiffstats
path: root/src/providers
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2012-10-23 13:37:01 +0200
committerJakub Hrozek <jhrozek@redhat.com>2012-11-05 00:14:04 +0100
commitfb21b266f4ebd2c26d5622acd37dc9a0816ecc8c (patch)
tree69d270af2830716e068664d7a282143ddd54efdd /src/providers
parentcae527076156c1b4357c270105a4d667641afb96 (diff)
downloadsssd-fb21b266f4ebd2c26d5622acd37dc9a0816ecc8c.tar.gz
sssd-fb21b266f4ebd2c26d5622acd37dc9a0816ecc8c.tar.xz
sssd-fb21b266f4ebd2c26d5622acd37dc9a0816ecc8c.zip
sudo refresh: handle errors properly
We should test both ret and (dp_error, errno) pair.
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/ldap/sdap_sudo.c33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/providers/ldap/sdap_sudo.c b/src/providers/ldap/sdap_sudo.c
index f81fa673b..ebbc95d14 100644
--- a/src/providers/ldap/sdap_sudo.c
+++ b/src/providers/ldap/sdap_sudo.c
@@ -949,10 +949,16 @@ static void sdap_sudo_periodical_first_refresh_done(struct tevent_req *req)
}
ret = sdap_sudo_full_refresh_recv(subreq, &dp_error, &error);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE, ("Periodical full refresh of sudo rules "
+ "failed [%d]: %s)\n", ret, strerror(ret)));
+ goto schedule;
+ }
+
if (dp_error != DP_ERR_OK || error != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("Periodical full refresh of sudo rules "
- "failed [dp_error: %d] ([%d]: %s)\n",
- dp_error, error, strerror(error)));
+ "failed [dp_error: %d] ([%d]: %s)\n",
+ dp_error, error, strerror(error)));
goto schedule;
}
@@ -996,8 +1002,8 @@ static void sdap_sudo_periodical_full_refresh_done(struct tevent_req *req)
struct tevent_req *subreq = NULL; /* req from sdap_sudo_full_refresh_send() */
struct sdap_sudo_ctx *sudo_ctx = NULL;
time_t delay;
- int dp_error = DP_ERR_OK;
- int error = EOK;
+ int dp_error;
+ int error;
int ret;
ret = sdap_sudo_timer_recv(req, req, &subreq);
@@ -1008,10 +1014,16 @@ static void sdap_sudo_periodical_full_refresh_done(struct tevent_req *req)
}
ret = sdap_sudo_full_refresh_recv(subreq, &dp_error, &error);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE, ("Periodical full refresh of sudo rules "
+ "failed [%d]: %s)\n", ret, strerror(ret)));
+ goto schedule;
+ }
+
if (dp_error != DP_ERR_OK || error != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("Periodical full refresh of sudo rules "
- "failed [dp_error: %d] ([%d]: %s)\n",
- dp_error, error, strerror(error)));
+ "failed [dp_error: %d] ([%d]: %s)\n",
+ dp_error, error, strerror(error)));
goto schedule;
}
@@ -1051,10 +1063,15 @@ static void sdap_sudo_periodical_smart_refresh_done(struct tevent_req *req)
}
ret = sdap_sudo_smart_refresh_recv(subreq, &dp_error, &error);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE, ("Periodical smart refresh of sudo rules "
+ "failed [%d]: %s\n", ret, strerror(ret)));
+ }
+
if (dp_error != DP_ERR_OK || error != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("Periodical smart refresh of sudo rules "
- "failed [dp_error: %d] ([%d]: %s)\n",
- dp_error, error, strerror(error)));
+ "failed [dp_error: %d] ([%d]: %s)\n",
+ dp_error, error, strerror(error)));
goto schedule;
}