The Samba-Bugzilla – Attachment 8751 Details for
Bug 9779
add UPN enumeration to passdb internal API
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Add support to enumerate UPN suffixes
0003-PASSDB-add-support-to-set-and-enumerate-UPN-suffixes.patch (text/plain), 5.74 KB, created by
Alexander Bokovoy
on 2013-04-10 08:28:34 UTC
(
hide
)
Description:
Add support to enumerate UPN suffixes
Filename:
MIME Type:
Creator:
Alexander Bokovoy
Created:
2013-04-10 08:28:34 UTC
Size:
5.74 KB
patch
obsolete
>From 67e4a28c0b14259f0f25a292f91924f82c84bae1 Mon Sep 17 00:00:00 2001 >From: Alexander Bokovoy <ab@samba.org> >Date: Wed, 3 Apr 2013 16:37:00 +0300 >Subject: [PATCH 3/4] PASSDB: add support to set and enumerate UPN suffixes > associated with our forest > >Samba PDC may manage a forest containing DNS domains in addition to the primary one. >Information about them is advertised via netr_DsRGetForestTrustInformation when >trusted_domain_name is NULL, according to MS-NRPC and MS-LSAD, and >via netr_GetForestTrustInformation. > >This changeset only expands PASSDB API; how suffixes are maintained is left >to specific PDB modules. Set function is added so that suffixes could be >managed through 'net' and other Samba utilities, if possible. > >One possible implementation is available for ipasam module in FreeIPA: >http://git.fedorahosted.org/cgit/freeipa.git/commit/?id=cc56723151c9ebf58d891e85617319d861af14a4 > >Reviewed-by: Andreas Schneider <asn@samba.org> >--- > source3/include/passdb.h | 18 +++++++++++++++++- > source3/passdb/ABI/pdb-0.sigs | 2 ++ > source3/passdb/pdb_interface.c | 36 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 55 insertions(+), 1 deletion(-) > >diff --git a/source3/include/passdb.h b/source3/include/passdb.h >index 908631d..5e5a7bf 100644 >--- a/source3/include/passdb.h >+++ b/source3/include/passdb.h >@@ -412,9 +412,10 @@ enum pdb_policy_type { > * Changed to 18, pdb_rid_algorithm -> pdb_capabilities > * Changed to 19, removed uid_to_rid > * Changed to 20, pdb_secret calls >+ * Changed to 21, set/enum_upn_suffixes. AB. > */ > >-#define PASSDB_INTERFACE_VERSION 20 >+#define PASSDB_INTERFACE_VERSION 21 > > struct pdb_methods > { >@@ -614,6 +615,15 @@ struct pdb_methods > NTSTATUS (*delete_secret)(struct pdb_methods *methods, > const char *secret_name); > >+ NTSTATUS (*enum_upn_suffixes)(struct pdb_methods *methods, >+ TALLOC_CTX *mem_ctx, >+ uint32_t *num_suffixes, >+ char ***suffixes); >+ >+ NTSTATUS (*set_upn_suffixes)(struct pdb_methods *methods, >+ uint32_t num_suffixes, >+ const char **suffixes); >+ > void *private_data; /* Private data of some kind */ > > void (*free_private_data)(void **); >@@ -911,6 +921,12 @@ NTSTATUS pdb_delete_secret(const char *secret_name); > bool pdb_sid_to_id_unix_users_and_groups(const struct dom_sid *sid, > struct unixid *id); > >+NTSTATUS pdb_enum_upn_suffixes(TALLOC_CTX *mem_ctx, >+ uint32_t *num_suffixes, >+ char ***suffixes); >+ >+NTSTATUS pdb_set_upn_suffixes(uint32_t num_suffixes, >+ const char **suffixes); > > /* The following definitions come from passdb/pdb_util.c */ > >diff --git a/source3/passdb/ABI/pdb-0.sigs b/source3/passdb/ABI/pdb-0.sigs >index 4108b9a..51810ef 100644 >--- a/source3/passdb/ABI/pdb-0.sigs >+++ b/source3/passdb/ABI/pdb-0.sigs >@@ -112,6 +112,7 @@ pdb_enum_group_members: NTSTATUS (TALLOC_CTX *, const struct dom_sid *, uint32_t > pdb_enum_group_memberships: NTSTATUS (TALLOC_CTX *, struct samu *, struct dom_sid **, gid_t **, uint32_t *) > pdb_enum_trusted_domains: NTSTATUS (TALLOC_CTX *, uint32_t *, struct pdb_trusted_domain ***) > pdb_enum_trusteddoms: NTSTATUS (TALLOC_CTX *, uint32_t *, struct trustdom_info ***) >+pdb_enum_upn_suffixes: NTSTATUS (TALLOC_CTX *, uint32_t *, char ***) > pdb_find_backend_entry: struct pdb_init_function_entry *(const char *) > pdb_get_account_policy: bool (enum pdb_policy_type, uint32_t *) > pdb_get_acct_ctrl: uint32_t (const struct samu *) >@@ -230,6 +231,7 @@ pdb_set_trusted_domain: NTSTATUS (const char *, const struct pdb_trusted_domain > pdb_set_trusteddom_pw: bool (const char *, const char *, const struct dom_sid *) > pdb_set_unix_primary_group: NTSTATUS (TALLOC_CTX *, struct samu *) > pdb_set_unknown_6: bool (struct samu *, uint32_t, enum pdb_value_state) >+pdb_set_upn_suffixes: NTSTATUS (uint32_t, const char **) > pdb_set_user_sid: bool (struct samu *, const struct dom_sid *, enum pdb_value_state) > pdb_set_user_sid_from_rid: bool (struct samu *, uint32_t, enum pdb_value_state) > pdb_set_user_sid_from_string: bool (struct samu *, const char *, enum pdb_value_state) >diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c >index 775f8a3..36dde6f 100644 >--- a/source3/passdb/pdb_interface.c >+++ b/source3/passdb/pdb_interface.c >@@ -2340,6 +2340,39 @@ static struct pdb_domain_info *pdb_default_get_domain_info( > return NULL; > } > >+/***************************************************************** >+ UPN suffixes >+ *****************************************************************/ >+static NTSTATUS pdb_default_enum_upn_suffixes(struct pdb_methods *pdb, >+ TALLOC_CTX *mem_ctx, >+ uint32_t *num_suffixes, >+ char ***suffixes) >+{ >+ return NT_STATUS_NOT_IMPLEMENTED; >+} >+ >+static NTSTATUS pdb_default_set_upn_suffixes(struct pdb_methods *pdb, >+ uint32_t num_suffixes, >+ const char **suffixes) >+{ >+ return NT_STATUS_NOT_IMPLEMENTED; >+} >+ >+NTSTATUS pdb_enum_upn_suffixes(TALLOC_CTX *mem_ctx, >+ uint32_t *num_suffixes, >+ char ***suffixes) >+{ >+ struct pdb_methods *pdb = pdb_get_methods(); >+ return pdb->enum_upn_suffixes(pdb, mem_ctx, num_suffixes, suffixes); >+} >+ >+NTSTATUS pdb_set_upn_suffixes(uint32_t num_suffixes, >+ const char **suffixes) >+{ >+ struct pdb_methods *pdb = pdb_get_methods(); >+ return pdb->set_upn_suffixes(pdb, num_suffixes, suffixes); >+} >+ > /******************************************************************* > secret methods > *******************************************************************/ >@@ -2487,5 +2520,8 @@ NTSTATUS make_pdb_method( struct pdb_methods **methods ) > (*methods)->set_secret = pdb_default_set_secret; > (*methods)->delete_secret = pdb_default_delete_secret; > >+ (*methods)->enum_upn_suffixes = pdb_default_enum_upn_suffixes; >+ (*methods)->set_upn_suffixes = pdb_default_set_upn_suffixes; >+ > return NT_STATUS_OK; > } >-- >1.8.1.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
asn
:
review+
Actions:
View
Attachments on
bug 9779
:
8749
|
8750
| 8751 |
8752