diff options
author | Cove Schneider <cove@ilm.com> | 2013-05-31 23:56:48 -0700 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-11-12 10:50:46 +0100 |
commit | 407123c67114bf010cdad4418f291f9fb3762f4a (patch) | |
tree | 7b2e1ee6226c1447479dda04d67db517a410ded3 /src/providers/ldap/sdap_autofs.c | |
parent | 41402c003fef1e6768f5468dd7ea2e20e16bfa19 (diff) | |
download | sssd-407123c67114bf010cdad4418f291f9fb3762f4a.tar.gz sssd-407123c67114bf010cdad4418f291f9fb3762f4a.tar.xz sssd-407123c67114bf010cdad4418f291f9fb3762f4a.zip |
Add ldap_autofs_map_master_name option
Diffstat (limited to 'src/providers/ldap/sdap_autofs.c')
-rw-r--r-- | src/providers/ldap/sdap_autofs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/providers/ldap/sdap_autofs.c b/src/providers/ldap/sdap_autofs.c index e7947c9b2..c0bf3b689 100644 --- a/src/providers/ldap/sdap_autofs.c +++ b/src/providers/ldap/sdap_autofs.c @@ -30,6 +30,7 @@ #include "providers/ldap/sdap.h" #include "providers/ldap/sdap_async.h" #include "providers/dp_backend.h" +#include "providers/data_provider.h" #include "db/sysdb_autofs.h" #include "util/util.h" @@ -82,6 +83,7 @@ void sdap_autofs_handler(struct be_req *be_req) struct sdap_id_ctx *id_ctx; struct be_autofs_req *autofs_req; struct tevent_req *req; + const char *master_map; int ret = EOK; DEBUG(SSSDBG_TRACE_INTERNAL, ("sdap autofs handler called\n")); @@ -98,6 +100,16 @@ void sdap_autofs_handler(struct be_req *be_req) DEBUG(SSSDBG_FUNC_DATA, ("Requested refresh for: %s\n", autofs_req->mapname ? autofs_req->mapname : "<ALL>\n")); + if (autofs_req->mapname != NULL) { + master_map = dp_opt_get_string(id_ctx->opts->basic, + SDAP_AUTOFS_MAP_MASTER_NAME); + if (strcmp(master_map, autofs_req->mapname) == 0) { + autofs_req->invalidate = true; + DEBUG(SSSDBG_FUNC_DATA, ("Refresh of automount master map triggered: %s\n", + autofs_req->mapname)); + } + } + if (autofs_req->invalidate) { ret = sysdb_invalidate_autofs_maps(id_ctx->be->domain->sysdb, id_ctx->be->domain); |