diff options
author | Michal Židek <mzidek@redhat.com> | 2016-03-16 16:38:34 +0100 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-03-23 22:15:57 +0100 |
commit | dad416a9b0095e1c423b7da65db7c636fa69e614 (patch) | |
tree | f7d2bcd3cb7c5b1fc09fcaefe147a47ea8b3bd07 /src/providers | |
parent | 7c30eade4ae794ed809845f2ef70dda849b6e7c9 (diff) | |
download | sssd-dad416a9b0095e1c423b7da65db7c636fa69e614.tar.gz sssd-dad416a9b0095e1c423b7da65db7c636fa69e614.tar.xz sssd-dad416a9b0095e1c423b7da65db7c636fa69e614.zip |
GPO: log specific ini parse error messages
We should log error messages generated by
libini if there are problems with parsing
gpo files.
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/providers')
-rw-r--r-- | src/providers/ad/ad_gpo.c | 21 | ||||
-rw-r--r-- | src/providers/ad/ad_gpo_child.c | 21 |
2 files changed, 40 insertions, 2 deletions
diff --git a/src/providers/ad/ad_gpo.c b/src/providers/ad/ad_gpo.c index 78ff723a1..3bd9ab037 100644 --- a/src/providers/ad/ad_gpo.c +++ b/src/providers/ad/ad_gpo.c @@ -1138,8 +1138,27 @@ ad_gpo_store_policy_settings(struct sss_domain_info *domain, ret = ini_config_parse(file_ctx, INI_STOP_ON_NONE, 0, 0, ini_config); if (ret != 0) { + int lret; + char **errors; + DEBUG(SSSDBG_CRIT_FAILURE, - "ini_config_parse failed [%d][%s]\n", ret, strerror(ret)); + "[%s]: ini_config_parse failed [%d][%s]\n", + filename, ret, strerror(ret)); + + /* Now get specific errors if there are any */ + lret = ini_config_get_errors(ini_config, &errors); + if (lret != 0) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Failed to get specific parse error [%d][%s]\n", lret, + strerror(lret)); + goto done; + } + + for (int a = 0; errors[a]; a++) { + DEBUG(SSSDBG_CRIT_FAILURE, "%s\n", errors[a]); + } + ini_config_free_errors(errors); + goto done; } diff --git a/src/providers/ad/ad_gpo_child.c b/src/providers/ad/ad_gpo_child.c index 1b5997164..668af055d 100644 --- a/src/providers/ad/ad_gpo_child.c +++ b/src/providers/ad/ad_gpo_child.c @@ -463,8 +463,27 @@ ad_gpo_parse_ini_file(const char *smb_path, ret = ini_config_parse(file_ctx, INI_STOP_ON_NONE, 0, 0, ini_config); if (ret != 0) { + int lret; + char **errors; + DEBUG(SSSDBG_CRIT_FAILURE, - "ini_config_parse failed [%d][%s]\n", ret, strerror(ret)); + "[%s]: ini_config_parse failed [%d][%s]\n", + ini_filename, ret, strerror(ret)); + + /* Now get specific errors if there are any */ + lret = ini_config_get_errors(ini_config, &errors); + if (lret != 0) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Failed to get specific parse error [%d][%s]\n", lret, + strerror(lret)); + goto done; + } + + for (int i = 0; errors[i]; i++) { + DEBUG(SSSDBG_CRIT_FAILURE, "%s\n", errors[i]); + } + ini_config_free_errors(errors); + goto done; } |