summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/sss_cache.c72
1 files changed, 37 insertions, 35 deletions
diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c
index 9b91f982..84a53ddf 100644
--- a/src/tools/sss_cache.c
+++ b/src/tools/sss_cache.c
@@ -99,7 +99,7 @@ int main(int argc, const char *argv[])
struct cache_tool_ctx *tctx = NULL;
struct sysdb_ctx *sysdb;
int i;
- bool skipped;
+ bool skipped = true;
FILE *clear_mc_flag;
ret = init_context(argc, argv, &tctx);
@@ -117,7 +117,6 @@ int main(int argc, const char *argv[])
goto done;
}
- skipped = true;
skipped &= !invalidate_entries(tctx, sysdb, TYPE_USER,
tctx->user_filter, tctx->user_name);
skipped &= !invalidate_entries(tctx, sysdb, TYPE_GROUP,
@@ -137,36 +136,36 @@ int main(int argc, const char *argv[])
DEBUG(SSSDBG_CRIT_FAILURE, ("Failed to cancel transaction\n"));
}
}
+ }
- if (skipped == true) {
- ERROR("No cache object matched the specified search\n");
- ret = ENOENT;
+ if (skipped == true) {
+ ERROR("No cache object matched the specified search\n");
+ ret = ENOENT;
+ goto done;
+ } else {
+ /*Local cache changed -> signal monitor to invalidate fastcache */
+ clear_mc_flag = fopen(SSS_NSS_MCACHE_DIR"/"CLEAR_MC_FLAG, "w");
+ if (clear_mc_flag == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE,
+ ("Failed to create clear_mc_flag file. "
+ "Memory cache will not be cleared.\n"));
goto done;
- } else {
- /*Local cache changed -> signal monitor to invalidate fastcache */
- clear_mc_flag = fopen(SSS_NSS_MCACHE_DIR"/"CLEAR_MC_FLAG, "w");
- if (clear_mc_flag == NULL) {
- DEBUG(SSSDBG_CRIT_FAILURE,
- ("Failed to create clear_mc_flag file. "
- "Memory cache will not be cleared.\n"));
- goto done;
- }
- ret = fclose(clear_mc_flag);
- if (ret != 0) {
- ret = errno;
- DEBUG(SSSDBG_CRIT_FAILURE,
- ("Unable to close file descriptor: %s\n",
- strerror(ret)));
- goto done;
- }
+ }
+ ret = fclose(clear_mc_flag);
+ if (ret != 0) {
+ ret = errno;
+ DEBUG(SSSDBG_CRIT_FAILURE,
+ ("Unable to close file descriptor: %s\n",
+ strerror(ret)));
+ goto done;
+ }
- DEBUG(SSSDBG_TRACE_FUNC, ("Sending SIGHUP to monitor.\n"));
- ret = signal_sssd(SIGHUP);
- if (ret != EOK) {
- DEBUG(SSSDBG_CRIT_FAILURE,
- ("Failed to send SIGHUP to monitor.\n"));
- goto done;
- }
+ DEBUG(SSSDBG_TRACE_FUNC, ("Sending SIGHUP to monitor.\n"));
+ ret = signal_sssd(SIGHUP);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_CRIT_FAILURE,
+ ("Failed to send SIGHUP to monitor.\n"));
+ goto done;
}
}
@@ -187,22 +186,25 @@ bool invalidate_entries(TALLOC_CTX *ctx, struct sysdb_ctx *sysdb,
int i;
const char *c_name;
bool iret;
+ struct sss_domain_info *dinfo;
if (!filter) return false;
+ dinfo = sysdb_ctx_get_domain(sysdb);
+
type_rec = entry_types[entry_type];
ret = type_rec.search_fn(ctx, sysdb, filter, attrs,
&msg_count, &msgs);
if (ret != EOK) {
DEBUG(SSSDBG_MINOR_FAILURE,
- ("Searching for %s with filter %s failed\n",
- type_rec.type_string, filter));
+ ("Searching for %s in domain %s with filter %s failed\n",
+ type_rec.type_string, dinfo->name, filter));
if (name) {
- ERROR("No such %1$s named %2$s, skipping\n",
- type_rec.type_string, name);
+ ERROR("No such %1$s named %2$s in domain %3$s, skipping\n",
+ type_rec.type_string, name, dinfo->name);
} else {
- ERROR("No objects of type %1$s in the cache, skipping\n",
- type_rec.type_string);
+ ERROR("No objects of type %1$s from domain %2$s in the cache, "
+ "skipping\n", type_rec.type_string, dinfo->name);
}
return false;
}