<div dir="ltr">(Including once more as an attachment, it looks like something may have wrapped the lines when I had the patch in the body of the message.)</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 28, 2013 at 4:29 PM, C. S. <span dir="ltr">&lt;<a href="mailto:csleclish@gmail.com" target="_blank">csleclish@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jakub,<br><br>Thanks for the feedback! Very helpful. Looks like I dropped the LDAP map changes during a merge, that is now included. And I&#39;ve removed the strdup(), whoops! ;-)<br>
<br>cs<br><br>From 33689c2565ec71d10eefe081fb3c502d1944d89e Mon Sep 17 00:00:00 2001<br>
From: Cove Schneider &lt;<a href="mailto:cove@ilm.com" target="_blank">cove@ilm.com</a>&gt;<br>Date: Tue, 28 May 2013 16:15:11 -0700<br>Subject: [PATCH] Add ldap_autofs_map_master_name option<br><br>---<br> src/config/etc/sssd.api.d/sssd-ipa.conf  |  1 +<br>

 src/config/etc/sssd.api.d/sssd-ldap.conf |  1 +<br> src/db/sysdb_autofs.h                    |  5 +++--<br> src/man/sssd-ldap.5.xml                  | 13 +++++++++++++<br> src/providers/ad/ad_opts.h               |  1 +<br>

 src/providers/data_provider_be.c         |  7 -------<br> src/providers/ipa/ipa_opts.h             |  3 +++<br> src/providers/ldap/ldap_common.c         | 15 +++++++++++++++<br> src/providers/ldap/ldap_common.h         |  2 ++<br>

 src/providers/ldap/ldap_opts.h           |  5 +++++<br> src/providers/ldap/sdap.h                |  3 +++<br> src/providers/ldap/sdap_autofs.c         | 12 ++++++++++++<br> 12 files changed, 59 insertions(+), 9 deletions(-)<br>

<br>diff --git a/src/config/etc/sssd.api.d/sssd-ipa.conf b/src/config/etc/sssd.api.d/sssd-ipa.conf<br>index e6f1bb0a88dd72a5f7bfcb269fa4736e7efd947c..5105a40a629d87a62a21cb6933a758943c1688cc 100644<br>--- a/src/config/etc/sssd.api.d/sssd-ipa.conf<br>

+++ b/src/config/etc/sssd.api.d/sssd-ipa.conf<br>@@ -162,6 +162,7 @@ ipa_hostgroup_uuid = str, None, false<br><br> [provider/ipa/autofs]<br> ipa_automount_location = str, None, false<br>+ldap_autofs_map_master_name = str, None, false<br>

 ldap_autofs_map_object_class = str, None, false<br> ldap_autofs_map_name = str, None, false<br> ldap_autofs_entry_object_class = str, None, false<br>diff --git a/src/config/etc/sssd.api.d/sssd-ldap.conf b/src/config/etc/sssd.api.d/sssd-ldap.conf<br>

index 14e979da3413fe575e83b9a508c6cd8029d2bfba..aa521567f3f657885ba8978fdd118174b0ff9b4f 100644<br>--- a/src/config/etc/sssd.api.d/sssd-ldap.conf<br>+++ b/src/config/etc/sssd.api.d/sssd-ldap.conf<br>@@ -153,6 +153,7 @@ ldap_sudorule_notafter = str, None, false<br>

 ldap_sudorule_order = str, None, false<br><br> [provider/ldap/autofs]<br>+ldap_autofs_map_master_name = str, None, false<br> ldap_autofs_map_object_class = str, None, false<br> ldap_autofs_map_name = str, None, false<br>

 ldap_autofs_entry_object_class = str, None, false<br>diff --git a/src/db/sysdb_autofs.h b/src/db/sysdb_autofs.h<br>index e3528ce4e6bd2c8b594c80828cfb02a9a7ce7923..97edaea03179d89d37073df41ca95cd544a53a29 100644<br>--- a/src/db/sysdb_autofs.h<br>

+++ b/src/db/sysdb_autofs.h<br>@@ -28,8 +28,9 @@<br> #define AUTOFS_MAP_SUBDIR   &quot;autofsmaps&quot;<br> #define AUTOFS_ENTRY_SUBDIR &quot;autofsentries&quot;<br><br>-#define SYSDB_AUTOFS_MAP_OC     &quot;automountMap&quot;<br>

-#define SYSDB_AUTOFS_MAP_NAME   &quot;automountMapName&quot;<br>+#define SYSDB_AUTOFS_MAP_MASTER_NAME   &quot;automountMapMasterName&quot;<br>+#define SYSDB_AUTOFS_MAP_OC            &quot;automountMap&quot;<br>+#define SYSDB_AUTOFS_MAP_NAME          &quot;automountMapName&quot;<br>

<br> #define SYSDB_AUTOFS_ENTRY_OC     &quot;automount&quot;<br> #define SYSDB_AUTOFS_ENTRY_KEY    &quot;automountKey&quot;<br>diff --git a/src/man/sssd-ldap.5.xml b/src/man/sssd-ldap.5.xml<br>index 37df5ec1b2e0b150b407f5e3e39db21860055580..b06286742577b84c347701ab0cd56c4e661a44c8 100644<br>

--- a/src/man/sssd-ldap.5.xml<br>+++ b/src/man/sssd-ldap.5.xml<br>@@ -2169,6 +2169,19 @@ ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com<br>         &lt;para&gt;<br>             &lt;variablelist&gt;<br>

                 &lt;varlistentry&gt;<br>+                    &lt;term&gt;ldap_autofs_map_master_name (string)&lt;/term&gt;<br>+                    &lt;listitem&gt;<br>+                        &lt;para&gt;<br>+                            The name of the automount master map in LDAP.<br>

+                        &lt;/para&gt;<br>+                        &lt;para&gt;<br>+                            Default: auto.master<br>+                        &lt;/para&gt;<br>+                    &lt;/listitem&gt;<br>
+                &lt;/varlistentry&gt;<br>
+            &lt;/variablelist&gt;<br>+            &lt;variablelist&gt;<br>+                &lt;varlistentry&gt;<br>                     &lt;term&gt;ldap_autofs_map_object_class (string)&lt;/term&gt;<br>                     &lt;listitem&gt;<br>

                         &lt;para&gt;<br>diff --git a/src/providers/ad/ad_opts.h b/src/providers/ad/ad_opts.h<br>index 218614dca82ab1b5a2d54291ead3d9719a4c7e2a..8ce0c475265a8602edea72ecdff18f77f8ecab75 100644<br>--- a/src/providers/ad/ad_opts.h<br>

+++ b/src/providers/ad/ad_opts.h<br>@@ -65,6 +65,7 @@ struct dp_option ad_def_ldap_opts[] = {<br>     { &quot;ldap_sudo_include_netgroups&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>     { &quot;ldap_sudo_include_regexp&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>

     { &quot;ldap_autofs_search_base&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>+    { &quot;ldap_autofs_map_master_name&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>     { &quot;ldap_schema&quot;, DP_OPT_STRING, { &quot;ad&quot; }, NULL_STRING },<br>

     { &quot;ldap_offline_timeout&quot;, DP_OPT_NUMBER, { .number = 60 }, NULL_NUMBER },<br>     { &quot;ldap_force_upper_case_realm&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_FALSE },<br>diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c<br>

index cd6715680eb4871806cc5148cecd2e118885a105..11e8979c2afe4bbcad19ef77b241843463e02c58 100644<br>--- a/src/providers/data_provider_be.c<br>+++ b/src/providers/data_provider_be.c<br>@@ -1643,13 +1643,6 @@ static int be_autofs_handler(DBusMessage *message, struct sbus_connection *conn)<br>

         goto done;<br>     }<br><br>-    /* If a request for auto.master comes in, the automounter deamon<br>-     * has been reloaded. Expire all autofs maps to force reload<br>-     */<br>-    if (strcmp(be_autofs_req-&gt;mapname, &quot;auto.master&quot;) == 0) {<br>

-        be_autofs_req-&gt;invalidate = true;<br>-    }<br>-<br>     be_req-&gt;req_data = be_autofs_req;<br><br>     if (!be_cli-&gt;bectx-&gt;bet_info[BET_AUTOFS].bet_ops) {<br>diff --git a/src/providers/ipa/ipa_opts.h b/src/providers/ipa/ipa_opts.h<br>

index 4dfa72db430b1d3dfb528cc425c7156baf5ebe47..9a99dcdb782ea3cb070f877362a0ab2b7d80be5c 100644<br>--- a/src/providers/ipa/ipa_opts.h<br>+++ b/src/providers/ipa/ipa_opts.h<br>@@ -89,6 +89,7 @@ struct dp_option ipa_def_ldap_opts[] = {<br>

     { &quot;ldap_sudo_include_netgroups&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>     { &quot;ldap_sudo_include_regexp&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>     { &quot;ldap_autofs_search_base&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>

+    { &quot;ldap_autofs_map_master_name&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>     { &quot;ldap_schema&quot;, DP_OPT_STRING, { &quot;ipa_v1&quot; }, NULL_STRING },<br>     { &quot;ldap_offline_timeout&quot;, DP_OPT_NUMBER, { .number = 60 }, NULL_NUMBER },<br>

     { &quot;ldap_force_upper_case_realm&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>@@ -287,12 +288,14 @@ struct sdap_attr_map ipa_service_map[] = {<br> };<br><br> struct sdap_attr_map ipa_autofs_mobject_map[] = {<br>

+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>     { &quot;ldap_autofs_map_object_class&quot;, &quot;automountMap&quot;, SYSDB_AUTOFS_MAP_OC, NULL },<br>

     { &quot;ldap_autofs_map_name&quot;, &quot;automountMapName&quot;, SYSDB_AUTOFS_MAP_NAME, NULL },<br>     SDAP_ATTR_MAP_TERMINATOR<br> };<br><br> struct sdap_attr_map ipa_autofs_entry_map[] = {<br>+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>

     { &quot;ldap_autofs_entry_object_class&quot;, &quot;automount&quot;, SYSDB_AUTOFS_ENTRY_OC, NULL },<br>     { &quot;ldap_autofs_entry_key&quot;, &quot;automountKey&quot;, SYSDB_AUTOFS_ENTRY_KEY, NULL },<br>     { &quot;ldap_autofs_entry_value&quot;, &quot;automountInformation&quot;, SYSDB_AUTOFS_ENTRY_VALUE, NULL },<br>

diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c<br>index acb24b190157efe06967963ad05014cf9017db7f..0c70d44b78eaa45f27e6ae0ee29c96404ca6df0b 100644<br>--- a/src/providers/ldap/ldap_common.c<br>

+++ b/src/providers/ldap/ldap_common.c<br>@@ -407,10 +407,25 @@ int ldap_get_autofs_options(TALLOC_CTX *memctx,<br>                             struct sdap_options *opts)<br> {<br>     const char *search_base;<br>+    const char *master_map;<br>

     struct sdap_attr_map *default_entry_map;<br>     struct sdap_attr_map *default_mobject_map;<br>     int ret;<br><br>+    /* automount master map name */<br>+    master_map = dp_opt_get_string(opts-&gt;basic, SDAP_AUTOFS_MAP_MASTER_NAME);<br>

+    if (master_map == NULL) {<br>+        ret = dp_opt_set_string(opts-&gt;basic, SDAP_AUTOFS_MAP_MASTER_NAME,<br>+            AUTOFS_MAP_MASTER_NAME);<br>+        if (ret != EOK) {<br>+            DEBUG(SSSDBG_OP_FAILURE, (&quot;Could not set autofs master map name&quot;<br>

+                  &quot; to default value\n&quot;));<br>+            return ret;<br>+        }<br>+        master_map = dp_opt_get_string(opts-&gt;basic, SDAP_AUTOFS_MAP_MASTER_NAME);<br>+    }<br>+    DEBUG(SSSDBG_FUNC_DATA, (&quot;Option ldap_autofs_map_master_name set to %s\n&quot;, master_map));<br>

+<br>     /* search base */<br>     search_base = dp_opt_get_string(opts-&gt;basic, SDAP_SEARCH_BASE);<br>     if (search_base != NULL) {<br>diff --git a/src/providers/ldap/ldap_common.h b/src/providers/ldap/ldap_common.h<br>

index 2d17b755808e58831b458bcc86a50eb74b1f1057..ec48db68a457b9cf4e490b649eaefd0573ad8e71 100644<br>--- a/src/providers/ldap/ldap_common.h<br>+++ b/src/providers/ldap/ldap_common.h<br>@@ -39,6 +39,8 @@<br> #define LDAP_SSL_URI &quot;ldaps://&quot;<br>

 #define LDAP_LDAPI_URI &quot;ldapi://&quot;<br><br>+#define AUTOFS_MAP_MASTER_NAME &quot;auto.master&quot;<br>+<br> /* a fd the child process would log into */<br> extern int ldap_child_debug_fd;<br><br>diff --git a/src/providers/ldap/ldap_opts.h b/src/providers/ldap/ldap_opts.h<br>

index 807716c18244ae70759d9b2eff7e40fd3c634fb2..f4b572e687ce0227f124217f9f2b43b1c801e227 100644<br>--- a/src/providers/ldap/ldap_opts.h<br>+++ b/src/providers/ldap/ldap_opts.h<br>@@ -56,6 +56,7 @@ struct dp_option default_basic_opts[] = {<br>

     { &quot;ldap_sudo_include_netgroups&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>     { &quot;ldap_sudo_include_regexp&quot;, DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },<br>     { &quot;ldap_autofs_search_base&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>

+    { &quot;ldap_autofs_map_master_name&quot;, DP_OPT_STRING, NULL_STRING, NULL_STRING },<br>     { &quot;ldap_schema&quot;, DP_OPT_STRING, { &quot;rfc2307&quot; }, NULL_STRING },<br>     { &quot;ldap_offline_timeout&quot;, DP_OPT_NUMBER, { .number = 60 }, NULL_NUMBER },<br>

     { &quot;ldap_force_upper_case_realm&quot;, DP_OPT_BOOL, BOOL_FALSE, BOOL_FALSE },<br>@@ -330,12 +331,14 @@ struct sdap_attr_map service_map[] = {<br> };<br><br> struct sdap_attr_map rfc2307_autofs_mobject_map[] = {<br>

+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>     { &quot;ldap_autofs_map_object_class&quot;, &quot;automountMap&quot;, SYSDB_AUTOFS_MAP_OC, NULL },<br>

     { &quot;ldap_autofs_map_name&quot;, &quot;ou&quot;, SYSDB_AUTOFS_MAP_NAME, NULL },<br>     SDAP_ATTR_MAP_TERMINATOR<br> };<br><br> struct sdap_attr_map rfc2307_autofs_entry_map[] = {<br>+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>

     { &quot;ldap_autofs_entry_object_class&quot;, &quot;automount&quot;, SYSDB_AUTOFS_ENTRY_OC, NULL },<br>     { &quot;ldap_autofs_entry_key&quot;, &quot;cn&quot;, SYSDB_AUTOFS_ENTRY_KEY, NULL },<br>     { &quot;ldap_autofs_entry_value&quot;, &quot;automountInformation&quot;, SYSDB_AUTOFS_ENTRY_VALUE, NULL },<br>

@@ -343,12 +346,14 @@ struct sdap_attr_map rfc2307_autofs_entry_map[] = {<br> };<br><br> struct sdap_attr_map rfc2307bis_autofs_mobject_map[] = {<br>+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>

     { &quot;ldap_autofs_map_object_class&quot;, &quot;automountMap&quot;, SYSDB_AUTOFS_MAP_OC, NULL },<br>     { &quot;ldap_autofs_map_name&quot;, &quot;automountMapName&quot;, SYSDB_AUTOFS_MAP_NAME, NULL },<br>     SDAP_ATTR_MAP_TERMINATOR<br>

 };<br><br> struct sdap_attr_map rfc2307bis_autofs_entry_map[] = {<br>+    { &quot;ldap_autofs_map_master_name&quot;, &quot;automountMapMasterName&quot;, SYSDB_AUTOFS_MAP_MASTER_NAME, NULL },<br>     { &quot;ldap_autofs_entry_object_class&quot;, &quot;automount&quot;, SYSDB_AUTOFS_ENTRY_OC, NULL },<br>

     { &quot;ldap_autofs_entry_key&quot;, &quot;automountKey&quot;, SYSDB_AUTOFS_ENTRY_KEY, NULL },<br>     { &quot;ldap_autofs_entry_value&quot;, &quot;automountInformation&quot;, SYSDB_AUTOFS_ENTRY_VALUE, NULL },<br>diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h<br>

index 162250fff76295807cce0779bebdf88577ed755c..e56690a10907ede5205ddb463ff6d4fc226145b3 100644<br>--- a/src/providers/ldap/sdap.h<br>+++ b/src/providers/ldap/sdap.h<br>@@ -164,6 +164,7 @@ enum sdap_basic_opt {<br>     SDAP_SUDO_INCLUDE_NETGROUPS,<br>

     SDAP_SUDO_INCLUDE_REGEXP,<br>     SDAP_AUTOFS_SEARCH_BASE,<br>+    SDAP_AUTOFS_MAP_MASTER_NAME,<br>     SDAP_SCHEMA,<br>     SDAP_OFFLINE_TIMEOUT,<br>     SDAP_FORCE_UPPER_CASE_REALM,<br>@@ -327,6 +328,7 @@ enum sdap_service_attrs {<br>

 };<br><br> enum sdap_autofs_map_attrs {<br>+    SDAP_AT_AUTOFS_MAP_MASTER_NAME,<br>     SDAP_OC_AUTOFS_MAP,<br>     SDAP_AT_AUTOFS_MAP_NAME,<br><br>@@ -334,6 +336,7 @@ enum sdap_autofs_map_attrs {<br> };<br><br> enum sdap_autofs_entry_attrs {<br>

+    _SDAP_AT_AUTOFS_MAP_MASTER_NAME,<br>     SDAP_OC_AUTOFS_ENTRY,<br>     SDAP_AT_AUTOFS_ENTRY_KEY,<br>     SDAP_AT_AUTOFS_ENTRY_VALUE,<br>diff --git a/src/providers/ldap/sdap_autofs.c b/src/providers/ldap/sdap_autofs.c<br>

index 0bb211aa3e3ae9ec822e117f8febf8378bb09f79..e4ef7257bd251fdf7cc672c7f96bb67e3bc4ff32 100644<br>--- a/src/providers/ldap/sdap_autofs.c<br>+++ b/src/providers/ldap/sdap_autofs.c<br>@@ -30,6 +30,7 @@<br> #include &quot;providers/ldap/sdap.h&quot;<br>

 #include &quot;providers/ldap/sdap_async.h&quot;<br> #include &quot;providers/dp_backend.h&quot;<br>+#include &quot;providers/data_provider.h&quot;<br> #include &quot;db/sysdb_autofs.h&quot;<br> #include &quot;util/util.h&quot;<br>

<br>@@ -82,6 +83,7 @@ void sdap_autofs_handler(struct be_req *be_req)<br>     struct sdap_id_ctx *id_ctx;<br>     struct be_autofs_req *autofs_req;<br>     struct tevent_req *req;<br>+    const char *master_map;<br>     int ret = EOK;<br>

<br>     DEBUG(SSSDBG_TRACE_INTERNAL, (&quot;sdap autofs handler called\n&quot;));<br>@@ -98,6 +100,16 @@ void sdap_autofs_handler(struct be_req *be_req)<br>     DEBUG(SSSDBG_FUNC_DATA, (&quot;Requested refresh for: %s\n&quot;,<br>

           autofs_req-&gt;mapname ? autofs_req-&gt;mapname : &quot;&lt;ALL&gt;\n&quot;));<br><br>+    if (autofs_req-&gt;mapname != NULL) {<br>+        master_map = dp_opt_get_string(id_ctx-&gt;opts-&gt;basic,<br>+                                       SDAP_AUTOFS_MAP_MASTER_NAME);<br>

+        if (strcmp(master_map, autofs_req-&gt;mapname) == 0) {<br>+            autofs_req-&gt;invalidate = true;<br>+            DEBUG(SSSDBG_FUNC_DATA, (&quot;Refresh of automount master map triggered: %s\n&quot;,<br>+                  autofs_req-&gt;mapname));<br>

+        }<br>+    }<br>+<br>     if (autofs_req-&gt;invalidate) {<br>         ret = sysdb_invalidate_autofs_maps(id_ctx-&gt;be-&gt;domain-&gt;sysdb,<br>                                            id_ctx-&gt;be-&gt;domain);<br>

--<br>1.8.1.4<div><div class="h5"><br><br><br><br><br>On Mon, May 27, 2013 at 8:28 AM, Jakub Hrozek &lt;<a href="mailto:jhrozek@redhat.com" target="_blank">jhrozek@redhat.com</a>&gt; wrote:<br>&gt;<br>&gt; On Fri, May 24, 2013 at 04:41:13PM -0700, C. S. wrote:<br>

&gt; &gt; Add ldap_autofs_map_master_name option so that the auto master map name<br>&gt; &gt; change be changed from the default auto.master.<br>&gt;<br>&gt; Hi Cove,<br>&gt;<br>&gt; this quite a good patch, thank you very much for the contribution.<br>

&gt;<br>&gt; I haven&#39;t done much testing yet, but I only have a couple of small<br>&gt; suggestions before we can apply the patch to master.<br>&gt;<br>&gt; Here is a diff that summarizes them with comments inline:<br>

&gt;<br>&gt; diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c<br>&gt; index 3e019d9..201dcbe 100644<br>&gt; --- a/src/providers/ldap/ldap_common.c<br>&gt; +++ b/src/providers/ldap/ldap_common.c<br>

&gt; @@ -415,7 +415,6 @@ int ldap_get_autofs_options(TALLOC_CTX *memctx,<br>&gt;      /* automount master map name */<br>&gt;      master_map = dp_opt_get_string(opts-&gt;basic, SDAP_AUTOFS_MAP_MASTER_NAME);<br>&gt;      if (master_map == NULL) {<br>

&gt; -        master_map = strdup(AUTOFS_MAP_MASTER_NAME);<br>&gt;<br>&gt; You don&#39;t have to strdup the option value, the call to dp_opt_set_string()<br>&gt; duplicates the value itself and maintains the memory hierarchy as it<br>

&gt; uses the talloc allocator.<br>&gt;<br>&gt;          ret = dp_opt_set_string(opts-&gt;basic, SDAP_AUTOFS_MAP_MASTER_NAME,<br>&gt;              master_map);<br>&gt;          if (ret != EOK) {<br>&gt; diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h<br>

&gt; index e56690a..7d2d3f5 100644<br>&gt; --- a/src/providers/ldap/sdap.h<br>&gt; +++ b/src/providers/ldap/sdap.h<br>&gt;<br>&gt; In the LDAP maps it&#39;s OK to add the new option to the &quot;enum<br>&gt; sdap_basic_opt&quot;. The reason is that SSSD maintains a couple of &quot;option<br>

&gt; maps&quot; for both the LDAP provider as a whole and for the individual<br>&gt; object maps. The LDAP provider maps describe how to get the object from<br>&gt; LDAP (for instance it contains the search bases, timeouts, schema etc.)<br>

&gt; and then the per-object maps describe how to get the individual objects<br>&gt; (what attribute name describes which attribute, for instance &quot;cn&quot;<br>&gt; usually stands for &quot;name).<br>&gt;<br>&gt; I was wondering for a short while whether the new attribute belongs to<br>

&gt; the generic LDAP map or the autofs map object map, but I think this<br>&gt; solution is OK. It describes a mean to get the master map, not any<br>&gt; master map attribute.<br>&gt;<br>&gt; @@ -328,7 +328,6 @@ enum sdap_service_attrs {<br>

&gt;  };<br>&gt;<br>&gt;  enum sdap_autofs_map_attrs {<br>&gt; -    SDAP_AT_AUTOFS_MAP_MASTER_NAME,<br>&gt;      SDAP_OC_AUTOFS_MAP,<br>&gt;      SDAP_AT_AUTOFS_MAP_NAME,<br>&gt;<br>&gt; @@ -336,7 +335,6 @@ enum sdap_autofs_map_attrs {<br>

&gt;  };<br>&gt;<br>&gt;  enum sdap_autofs_entry_attrs {<br>&gt; -    _SDAP_AT_AUTOFS_MAP_MASTER_NAME,<br>&gt;      SDAP_OC_AUTOFS_ENTRY,<br>&gt;      SDAP_AT_AUTOFS_ENTRY_KEY,<br>&gt;      SDAP_AT_AUTOFS_ENTRY_VALUE,<br>

&gt;<br>&gt;<br>&gt; Thank you again for the patch!<br>&gt; _______________________________________________<br>&gt; sssd-devel mailing list<br>&gt; <a href="mailto:sssd-devel@lists.fedorahosted.org" target="_blank">sssd-devel@lists.fedorahosted.org</a><br>

&gt; <a href="https://lists.fedorahosted.org/mailman/listinfo/sssd-devel" target="_blank">https://lists.fedorahosted.org/mailman/listinfo/sssd-devel</a></div></div></div>
</blockquote></div><br></div>