logo_kerberos.gif

Difference between revisions of "Samba4 Port: hdb & ldb Interfaces"

From K5Wiki
Jump to: navigation, search
(Samba's internal ldb library)
(Samba4's hdb_samba4 interface to LDAP)
 
(100 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page aims to reduce the confusion about four DB libraries:
 
  +
[[Image:Hdb_ldb_diagram_3.png|350px|thumb|right| Color Key: Samba4 is in blue; Heimdal is in green]]
# Two hdb libraries (one each for Samba4 & Heimdal);
 
  +
# Samba4's LDB library, and
 
  +
This page describes Samba4's four DB libraries:
  +
# Two hdb libraries in Heimdal;
  +
# Samba4's hdb_samba4 library (formerly named LDB), and
 
# Samba4's ldb library.
 
# Samba4's ldb library.
   
This page also answers two questions that we've wondered about,
 
  +
These libraries operate as layers:
and which are important for the Samba4 port to MIT-krb:
 
  +
# Heimdal's hdb_ function-pointers wrap hdb_samba4, for Heimdal to retrieve & store entries in the Krb DB.
# Does Heimdal call Samba4 directly?
 
  +
# Heimdal's internal hdb handles DB-entries after retrieval.
# Does Samba4 call Heimdal functions directly, without going through the libkdc interface?
 
  +
# Samba4's hdb_samba4 wraps the most basic store/retrieve part of ldb.
Unfortunately, the answer to both questions is "Yes."
 
  +
# Samba4's ldb wraps the underlying database storage
  +
   
 
----
 
----
   
== Samba4's LDB interface to LDAP ==
+
== Samba4's hdb_samba4 interface to LDAP ==
Almost all of the LDB_ routines are in source4/kdc/hdb-samba4.c ,
+
# These routines make up half of Samba4's kdc-specific code,
and these routines make up half of Samba's kdc-specific code.
+
# Almost all of the hdb_samba4_ routines are in source4/kdc/hdb-samba4.c .
  +
# The exceptionally-placed routine is hdb_samba4_lookup_spn_alias(), in dsdb/samdb .
   
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
| bgcolor="#33ff99" |<font color="#ffffff">'''Entry-point'''</font>
+
| bgcolor="#00cc99" |<font color="#ffffff">'''Entry-point'''</font>
| bgcolor="#33ff99" |<font color="#ffffff">'''Heim use'''</font>
+
| bgcolor="#00cc99" |<font color="#ffffff">'''Heim use'''</font>
| bgcolor="#33ff99" |<font color="#ffffff">'''Smb4 use'''</font>
+
| bgcolor="#00cc99" |<font color="#ffffff">'''Smb4 use'''</font>
| bgcolor="#33ff99" |<font color="#ffffff">'''Comment''' </font>
+
| bgcolor="#00cc99" |<font color="#ffffff">'''Comment''' </font>
   
 
|-
 
|-
| LDB_destroy
 
  +
| hdb_samba4_destroy
 
| hdb
 
| hdb
 
|
 
|
Line 29: Line 32:
   
 
|-
 
|-
| LDB_fetch
 
  +
| hdb_samba4_fetch
 
| hdb
 
| hdb
 
|
 
|
Line 35: Line 38:
   
 
|-
 
|-
| LDB_firstkey
 
  +
| hdb_samba4_firstkey
 
| hdb
 
| hdb
 
|
 
|
Line 41: Line 44:
   
 
|-
 
|-
| LDB_nextkey
 
  +
| hdb_samba4_nextkey
 
| hdb
 
| hdb
 
|
 
|
| wrapper for LDB_seq
+
| wrapper for hdb_samba4_seq
   
 
|-
 
|-
| LDB_open
 
  +
| hdb_samba4_check_pkinit_ms_upn_match
 
| hdb
 
| hdb
 
|
 
|
| stub
 
   
 
|-
 
|-
| LDB_close
 
  +
| hdb_samba4_check_constrained_delegation
  +
| hdb
  +
|
  +
  +
|-
  +
| hdb_samba4_open
 
| hdb
 
| hdb
 
|
 
|
Line 59: Line 66:
   
 
|-
 
|-
| LDB_remove
 
  +
| hdb_samba4_close
 
| hdb
 
| hdb
 
|
 
|
Line 65: Line 72:
   
 
|-
 
|-
| LDB_rename
 
  +
| hdb_samba4_remove
 
| hdb
 
| hdb
 
|
 
|
Line 71: Line 78:
   
 
|-
 
|-
| LDB_store
 
  +
| hdb_samba4_rename
 
| hdb
 
| hdb
 
|
 
|
Line 77: Line 84:
   
 
|-
 
|-
| LDB_lock
 
  +
| hdb_samba4_store
 
| hdb
 
| hdb
 
|
 
|
Line 83: Line 90:
   
 
|-
 
|-
| LDB_unlock
 
  +
| hdb_samba4_lock
 
| hdb
 
| hdb
 
|
 
|
Line 89: Line 96:
   
 
|-
 
|-
| hdb_samba4_create
 
  +
| hdb_samba4_unlock
 
| hdb
 
| hdb
 
|
 
|
| callback
 
  +
| stub
   
 
|-
 
|-
| kdc_hdb_samba4_create
 
  +
| hdb_samba4_create_kdc
 
| hdb
 
| hdb
 
| kdc_task_init
 
| kdc_task_init
Line 101: Line 108:
   
 
|-
 
|-
| LDB_seq
 
  +
| hdb_samba4_create
  +
| hdb
  +
|
  +
| callback
  +
  +
|-
  +
| hdb_samba4_destructor
  +
|
  +
| hdb_samba4
  +
| callback
  +
  +
|-
  +
| hdb_samba4_free_entry
  +
|
  +
| hdb_samba4
  +
| callback
  +
  +
|-
  +
| hdb_samba4_seq
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_fetch_client
 
  +
| hdb_samba4_fetch_client
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_fetch_krbtgt
 
  +
| hdb_samba4_fetch_krbtgt
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_fetch_server
 
  +
| hdb_samba4_fetch_server
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_lookup_principal
 
  +
| hdb_samba4_lookup_principal
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_lookup_spn_alias
 
  +
| hdb_samba4_lookup_spn_alias
 
|
 
|
 
| samdb
 
| samdb
Line 137: Line 162:
   
 
|-
 
|-
| LDB_lookup_trust
 
  +
| hdb_samba4_lookup_trust
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_message2entry
 
  +
| hdb_samba4_message2entry
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_message2entry_keys
 
  +
| hdb_samba4_message2entry_keys
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
 
|-
 
|-
| LDB_trust_message2entry
 
  +
| hdb_samba4_trust_message2entry
 
|
 
|
| LDB
 
  +
| hdb_samba4
 
|
 
|
   
Line 164: Line 189:
 
----
 
----
   
== Heimdal's hdb Interface to Samba4's LDB ==
+
== Heimdal's hdb Interface to Samba4's hdb_samba4 ==
Samba4's file kdc/hdb-samba4.c contains the LDB_ functions,
 
which only Samba4 uses directly.
 
   
In Samba4's heimdal/lib/hdb/hdb.h, Heimdal's HDB structure
 
  +
# Heimdal uses the hdb_samba4 functions via a set of hdb_ function-pointers.
contains "hdb-" prefixed function-pointers to the LDB functions.
 
  +
# Heimdal's HDB structure contains the hdb_ function-pointers.
Only Heimdal uses this function-pointer interface to
 
  +
# The hdb_samba4 functions wrap the part of Samba4's ldb library that stores & retrieves DB entries.
Samba4's LDB_ functions:
 
  +
# The hdb_samba4_ functions are defined in Samba4's file kdc/hdb-samba4.c .
  +
# Only Samba4 uses the hdb_samba4 functions directly.
  +
  +
Only Heimdal uses this function-pointer interface to Samba4's hdb_samba4_ functions:
   
 
# (HDB *)->hdb_dbc = NULL;
 
# (HDB *)->hdb_dbc = NULL;
# (HDB *)->hdb_open = LDB_open;
+
# (HDB *)->hdb_open = hdb_samba4_open;
# (HDB *)->hdb_close = LDB_close;
+
# (HDB *)->hdb_close = hdb_samba4_close;
# (HDB *)->hdb_fetch = LDB_fetch;
+
# (HDB *)->hdb_fetch = hdb_samba4_fetch;
# (HDB *)->hdb_store = LDB_store;
+
# (HDB *)->hdb_store = hdb_samba4_store;
# (HDB *)->hdb_remove = LDB_remove;
+
# (HDB *)->hdb_remove = hdb_samba4_remove;
# (HDB *)->hdb_firstkey = LDB_firstkey;
+
# (HDB *)->hdb_firstkey = hdb_samba4_firstkey;
# (HDB *)->hdb_nextkey = LDB_nextkey;
+
# (HDB *)->hdb_nextkey = hdb_samba4_nextkey;
# (HDB *)->hdb_lock = LDB_lock;
+
# (HDB *)->hdb_lock = hdb_samba4_lock;
# (HDB *)->hdb_unlock = LDB_unlock;
+
# (HDB *)->hdb_unlock = hdb_samba4_unlock;
# (HDB *)->hdb_rename = LDB_rename;
+
# (HDB *)->hdb_rename = hdb_samba4_rename;
 
# (HDB *)->hdb__get = NULL;
 
# (HDB *)->hdb__get = NULL;
 
# (HDB *)->hdb__put = NULL;
 
# (HDB *)->hdb__put = NULL;
 
# (HDB *)->hdb__del = NULL;
 
# (HDB *)->hdb__del = NULL;
# (HDB *)->hdb_destroy = LDB_destroy;
+
# (HDB *)->hdb_destroy = hdb_samba4_destroy;
  +
# (HDB *)->hdb_check_pkinit_ms_upn_match = hdb_samba4_check_pkinit_ms_upn_match
  +
# (HDB *)->hdb_check_constrained_delegation = hdb_samba4_check_constrained_delegation
   
 
Samba4's hdb_ library also includes a local function invoked via a function-pointer:
 
Samba4's hdb_ library also includes a local function invoked via a function-pointer:
Line 195: Line 223:
 
== Heimdal's internal hdb library ==
 
== Heimdal's internal hdb library ==
 
This library isn't completely "internal,"
 
This library isn't completely "internal,"
because four of these routines get used by Samba, too:
+
because four of these routines get used by Samba4, too:
   
 
# initialize_hdb_error_table_r
 
# initialize_hdb_error_table_r
Line 205: Line 233:
   
 
Two functions here, hdb_lock & hdb_unlock, have the same names
 
Two functions here, hdb_lock & hdb_unlock, have the same names
as two of the LDB function-pointers (see above):
+
as two of the hdb_samba4 function-pointers (see above):
 
# (HDB *)->hdb_lock ,
 
# (HDB *)->hdb_lock ,
 
# (HDB *)->hdb_unlock .
 
# (HDB *)->hdb_unlock .
Heimdal uses these two function pointers heavily.
 
  +
  +
Of these 72 functions:
  +
# Four get used by Samba4;
  +
# Seven are used by Heimdal's kdc & tgs code;
  +
# Seven are used by Heimdal's NDBM & DB code (Heiumdal's alternatives to Samba's ldb);
  +
# 27 are used only internally, by the hdb library.
  +
# 39 are unused.
   
 
----
 
----
   
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
| bgcolor="#ff6600" |<font color="#ffffff">'''Entry-point'''</font>
+
| bgcolor="#99ff99" |<font color="#666666">'''Entry-point'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''heimdal/lib/hdb file''' </font>
+
| bgcolor="#99ff99" |<font color="#666666">'''heimdal/lib/hdb file''' </font>
| bgcolor="#ff6600" |<font color="#ffffff">'''Heim use'''</font>
+
| bgcolor="#99ff99" |<font color="#666666">'''Heim use'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''Smb4 use'''</font>
+
| bgcolor="#99ff99" |<font color="#666666">'''Smb4 use'''</font>
   
 
|-
 
|-
Line 258: Line 292:
 
| asn1_hdb_entry.c
 
| asn1_hdb_entry.c
 
| hdb ++
 
| hdb ++
| LDB +
+
| hdb_samba4 +
   
 
|-
 
|-
Line 664: Line 698:
 
These routines are defined & used only in Samba4,
 
These routines are defined & used only in Samba4,
 
and not in Samba4's heimdal snapshot tree.
 
and not in Samba4's heimdal snapshot tree.
  +
The ldb functions are used by Samba4's hdb_samba4 interface,
  +
which Heimdal does use, via the hdb_*** function-pointers.
  +
  +
Two function-families are defined in a spread-out way:
  +
# The eight ldb_attr_ functions are defined in four source-files;
  +
# The seven ldb_request functions are defined in four source-files.
  +
  +
Key to the columns:
  +
# *srv : used by rpc_server, smb_server, etc (7 *_server components in all).
  +
# dsdb : used by dsdb/samdb
  +
# net : used by libnet
  +
# ldb : used by ldb itself
  +
# other: used by other components, listed in the function's "other" cell
  +
# ldb grp: a makeshift subgrouping of ldb, for sorting the functions by type.
  +
  +
The column-headings are clickable.
   
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
 
{| class="wikitable sortable" width="100%" border="1" style="border-collapse: collapse; border: 1px solid #dfdfdf;"
| bgcolor="#ff6600" |<font color="#ffffff">'''Entry-point'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''Entry-point'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''Samba4 file''' </font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''Samba4 file''' </font>
| bgcolor="#ff6600" |<font color="#ffffff">'''*srv'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''*srv'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''dsdb'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''dsdb'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''net'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''net'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''ldb'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''ldb'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''other'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''other'''</font>
| bgcolor="#ff6600" |<font color="#ffffff">'''ldb grp'''</font>
+
| bgcolor="#66ccff" |<font color="#ffffff">'''ldb grp'''</font>
   
 
|-
 
|-
Line 706: Line 756:
   
 
|-
 
|-
| ldb_delete
 
  +
| ldb_debug
| common/ldb.c
+
| common/ldb_debug.c
 
| 1
 
| 1
  +
| ++
 
|
 
|
| +
 
 
| ++
 
| ++
| param
 
  +
|
 
| basic
 
| basic
   
Line 726: Line 776:
   
 
|-
 
|-
| ldb_connect
 
  +
| ldb_delete
 
| common/ldb.c
 
| common/ldb.c
 
| 1
 
| 1
|
+
|
|
+
| +
 
| ++
 
| ++
 
| param
 
| param
Line 736: Line 786:
   
 
|-
 
|-
| ldb_debug
 
  +
| ldb_request
| common/ldb_debug.c
+
| common/ldb.c
 
| 1
 
| 1
| ++
+
| +
 
|
 
|
 
| ++
 
| ++
 
|
 
|
  +
| basic
  +
  +
|-
  +
| ldb_connect
  +
| common/ldb.c
  +
| 1
  +
|
  +
|
  +
| ++
  +
| param
 
| basic
 
| basic
   
Line 763: Line 823:
 
| +
 
| +
 
| param
 
| param
| basic
 
 
|-
 
| ldb_qsort
 
| common/qsort.c
 
| 1
 
| 1
 
| 1
 
| 1
 
|
 
 
| basic
 
| basic
   
Line 786: Line 836:
   
 
|-
 
|-
| ldb_request
 
  +
| ldb_qsort
| common/ldb.c
+
| common/qsort.c
  +
| 1
  +
| 1
  +
| 1
 
| 1
 
| 1
| +
 
|
 
| ++
 
 
|
 
|
 
| basic
 
| basic
Line 823: Line 870:
 
| +
 
| +
 
|
 
|
  +
| attr
  +
  +
|-
  +
| ldb_setup_wellknown_attributes
  +
| common/ldb_attributes.c
  +
|
  +
|
  +
|
  +
| +
  +
|
  +
| attr
  +
  +
|-
  +
| ldb_attr_list_copy_add
  +
| common/ldb_msg.c
  +
|
  +
| 1
  +
|
  +
| 1
  +
|
  +
| attr
  +
  +
|-
  +
| ldb_valid_attr_name
  +
| common/ldb_utf8.c
  +
|
  +
|
  +
|
  +
| 1
  +
|
 
| attr
 
| attr
   
Line 846: Line 923:
   
 
|-
 
|-
| ldb_attr_list_copy_add
 
  +
| ldb_ldap_backend_ops
| common/ldb_msg.c
 
  +
| ldb_ildap/ldb_ildap.c
  +
|
  +
|
  +
|
  +
|
  +
|
  +
| backend_ops
  +
  +
|-
  +
| ldb_ldapi_backend_ops
  +
| ldb_ildap/ldb_ildap.c
  +
|
  +
|
  +
|
  +
|
  +
|
  +
| backend_ops
  +
  +
|-
  +
| ldb_ldaps_backend_ops
  +
| ldb_ildap/ldb_ildap.c
  +
|
  +
|
  +
|
  +
|
  +
|
  +
| backend_ops
  +
  +
|-
  +
| ldb_tdb_backend_ops
  +
| ldb_ldap/ldb_tdb.c
  +
|
  +
|
  +
|
  +
|
  +
|
  +
| backend_ops
  +
  +
|-
  +
| ldb_get_default_basedn
  +
| common/ldb.c
  +
| +
  +
| +
  +
|
  +
| +
  +
| kdc, auth
  +
| basedn
  +
  +
|-
  +
| ldb_get_root_basedn
  +
| common/ldb.c
  +
| +
  +
| +
 
|
 
|
 
| 1
 
| 1
|
+
|
  +
| basedn
  +
  +
|-
  +
| ldb_get_config_basedn
  +
| common/ldb.c
  +
|
 
| 1
 
| 1
|
+
|
| attr
+
| 1
  +
|
  +
| basedn
  +
  +
|-
  +
| ldb_get_schema_basedn
  +
| common/ldb.c
  +
|
  +
| 1
  +
|
  +
| 1
  +
|
  +
| basedn
   
 
|-
 
|-
Line 924: Line 1,053:
 
|
 
|
 
| build...req
 
| build...req
  +
  +
|-
  +
| ldb_debug_set
  +
| common/ldb_debug.c
  +
| 1
  +
| +
  +
|
  +
| +
  +
|
  +
| debug
  +
  +
|-
  +
| ldb_set_debug
  +
| common/ldb_debug.c
  +
|
  +
|
  +
|
  +
| +
  +
|
  +
| debug
  +
  +
|-
  +
| ldb_set_debug_stderr
  +
| common/ldb_debug.c
  +
|
  +
|
  +
|
  +
| 1
  +
| registry
  +
| debug
   
 
|-
 
|-
Line 947: Line 1,106:
 
|-
 
|-
 
| ldb_dn_add_child_fmt
 
| ldb_dn_add_child_fmt
| common/ldb_dn.h
+
| common/ldb_dn.c
 
| ++
 
| ++
 
| +
 
| +
Line 967: Line 1,126:
 
|-
 
|-
 
| ldb_dn_copy
 
| ldb_dn_copy
|
 
  +
| common/ldb_dn.c
 
| +
 
| +
 
| +
 
| +
Line 987: Line 1,146:
 
|-
 
|-
 
| ldb_dn_alloc_linearized
 
| ldb_dn_alloc_linearized
| common/ldb_dn.h
+
| common/ldb_dn.c
 
| 1
 
| 1
 
| +
 
| +
Line 1,097: Line 1,256:
 
|-
 
|-
 
| ldb_dn_add_base
 
| ldb_dn_add_base
| common/ldb_dn.h
+
| common/ldb_dn.c
 
|
 
|
 
| +
 
| +
Line 1,167: Line 1,326:
 
|-
 
|-
 
| ldb_dn_canonical_string
 
| ldb_dn_canonical_string
| common/ldb_dn.h
+
| common/ldb_dn.c
 
| 1
 
| 1
 
| 1
 
| 1
Line 1,177: Line 1,336:
 
|-
 
|-
 
| ldb_dn_add_base_fmt
 
| ldb_dn_add_base_fmt
| common/ldb_dn.h
+
| common/ldb_dn.c
 
|
 
|
 
| 1
 
| 1
Line 1,187: Line 1,346:
 
|-
 
|-
 
| ldb_dn_canonical_ex_string
 
| ldb_dn_canonical_ex_string
| common/ldb_dn.h
+
| common/ldb_dn.c
 
|
 
|
 
| 1
 
| 1
Line 1,227: Line 1,386:
 
|-
 
|-
 
| ldb_dn_alloc_casefold
 
| ldb_dn_alloc_casefold
| common/ldb_dn.h
+
| common/ldb_dn.c
 
|
 
|
 
|
 
|
Line 1,326: Line 1,485:
   
 
|-
 
|-
| ldb_extended
 
  +
| ldb_binary_encode
  +
| common/ldb_parse.c
  +
| 1
  +
| +
 
|
 
|
  +
| +
 
|
 
|
  +
| encoding
  +
  +
|-
  +
| ldb_binary_encode_string
  +
| common/ldb_parse.c
  +
| +
  +
| +
 
|
 
|
 
|
 
|
|
+
| auth
|
+
| encoding
| extended
 
   
 
|-
 
|-
| ldb_extended_default_call
 
  +
| ldb_should_b64_encode
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
 
  +
| encoding
|
 
| extended
 
   
 
|-
 
|-
| ldb_extended_dn_in_module
 
  +
| ldb_base64_decode
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
  +
| encoding
  +
  +
|-
  +
| ldb_base64_encode
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
| extended
 
  +
|
  +
| +
  +
|
  +
| encoding
   
 
|-
 
|-
| ldb_extended_dn_out_deref
 
  +
| ldb_set_errstring
  +
| common/ldb.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| ++
 
|
 
|
  +
| error
  +
  +
|-
  +
| ldb_asprintf_errstring
  +
| common/ldb.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| +
 
|
 
|
| extended
 
  +
| error
   
 
|-
 
|-
| ldb_extended_dn_out_ldb_m
 
  +
| ldb_strerror
  +
| common/ldb.c
 
|
 
|
  +
| +
  +
| 1
  +
| +
  +
| gpo
  +
| error
  +
  +
|-
  +
| ldb_reset_err_string
  +
| common/ldb.c
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
  +
| error
  +
  +
|-
  +
| ldb_extended
  +
| common/ldb.c
 
|
 
|
  +
| +
  +
|
  +
| 1
 
|
 
|
 
| extended
 
| extended
   
 
|-
 
|-
| ldb_extended_dn_store_mod
 
  +
| ldb_extended_default_callback
|
 
  +
| common/ldb.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| 1
 
|
 
|
 
| extended
 
| extended
   
 
|-
 
|-
| ldb_get_config_basedn
 
  +
| ldb_get_opaque
|
 
  +
| common/ldb.c
  +
| 1
  +
| ++
 
|
 
|
  +
| ++
  +
| kdc
  +
| get/set
  +
  +
|-
  +
| ldb_set_opaque
  +
| common/ldb.c
  +
| +
  +
| ++
 
|
 
|
  +
| ++
  +
| scripting
  +
| get/set
  +
  +
|-
  +
| ldb_get_event_context
  +
| common/ldb.c
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
| get
+
| get/set
   
 
|-
 
|-
 
| ldb_get_create_perms
 
| ldb_get_create_perms
  +
| common/ldb.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| 1
 
|
 
|
|
 
  +
| get/set
|
 
| get
 
   
 
|-
 
|-
| ldb_get_default_basedn
 
  +
| ldb_set_create_perms
|
 
  +
| common/ldb.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
| get
+
| get/set
   
 
|-
 
|-
| ldb_get_event_context
 
  +
| ldb_ldif_write_file
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
  +
| +
  +
| ++
 
|
 
|
  +
| ldif
  +
  +
|-
  +
| ldb_ldif_read_file
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
 
|
 
|
| get
+
| +
  +
|
  +
| ldif
   
 
|-
 
|-
| ldb_get_opaque
 
  +
| ldb_ldif_read_free
  +
| common/ldb_ldif.c
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
+
| ldif
| get
 
   
 
|-
 
|-
| ldb_get_root_basedn
 
  +
| ldb_ldif_read_string
  +
| common/ldb_ldif.c
 
|
 
|
  +
| +
 
|
 
|
  +
| 1
 
|
 
|
  +
| ldif
  +
  +
|-
  +
| ldb_wrap_connect
  +
| lib/ldb_wrap.c
  +
| +
  +
| +
  +
| +
  +
| 1
  +
| gpo, auth, winbind, param, ntptr
  +
| misc
  +
  +
|-
  +
| ldb_next_init
  +
| common/ldb_modules.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| +
 
|
 
|
| get
+
| misc
   
 
|-
 
|-
| ldb_get_schema_basedn
 
  +
| ldb_mod_register_control
  +
| common/ldb_modules.c
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
  +
| misc
  +
  +
|-
  +
| ldb_handle_new
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
| get
+
| misc
   
 
|-
 
|-
| ldb_ldif_read_file
 
  +
| ldb_cmdline_process
  +
| tools/cmdline.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| misc
|
 
| ldif
 
   
 
|-
 
|-
| ldb_ldif_read_free
 
  +
| ldb_comparison_binary
  +
| common/attrib_handlers.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| misc
|
 
| ldif
 
   
 
|-
 
|-
| ldb_ldif_read_string
 
  +
| ldb_connect_backend
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| 1
 
|
 
|
  +
| misc
  +
  +
|-
  +
| ldb_handler_copy
  +
| common/attrib_handlers.c
 
|
 
|
 
|
 
|
 
|
 
|
| ldif
+
| +
  +
|
  +
| misc
   
 
|-
 
|-
| ldb_ldif_write_file
 
  +
| ldb_map_init
  +
| ldb_map/ldb_map.c
 
|
 
|
  +
| +
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| misc
|
 
| ldif
 
   
 
|-
 
|-
| ldb_module_done
 
  +
| ldb_op_default_callback
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
  +
| misc
  +
  +
|-
  +
| ldb_register_samba_handle
  +
| /ldb-samba/ldif_handlers.c
 
|
 
|
 
|
 
|
 
|
 
|
| module
 
  +
| +
  +
| scripting
  +
| misc
   
 
|-
 
|-
| ldb_module_get_ctx
 
  +
| ldb_reply_get_control
|
 
  +
| common/ldb_controls.c
|
 
 
|
 
|
  +
| 1
 
|
 
|
  +
| 1
 
|
 
|
  +
| misc
  +
  +
|-
  +
| ldb_search_default_callback
  +
| common/ldb.c
  +
| +
  +
| 1
 
|
 
|
| module
 
  +
| +
  +
| gpo
  +
| misc
   
 
|-
 
|-
| ldb_module_get_private
 
  +
| ldb_sequence_number
  +
| common/ldb.c
 
|
 
|
  +
| +
 
|
 
|
 
|
 
|
 
|
 
|
  +
| misc
  +
  +
|-
  +
| ldb_module_get_ctx
  +
| common/ldb_modules.c
  +
| +
  +
| +++
 
|
 
|
  +
| ++
 
|
 
|
 
| module
 
| module
   
 
|-
 
|-
| ldb_module_new
 
  +
| ldb_module_done
  +
| common/ldb_modules.c
 
|
 
|
  +
| +++
 
|
 
|
  +
| ++
 
|
 
|
  +
| module
  +
  +
|-
  +
| ldb_module_get_private
  +
| common/ldb_modules.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| ++
 
|
 
|
 
| module
 
| module
Line 1,529: Line 1,852:
 
|-
 
|-
 
| ldb_module_send_entry
 
| ldb_module_send_entry
  +
| common/ldb_modules.c
 
|
 
|
  +
| ++
 
|
 
|
|
+
| ++
|
 
|
 
 
|
 
|
 
| module
 
| module
Line 1,537: Line 1,862:
 
|-
 
|-
 
| ldb_module_send_referral
 
| ldb_module_send_referral
  +
| common/ldb_modules.c
 
|
 
|
  +
| ++
 
|
 
|
|
+
| +
|
 
|
 
 
|
 
|
 
| module
 
| module
Line 1,545: Line 1,872:
 
|-
 
|-
 
| ldb_module_set_private
 
| ldb_module_set_private
  +
| common/ldb_modules.c
 
|
 
|
  +
| +
 
|
 
|
|
+
| +
|
 
|
 
 
|
 
|
 
| module
 
| module
   
 
|-
 
|-
| ldb_modules_list_from_str
 
  +
| ldb_modules_list_from_string
|
 
  +
| common/ldb_modules.c
|
 
|
 
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
 
| module
 
| module
Line 1,563: Line 1,892:
 
|-
 
|-
 
| ldb_init_module_chain
 
| ldb_init_module_chain
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
|
+
| +
|
 
|
 
 
|
 
|
 
| module
 
| module
Line 1,571: Line 1,902:
 
|-
 
|-
 
| ldb_load_modules
 
| ldb_load_modules
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
  +
| module
  +
  +
|-
  +
| ldb_module_new
  +
| common/ldb_modules.c
 
|
 
|
 
|
 
|
  +
|
  +
| +
 
|
 
|
 
| module
 
| module
Line 1,581: Line 1,922:
 
|-
 
|-
 
| ldb_load_modules_list
 
| ldb_load_modules_list
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| 1
 
|
 
|
  +
| module
  +
  +
|-
  +
| ldb_register_module
  +
| common/ldb_modules.c
 
|
 
|
 
|
 
|
 
|
 
|
| module
 
  +
| 1
  +
|
  +
| module_ops
   
 
|-
 
|-
 
| ldb_anr_module_ops
 
| ldb_anr_module_ops
|
 
  +
| sambdb/ldb_modules/anr.c
 
|
 
|
 
|
 
|
Line 1,601: Line 1,952:
 
|-
 
|-
 
| ldb_asq_module_ops
 
| ldb_asq_module_ops
|
 
  +
| ldb/modules/asq.c
 
|
 
|
 
|
 
|
Line 1,611: Line 1,962:
 
|-
 
|-
 
| ldb_dsdb_cache_module_ops
 
| ldb_dsdb_cache_module_ops
|
 
  +
| ldb_modules/dsdb_cache.c
 
|
 
|
 
|
 
|
Line 1,621: Line 1,972:
 
|-
 
|-
 
| ldb_entryuuid_module_ops
 
| ldb_entryuuid_module_ops
  +
| ldb_modules/simple_ldap_map.c
 
|
 
|
  +
|
  +
|
  +
|
  +
|
  +
| module_ops
  +
  +
|-
  +
| ldb_extended_dn_in_module_ops
  +
| ldb_modules/extended_dn_in.c
 
|
 
|
 
|
 
|
Line 1,630: Line 1,991:
   
 
|-
 
|-
| ldb_instancetype_module_ops
 
  +
| ldb_extended_dn_out_dereference_module_ops
|
 
  +
| ldb_modules/extended_dn_out.c
 
|
 
|
 
|
 
|
Line 1,640: Line 2,001:
   
 
|-
 
|-
| ldb_kludge_acl_module_ops
 
  +
| ldb_extended_dn_out_ldb_module_ops
|
 
  +
| ldb_modules/extended_dn_out.c
 
|
 
|
 
|
 
|
Line 1,650: Line 2,011:
   
 
|-
 
|-
| ldb_ldap_backend_ops
 
  +
| ldb_extended_dn_store_module_ops
|
 
  +
| ldb_modules/extended_dn_store.c
 
|
 
|
 
|
 
|
Line 1,660: Line 2,021:
   
 
|-
 
|-
| ldb_ldapi_backend_ops
 
  +
| ldb_instancetype_module_ops
|
 
  +
| ldb_modules/instancetype.c
 
|
 
|
 
|
 
|
Line 1,670: Line 2,031:
   
 
|-
 
|-
| ldb_ldaps_backend_ops
 
  +
| ldb_kludge_acl_module_ops
|
 
  +
| ldb_modules/kludge_acl.c
 
|
 
|
 
|
 
|
Line 1,681: Line 2,042:
 
|-
 
|-
 
| ldb_linked_attributes_module_ops
 
| ldb_linked_attributes_module_ops
|
 
  +
| ldb_modules/linked_attributes.c
 
|
 
|
 
|
 
|
Line 1,691: Line 2,052:
 
|-
 
|-
 
| ldb_local_password_module_ops
 
| ldb_local_password_module_ops
|
 
  +
| ldb_modules/local_password.c
 
|
 
|
 
|
 
|
Line 1,701: Line 2,062:
 
|-
 
|-
 
| ldb_naming_fsmo_module_ops
 
| ldb_naming_fsmo_module_ops
|
 
  +
| ldb_modules/naming_fsmo.c
 
|
 
|
 
|
 
|
Line 1,711: Line 2,072:
 
|-
 
|-
 
| ldb_nsuniqueid_module_ops
 
| ldb_nsuniqueid_module_ops
|
 
  +
| ldb_modules/simple_ldap_map.c
 
|
 
|
 
|
 
|
Line 1,721: Line 2,082:
 
|-
 
|-
 
| ldb_objectclass_module_ops
 
| ldb_objectclass_module_ops
|
 
  +
| ldb_modules/objectclass.c
 
|
 
|
 
|
 
|
Line 1,731: Line 2,092:
 
|-
 
|-
 
| ldb_objectguid_module_ops
 
| ldb_objectguid_module_ops
|
 
  +
| ldb_modules/objectguid.c
 
|
 
|
 
|
 
|
Line 1,741: Line 2,102:
 
|-
 
|-
 
| ldb_operational_module_ops
 
| ldb_operational_module_ops
|
 
  +
| ldb_modules/operational.c
 
|
 
|
 
|
 
|
Line 1,751: Line 2,112:
 
|-
 
|-
 
| ldb_paged_results_module_ops
 
| ldb_paged_results_module_ops
|
 
  +
| ldb_modules/paged_results.c
 
|
 
|
 
|
 
|
Line 1,761: Line 2,122:
 
|-
 
|-
 
| ldb_paged_searches_module_ops
 
| ldb_paged_searches_module_ops
|
 
  +
| ldb_modules/paged_searches.c
 
|
 
|
 
|
 
|
Line 1,771: Line 2,132:
 
|-
 
|-
 
| ldb_partition_module_ops
 
| ldb_partition_module_ops
|
 
  +
| ldb_modules/partition.c
 
|
 
|
 
|
 
|
Line 1,781: Line 2,142:
 
|-
 
|-
 
| ldb_password_hash_module_ops
 
| ldb_password_hash_module_ops
|
 
  +
| ldb_modules/password_hash.c
 
|
 
|
 
|
 
|
Line 1,791: Line 2,152:
 
|-
 
|-
 
| ldb_pdc_fsmo_module_ops
 
| ldb_pdc_fsmo_module_ops
  +
| ldb_modules/pdc_fsmo.c
 
|
 
|
 
|
 
|
Line 1,796: Line 2,158:
 
|
 
|
 
|
 
|
|
 
  +
| module_ops
  +
  +
|-
  +
| ldb_proxy_module_ops
  +
| ldb_modules/proxy.c
  +
|
  +
|
  +
|
  +
|
  +
|
 
| module_ops
 
| module_ops
   
 
|-
 
|-
 
| ldb_ranged_results_module_ops
 
| ldb_ranged_results_module_ops
|
 
  +
| ldb_modules/ranged_results.c
 
|
 
|
 
|
 
|
Line 1,811: Line 2,182:
 
|-
 
|-
 
| ldb_rdn_name_module_ops
 
| ldb_rdn_name_module_ops
|
 
  +
| ldb_modules/rdn_name.c
 
|
 
|
 
|
 
|
Line 1,820: Line 2,191:
   
 
|-
 
|-
| ldb_register_module
 
  +
| ldb_repl_meta_data_module_ops
|
 
  +
| ldb_modules/repl_meta_data.c
 
|
 
|
 
|
 
|
Line 1,830: Line 2,201:
   
 
|-
 
|-
| ldb_repl_meta_data_module_ops
 
  +
| ldb_rootdse_module_ops
|
 
  +
| ldb_modules/rootdse.c
 
|
 
|
 
|
 
|
Line 1,840: Line 2,211:
   
 
|-
 
|-
| ldb_rootdse_module_ops
 
  +
| ldb_samba3sam_module_ops
|
 
  +
| ldb_modules/samba3sam.c
 
|
 
|
 
|
 
|
Line 1,850: Line 2,221:
   
 
|-
 
|-
| ldb_samba3sam_module_ops
 
  +
| ldb_samldb_module_ops
|
 
  +
| ldb_modules/samldb.c
 
|
 
|
 
|
 
|
Line 1,860: Line 2,231:
   
 
|-
 
|-
| ldb_samldb_module_ops
 
  +
| ldb_sample_module_ops
|
 
  +
| ldb_modules/sample_module.c
 
|
 
|
 
|
 
|
Line 1,870: Line 2,241:
   
 
|-
 
|-
| ldb_server_sort_module_ops
 
  +
| ldb_schema_fsmo_module_ops
|
 
  +
| ldb_modules/schema_fsmo.c
 
|
 
|
 
|
 
|
Line 1,880: Line 2,251:
   
 
|-
 
|-
| ldb_show_deleted_module_ops
 
  +
| ldb_server_sort_module_ops
|
 
  +
| ldb_modules/sort.c
 
|
 
|
 
|
 
|
Line 1,890: Line 2,261:
   
 
|-
 
|-
| ldb_skel_module_ops
 
  +
| ldb_show_deleted_module_ops
|
 
  +
| ldb_modules/show_deleted.c
 
|
 
|
 
|
 
|
Line 1,900: Line 2,271:
   
 
|-
 
|-
| ldb_subtree_delete_module_ops
 
  +
| ldb_skel_module_ops
|
 
  +
| ldb_modules/skel.c
 
|
 
|
 
|
 
|
Line 1,910: Line 2,281:
   
 
|-
 
|-
| ldb_subtree_rename_module_ops
 
  +
| ldb_subtree_delete_module_ops
|
 
  +
| ldb_modules/subtree_delete.c
 
|
 
|
 
|
 
|
Line 1,920: Line 2,291:
   
 
|-
 
|-
| ldb_tdb_backend_ops
 
  +
| ldb_subtree_rename_module_ops
|
 
  +
| ldb_modules/subtree_rename.c
 
|
 
|
 
|
 
|
Line 1,931: Line 2,302:
 
|-
 
|-
 
| ldb_update_keytab_module_ops
 
| ldb_update_keytab_module_ops
|
 
  +
| ldb_modules/update_keytab.c
 
|
 
|
 
|
 
|
Line 1,941: Line 2,312:
 
|-
 
|-
 
| ldb_wins_ldb_module_ops
 
| ldb_wins_ldb_module_ops
|
 
  +
| ldb_modules/wins_ldb.c
 
|
 
|
 
|
 
|
Line 1,950: Line 2,321:
   
 
|-
 
|-
| ldb_msg_add
 
  +
| ldb_msg_find_element
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| +++
|
+
| 1
|
+
| +
|
+
| kdc, gpo, registry
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_empty
 
  +
| ldb_msg_add_string
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| ++
|
+
| +
|
+
| +
|
+
| winbind, utils, param, registry
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_fmt
 
  +
| ldb_msg_add_value
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| ++
|
+
| +
|
+
| +
|
+
| winbind, param, registry
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_steal_string
 
  +
| ldb_msg_new
|
 
  +
| common/ldb_msg.c
|
+
| ++
|
+
| +
|
+
| +
|
+
| +
|
+
| kdc, registry, winbind, utils, param
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_steal_value
 
  +
| ldb_msg_find_attr_as_string
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| ++
|
+
| +
|
+
| +
|
+
| kdc, gpo, auth, registry, winbind, utils, param
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_string
 
  +
| ldb_msg_find_ldb_val
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| ++
|
+
| +
|
+
| +
|
+
| kdc, gpo, auth, winbind, param
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_add_value
 
  +
| ldb_msg_find_attr_as_uint
|
 
  +
| common/ldb_msg.c
|
+
| ++
|
+
| +
|
+
| +
|
+
| 1
|
+
| kdc, winbind,
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_canonicalize
 
  +
| ldb_msg_add_fmt
|
 
  +
| common/ldb_msg.c
|
+
| ++
|
+
| +
|
+
| +
  +
| 1
  +
| param
  +
| msg
  +
  +
|-
  +
| ldb_msg_find_attr_as_uint64
  +
| common/ldb_msg.c
  +
| ++
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_check_string_attr
 
  +
| ldb_msg_add_empty
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| ++
|
 
|
 
 
|
 
|
  +
| +
  +
| winbind, param
 
| msg
 
| msg
   
 
|-
 
|-
 
| ldb_msg_copy
 
| ldb_msg_copy
  +
| common/ldb_msg.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| +
 
|
 
|
  +
| msg
  +
  +
|-
  +
| ldb_msg_copy_shallow
  +
| common/ldb_msg.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_copy_attr
 
  +
| ldb_msg_find_attr_as_dn
  +
| common/ldb_msg.c
  +
| +
  +
| +
 
|
 
|
  +
| +
 
|
 
|
  +
| msg
  +
  +
|-
  +
| ldb_msg_find_attr_as_int
  +
| common/ldb_msg.c
  +
| +
  +
| +
 
|
 
|
  +
| +
  +
| kdc, auth
  +
| msg
  +
  +
|-
  +
| ldb_msg_remove_attr
  +
| common/ldb_msg.c
 
|
 
|
  +
| ++
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_copy_shallow
 
  +
| ldb_msg_add_steal_value
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_diff
 
  +
| ldb_msg_canonicalize
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_element_compare
 
  +
| ldb_msg_remove_element
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_bool
 
  +
| ldb_msg_sanity_check
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_dn
 
  +
| ldb_msg_add_steal_string
|
 
  +
| common/ldb_msg.c
|
+
| 1
|
+
| +
|
 
 
|
 
|
  +
| 1
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_int
 
  +
| ldb_msg_check_string_attribute
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| 1
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_int6
 
  +
| ldb_msg_add
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
 
|
 
|
  +
| 1
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_stri
 
  +
| ldb_msg_diff
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| 1
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_attr_as_uint
 
  +
| ldb_msg_find_attr_as_int64
|
 
  +
| common/ldb_msg.c
|
+
| +
|
+
| 1
 
|
 
|
 
|
 
|
Line 2,147: Line 2,552:
   
 
|-
 
|-
| ldb_msg_find_element
 
  +
| ldb_msg_element_compare
|
 
  +
| common/ldb_msg.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_find_ldb_val
 
  +
| ldb_msg_element_compare_name
|
 
  +
| common/ldb_msg.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
Line 2,168: Line 2,573:
 
|-
 
|-
 
| ldb_msg_find_val
 
| ldb_msg_find_val
  +
| common/ldb_msg.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
+
| kdc
|
 
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_new
 
  +
| ldb_msg_sort_elements
|
 
  +
| common/ldb_msg.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_remove_attr
 
  +
| ldb_match_msg
|
 
  +
| common/ldb_match.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_remove_element
 
  +
| ldb_msg_find_attr_as_bool
|
 
  +
| common/ldb_msg.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| 1
 
|
 
|
 
| msg
 
| msg
   
 
|-
 
|-
| ldb_msg_sanity_check
 
  +
| ldb_msg_copy_attr
  +
| common/ldb_msg.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| 1
 
|
 
|
  +
| msg
  +
  +
|-
  +
| ldb_filter_from_tree
  +
| common/ldb_parse.c
  +
| +
  +
| +
 
|
 
|
  +
| +
 
|
 
|
| msg
+
| parse
   
 
|-
 
|-
| ldb_msg_sort_elements
 
  +
| ldb_parse_tree
  +
| common/ldb_parse.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
  +
| parse
  +
  +
|-
  +
| ldb_parse_tree_attr_replace
  +
| common/ldb_parse.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
| msg
+
| parse
   
 
|-
 
|-
| ldb_next_del_trans
 
  +
| ldb_parse_control_strings
  +
| common/ldb_controls.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| parse
|
 
| next
 
   
 
|-
 
|-
| ldb_next_end_trans
 
  +
| ldb_casefold
  +
| common/ldb_utf8.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| parse
|
 
| next
 
   
 
|-
 
|-
| ldb_next_init
 
  +
| ldb_set_utf8_fns
|
 
  +
| common/ldb_utf8.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| parse
| next
 
   
 
|-
 
|-
| ldb_next_remote_request
 
  +
| ldb_set_utf8_default
|
 
  +
| common/ldb_utf8.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| 1
 
|
 
|
| next
+
| parse
   
 
|-
 
|-
| ldb_next_request
 
  +
| ldb_samba_syntax_by_lDAPDisplayName
  +
| ldb-samba/ldif_handlers.c
 
|
 
|
  +
| 1
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| parse
|
 
| next
 
   
 
|-
 
|-
| ldb_next_start_trans
 
  +
| ldb_samba_syntax_by_name
  +
| ldb-samba/ldif_handlers.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
  +
| parse
  +
  +
|-
  +
| ldb_standard_syntax_by_name
  +
| common/attrib_handlers.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| +
 
|
 
|
| next
+
| parse
   
 
|-
 
|-
| ldb_request_add_control
 
  +
| ldb_next_request
|
 
  +
| common/ldb_modules.c
|
 
|
 
 
|
 
|
  +
| +++
 
|
 
|
  +
| ++
 
|
 
|
 
| request
 
| request
Line 2,290: Line 2,733:
 
|-
 
|-
 
| ldb_request_done
 
| ldb_request_done
  +
| common/ldb.c
 
|
 
|
  +
| +
 
|
 
|
  +
| ++
 
|
 
|
  +
| request
  +
  +
|-
  +
| ldb_request_add_control
  +
| common/ldb_controls.c
  +
| 1
  +
| +
 
|
 
|
|
+
| 1
 
|
 
|
 
| request
 
| request
Line 2,300: Line 2,753:
 
|-
 
|-
 
| ldb_request_get_control
 
| ldb_request_get_control
  +
| common/ldb_controls.c
  +
| 1
  +
| +
 
|
 
|
|
+
| +
|
 
|
 
|
 
 
|
 
|
 
| request
 
| request
Line 2,307: Line 2,763:
 
|-
 
|-
 
| ldb_request_get_status
 
| ldb_request_get_status
  +
| common/ldb.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
 
 
|
 
|
 
| request
 
| request
Line 2,316: Line 2,773:
 
|-
 
|-
 
| ldb_request_set_state
 
| ldb_request_set_state
  +
| common/ldb.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
 
 
|
 
|
 
| request
 
| request
   
 
|-
 
|-
| ldb_schema_attribute_add
 
  +
| ldb_next_remote_request
  +
| ldb_map/ldb_map.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
 
  +
| request
|
 
| schema
 
   
 
|-
 
|-
| ldb_schema_attribute_add_
 
  +
| ldb_schema_attribute_by_name
|
 
  +
| common/ldb_attributes.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| ++
 
|
 
|
 
| schema
 
| schema
   
 
|-
 
|-
| ldb_schema_attribute_by_n
 
  +
| ldb_schema_attribute_add
|
 
  +
| common/ldb_attributes.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| schema
 
| schema
   
 
|-
 
|-
| ldb_schema_attribute_remo
 
  +
| ldb_schema_attribute_add_with_syntax
|
 
  +
| common/ldb_attributes.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| schema
 
| schema
   
 
|-
 
|-
| ldb_schema_attribute_set_
 
  +
| ldb_schema_attribute_remove
|
 
  +
| common/ldb_attributes.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| schema
 
| schema
   
 
|-
 
|-
| ldb_schema_fsmo_module_ops
 
  +
| ldb_schema_attribute_set_override_handler
|
 
  +
| common/ldb_attributes.c
|
 
 
|
 
|
  +
| 1
 
|
 
|
 
|
 
|
 
|
 
|
 
| schema
 
| schema
 
|-
 
| ldb_set_create_perms
 
|
 
|
 
|
 
|
 
|
 
|
 
| set
 
 
|-
 
| ldb_set_debug
 
|
 
|
 
|
 
|
 
|
 
|
 
| set
 
 
|-
 
| ldb_set_debug_stderr
 
|
 
|
 
|
 
|
 
|
 
|
 
| set
 
   
 
|-
 
|-
 
| ldb_set_default_dns
 
| ldb_set_default_dns
  +
| common/ldb.c
 
|
 
|
  +
| 1
 
|
 
|
|
+
| 1
|
 
|
 
|
 
| set
 
 
|-
 
| ldb_set_errstring
 
|
 
|
 
|
 
|
 
|
 
 
|
 
|
 
| set
 
| set
Line 2,423: Line 2,853:
 
|-
 
|-
 
| ldb_set_modules_dir
 
| ldb_set_modules_dir
  +
| common/ldb_modules.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
 
|
 
| set
 
 
|-
 
| ldb_set_opaque
 
|
 
|
 
|
 
|
 
|
 
 
|
 
|
 
| set
 
| set
Line 2,432: Line 2,863:
 
|-
 
|-
 
| ldb_set_timeout
 
| ldb_set_timeout
  +
| common/ldb.c
  +
| +
  +
| 1
 
|
 
|
|
+
| +
|
 
|
 
|
 
|
 
| set
 
 
|-
 
| ldb_set_utf8_default
 
|
 
|
 
|
 
|
 
|
 
|
 
| set
 
 
|-
 
| ldb_set_utf8_fns
 
 
|
 
|
 
|
 
|
 
|
 
 
|
 
|
 
| set
 
| set
Line 2,439: Line 2,873:
 
|-
 
|-
 
| ldb_string_to_time
 
| ldb_string_to_time
  +
| common/ldb_msg.c
  +
| +
  +
| +
 
|
 
|
|
+
| +
|
 
|
 
|
 
 
|
 
|
 
| time
 
| time
Line 2,446: Line 2,883:
 
|-
 
|-
 
| ldb_string_utc_to_time
 
| ldb_string_utc_to_time
  +
| common/ldb_msg.c
 
|
 
|
|
+
| 1
|
 
 
|
 
|
 
|
 
|
Line 2,455: Line 2,893:
 
|-
 
|-
 
| ldb_timestring
 
| ldb_timestring
  +
| common/ldb_msg.c
  +
| +
  +
| +
 
|
 
|
|
+
| +
|
 
|
 
|
 
 
|
 
|
 
| time
 
| time
Line 2,462: Line 2,903:
 
|-
 
|-
 
| ldb_timestring_utc
 
| ldb_timestring_utc
  +
| common/ldb_msg.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| 1
|
 
 
|
 
|
 
| time
 
| time
Line 2,471: Line 2,913:
 
|-
 
|-
 
| ldb_transaction_cancel
 
| ldb_transaction_cancel
  +
| common/ldb.c
  +
| ++
  +
| +
 
|
 
|
|
+
| +
|
+
| kdc, winbind, registry
|
 
|
 
|
 
 
| transaction
 
| transaction
   
 
|-
 
|-
 
| ldb_transaction_commit
 
| ldb_transaction_commit
  +
| common/ldb.c
  +
| +
  +
| 1
 
|
 
|
|
+
| +
|
+
| kdc, registry, winbind
|
 
|
 
|
 
 
| transaction
 
| transaction
   
 
|-
 
|-
 
| ldb_transaction_start
 
| ldb_transaction_start
  +
| common/ldb.c
  +
| +
  +
| 1
 
|
 
|
  +
| +
  +
| kdc, registry, winbind
  +
| transaction
  +
  +
|-
  +
| ldb_next_del_trans
  +
| common/ldb_modules.c
  +
| +
 
|
 
|
 
|
 
|
|
+
| 1
|
 
 
|
 
|
 
| transaction
 
| transaction
   
 
|-
 
|-
| ldb_val_dup
 
  +
| ldb_next_end_trans
  +
| common/ldb_modules.c
 
|
 
|
  +
| +
 
|
 
|
  +
| 1
 
|
 
|
  +
| transaction
  +
  +
|-
  +
| ldb_next_start_trans
  +
| common/ldb_modules.c
 
|
 
|
  +
| 1
 
|
 
|
  +
| 1
 
|
 
|
| val
 
  +
| transaction
   
 
|-
 
|-
| ldb_val_equal_exact
 
  +
| ldb_val_dup
|
 
  +
| common/ldb_msg.c
|
 
|
 
 
|
 
|
  +
| +
 
|
 
|
  +
| +
 
|
 
|
 
| val
 
| val
   
 
|-
 
|-
| ldb_valid_attr_name
 
  +
| ldb_val_equal_exact
|
 
  +
| common/ldb_msg.c
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
 
| val
 
| val
Line 2,524: Line 2,993:
 
|-
 
|-
 
| ldb_val_map_local
 
| ldb_val_map_local
  +
| ldb_map/ldb_map.c
 
|
 
|
 
|
 
|
 
|
 
|
  +
| +
 
|
 
|
|
+
| val
|
 
|
 
   
 
|-
 
|-
 
| ldb_val_map_remote
 
| ldb_val_map_remote
  +
| ldb_map/ldb_map.c
 
|
 
|
 
|
 
|
 
|
 
|
|
+
| +
|
 
 
|
 
|
 
| val
 
| val
 
|-
 
| ldb_should_b64_encode
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_base64_decode
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_base64_encode
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_binary_encode
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_binary_encode_string
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_parse_tree
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_parse_tree_attr_replace
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_samba_syntax_by_lDAPD
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_samba_syntax_by_name
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_standard_syntax_by_name
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc grouped
 
 
|-
 
| ldb_asprintf_errstring
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_casefold
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_cmdline_process
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_comparison_binary
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_connect_backend
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_debug_set
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_filter_from_tree
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_handle_new
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_handler_copy
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_map_init
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_match_msg
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_mod_register_control
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_op_default_callback
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_parse_control_strings
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_register_samba_handle
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_reply_get_control
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_reset_err_string
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_search_default_callback
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_sequence_number
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_setup_wellknown_attributes
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_strerror
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
 
|-
 
| ldb_wrap_connect
 
|
 
|
 
|
 
|
 
|
 
|
 
| misc
 
   
 
|}
 
|}

Latest revision as of 09:52, 18 September 2009

Color Key: Samba4 is in blue; Heimdal is in green

This page describes Samba4's four DB libraries:

  1. Two hdb libraries in Heimdal;
  2. Samba4's hdb_samba4 library (formerly named LDB), and
  3. Samba4's ldb library.

These libraries operate as layers:

  1. Heimdal's hdb_ function-pointers wrap hdb_samba4, for Heimdal to retrieve & store entries in the Krb DB.
  2. Heimdal's internal hdb handles DB-entries after retrieval.
  3. Samba4's hdb_samba4 wraps the most basic store/retrieve part of ldb.
  4. Samba4's ldb wraps the underlying database storage



Samba4's hdb_samba4 interface to LDAP

  1. These routines make up half of Samba4's kdc-specific code,
  2. Almost all of the hdb_samba4_ routines are in source4/kdc/hdb-samba4.c .
  3. The exceptionally-placed routine is hdb_samba4_lookup_spn_alias(), in dsdb/samdb .
Entry-point Heim use Smb4 use Comment
hdb_samba4_destroy hdb
hdb_samba4_fetch hdb
hdb_samba4_firstkey hdb
hdb_samba4_nextkey hdb wrapper for hdb_samba4_seq
hdb_samba4_check_pkinit_ms_upn_match hdb
hdb_samba4_check_constrained_delegation hdb
hdb_samba4_open hdb stub
hdb_samba4_close hdb stub
hdb_samba4_remove hdb stub
hdb_samba4_rename hdb stub
hdb_samba4_store hdb stub
hdb_samba4_lock hdb stub
hdb_samba4_unlock hdb stub
hdb_samba4_create_kdc hdb kdc_task_init
hdb_samba4_create hdb callback
hdb_samba4_destructor hdb_samba4 callback
hdb_samba4_free_entry hdb_samba4 callback
hdb_samba4_seq hdb_samba4
hdb_samba4_fetch_client hdb_samba4
hdb_samba4_fetch_krbtgt hdb_samba4
hdb_samba4_fetch_server hdb_samba4
hdb_samba4_lookup_principal hdb_samba4
hdb_samba4_lookup_spn_alias samdb defined in dsdb/samdb
hdb_samba4_lookup_trust hdb_samba4
hdb_samba4_message2entry hdb_samba4
hdb_samba4_message2entry_keys hdb_samba4
hdb_samba4_trust_message2entry hdb_samba4

Heimdal's hdb Interface to Samba4's hdb_samba4

  1. Heimdal uses the hdb_samba4 functions via a set of hdb_ function-pointers.
  2. Heimdal's HDB structure contains the hdb_ function-pointers.
  3. The hdb_samba4 functions wrap the part of Samba4's ldb library that stores & retrieves DB entries.
  4. The hdb_samba4_ functions are defined in Samba4's file kdc/hdb-samba4.c .
  5. Only Samba4 uses the hdb_samba4 functions directly.

Only Heimdal uses this function-pointer interface to Samba4's hdb_samba4_ functions:

  1. (HDB *)->hdb_dbc = NULL;
  2. (HDB *)->hdb_open = hdb_samba4_open;
  3. (HDB *)->hdb_close = hdb_samba4_close;
  4. (HDB *)->hdb_fetch = hdb_samba4_fetch;
  5. (HDB *)->hdb_store = hdb_samba4_store;
  6. (HDB *)->hdb_remove = hdb_samba4_remove;
  7. (HDB *)->hdb_firstkey = hdb_samba4_firstkey;
  8. (HDB *)->hdb_nextkey = hdb_samba4_nextkey;
  9. (HDB *)->hdb_lock = hdb_samba4_lock;
  10. (HDB *)->hdb_unlock = hdb_samba4_unlock;
  11. (HDB *)->hdb_rename = hdb_samba4_rename;
  12. (HDB *)->hdb__get = NULL;
  13. (HDB *)->hdb__put = NULL;
  14. (HDB *)->hdb__del = NULL;
  15. (HDB *)->hdb_destroy = hdb_samba4_destroy;
  16. (HDB *)->hdb_check_pkinit_ms_upn_match = hdb_samba4_check_pkinit_ms_upn_match
  17. (HDB *)->hdb_check_constrained_delegation = hdb_samba4_check_constrained_delegation

Samba4's hdb_ library also includes a local function invoked via a function-pointer:

  1. hdb_ldb_free_entry in kdc/hdb-samba4.c

This function-pointer gets used by both Heimdal & Samba4.


Heimdal's internal hdb library

This library isn't completely "internal," because four of these routines get used by Samba4, too:

  1. initialize_hdb_error_table_r
  2. free_hdb_entry
  3. hdb_enctype2key
  4. hdb_free_entry

Further, the global struct hdb_kt_ops{} gets used only by Samba4.

Two functions here, hdb_lock & hdb_unlock, have the same names as two of the hdb_samba4 function-pointers (see above):

  1. (HDB *)->hdb_lock ,
  2. (HDB *)->hdb_unlock .

Of these 72 functions:

  1. Four get used by Samba4;
  2. Seven are used by Heimdal's kdc & tgs code;
  3. Seven are used by Heimdal's NDBM & DB code (Heiumdal's alternatives to Samba's ldb);
  4. 27 are used only internally, by the hdb library.
  5. 39 are unused.

Entry-point heimdal/lib/hdb file Heim use Smb4 use
copy_hdb_entry asn1_hdb_entry.c
copy_hdb_entry_alias asn1_hdb_entry_alias.c
decode_hdb_entry asn1_hdb_entry.c
decode_hdb_entry_alias asn1_hdb_entry_alias.c
encode_hdb_entry asn1_hdb_entry.c
encode_hdb_entry_alias asn1_hdb_entry_alias.c
free_hdb_entry asn1_hdb_entry.c hdb ++ hdb_samba4 +
free_hdb_entry_alias asn1_hdb_entry_alias.c
initialize_hdb_error_table hdb_err.c
initialize_hdb_error_table_r hdb_err.c hdb kdc
length_hdb_entry asn1_hdb_entry.c
length_hdb_entry_alias asn1_hdb_entry_alias.c
_hdb_fetch common.c hdb
_hdb_store common.c hdb
_hdb_remove common.c hdb
_hdb_find_master_key mkey.c hdb
_hdb_mkey_decrypt mkey.c hdb
_hdb_mkey_version mkey.c hdb
hdb_add_master_key mkey.c
hdb_check_db_format hdb.c NDBM, DB, hdb
hdb_clear_extension ext.c hdb
hdb_clear_master_key mkey.c NDBM, DB
hdb_create hdb.c hdb
hdb_db_dr dbinfo.c kdc
hdb_dbinfo_get_acl_file dbinfo.c
hdb_dbinfo_get_binding dbinfo.c
hdb_dbinfo_get_dbname dbinfo.c
hdb_dbinfo_get_label dbinfo.c
hdb_dbinfo_get_log_file dbinfo.c
hdb_dbinfo_get_mkey_file dbinfo.c
hdb_dbinfo_get_next dbinfo.c
hdb_dbinfo_get_realm dbinfo.c
hdb_free_dbinfo dbinfo.c
hdb_get_dbinfo dbinfo.c
hdb_default_db dbinfo.c
hdb_init_db hdb.c NDBM, DB, hdb
hdb_enctype2key hdb.c kdc ++, tgs ++ kdc
hdb_entry_check_mandatory ext.c
hdb_entry_clear_password ext.c
hdb_entry_get_aliases ext.c
hdb_entry_get_ConstrainedDelegACL ext.c tgs
hdb_entry_get_password ext.c kdc
hdb_entry_get_pkinit_acl ext.c kdc
hdb_entry_get_pkinit_hash ext.c
hdb_entry_get_pw_change_time ext.c
hdb_entry_set_password ext.c
hdb_entry_set_pw_change_time ext.c
hdb_find_extension ext.c hdb ++
hdb_foreach hdb.c
hdb_free_entry hdb.c NDBM, DB, kdc, hdb + kdc ++
hdb_free_key hdb.c
hdb_free_keys keys.c
hdb_free_master_key mkey.c hdb
hdb_generate_key_set keys.c hdb
hdb_generate_key_set_password keys.c
hdb_kt_ops{} keytab.c kdc
hdb_list_builtin hdb.c
hdb_lock hdb.c NDBM, DB
hdb_next_enctype2key hdb.c kdc +, hdb
hdb_process_master_key mkey.c hdb ++
hdb_read_master_key mkey.c hdb
hdb_replace_extension ext.c hdb
hdb_seal_key mkey.c
hdb_seal_keys mkey.c
hdb_seal_key_mkey mkey.c hdb
hdb_seal_keys_mkey mkey.c hdb
hdb_set_master_key mkey.c
hdb_set_master_keyfile mkey.c hdb +
hdb_unlock hdb.c NDBM, DB
hdb_unseal_key mkey.c
hdb_unseal_keys mkey.c NDBM, DB
hdb_unseal_key_mkey mkey.c hdb
hdb_unseal_keys_mkey mkey.c hdb

Samba's internal ldb library

These routines are defined & used only in Samba4, and not in Samba4's heimdal snapshot tree. The ldb functions are used by Samba4's hdb_samba4 interface, which Heimdal does use, via the hdb_*** function-pointers.

Two function-families are defined in a spread-out way:

  1. The eight ldb_attr_ functions are defined in four source-files;
  2. The seven ldb_request functions are defined in four source-files.

Key to the columns:

  1. *srv : used by rpc_server, smb_server, etc (7 *_server components in all).
  2. dsdb : used by dsdb/samdb
  3. net  : used by libnet
  4. ldb  : used by ldb itself
  5. other: used by other components, listed in the function's "other" cell
  6. ldb grp: a makeshift subgrouping of ldb, for sorting the functions by type.

The column-headings are clickable.

Entry-point Samba4 file *srv dsdb net ldb other ldb grp
ldb_search common/ldb.c ++ ++ ++ ++ param basic
ldb_errstring common/ldb.c ++ ++ ++ ++ kdc, param basic
ldb_add common/ldb.c + + + ++ param basic
ldb_debug common/ldb_debug.c 1 ++ ++ basic
ldb_wait common/ldb.c 1 + 1 ++ basic
ldb_delete common/ldb.c 1 + ++ param basic
ldb_request common/ldb.c 1 + ++ basic
ldb_connect common/ldb.c 1 ++ param basic
ldb_init common/ldb.c 1 ++ basic
ldb_modify common/ldb.c + + + + param basic
ldb_rename common/ldb.c 1 1 + param basic
ldb_qsort common/qsort.c 1 1 1 1 basic
ldb_attr_cmp ldb/include/ldb.h ++ ++ attr
ldb_attr_in_list common/ldb_msg.c + + attr
ldb_attr_casefold common/ldb_utf8.c + attr
ldb_setup_wellknown_attributes common/ldb_attributes.c + attr
ldb_attr_list_copy_add common/ldb_msg.c 1 1 attr
ldb_valid_attr_name common/ldb_utf8.c 1 attr
ldb_attr_dn common/ldb_utf8.c 1 attr
ldb_attr_list_copy common/ldb_msg.c 1 attr
ldb_ldap_backend_ops ldb_ildap/ldb_ildap.c backend_ops
ldb_ldapi_backend_ops ldb_ildap/ldb_ildap.c backend_ops
ldb_ldaps_backend_ops ldb_ildap/ldb_ildap.c backend_ops
ldb_tdb_backend_ops ldb_ldap/ldb_tdb.c backend_ops
ldb_get_default_basedn common/ldb.c + + + kdc, auth basedn
ldb_get_root_basedn common/ldb.c + + 1 basedn
ldb_get_config_basedn common/ldb.c 1 1 basedn
ldb_get_schema_basedn common/ldb.c 1 1 basedn
ldb_build_search_req_ex common/ldb.c ++ ++ build...req
ldb_build_add_req common/ldb.c ++ + build...req
ldb_build_del_req common/ldb.c ++ + build...req
ldb_build_mod_req common/ldb.c ++ + build...req
ldb_build_rename_req common/ldb.c ++ + build...req
ldb_build_search_req common/ldb.c ++ + build...req
ldb_build_extended_req common/ldb.c 1 + build...req
ldb_debug_set common/ldb_debug.c 1 + + debug
ldb_set_debug common/ldb_debug.c + debug
ldb_set_debug_stderr common/ldb_debug.c 1 registry debug
ldb_dn_new common/ldb_dn.c ++ ++ ++ ++ gpo, auth, winbind, utils, param, ntptr dn
ldb_dn_get_linearized common/ldb_dn.c ++ ++ ++ ++ kdc, gpo, auth dn
ldb_dn_add_child_fmt common/ldb_dn.c ++ + + + dn
ldb_dn_new_fmt common/ldb_dn.c + + ++ + winbind, param, ntptr dn
ldb_dn_copy common/ldb_dn.c + + + ++ utils dn
ldb_dn_validate common/ldb_dn.c + + + ++ utils dn
ldb_dn_alloc_linearized common/ldb_dn.c 1 + + ++ dn
ldb_dn_compare common/ldb_dn.c 1 ++ + + dn
ldb_dn_is_special common/ldb_dn.c 1 ++ ++ dn
ldb_dn_get_parent common/ldb_dn.c 1 + + + dn
ldb_dn_get_component_val common/ldb_dn.c + + + dn
ldb_dn_get_comp_num common/ldb_dn.c + + + dn
ldb_dn_get_component_name common/ldb_dn.c + + + dn
ldb_dn_from_ldb_val common/ldb_dn.c 1 + + auth dn
ldb_dn_get_extended_linearized common/ldb_dn.c 1 + + dn
ldb_dn_get_rdn_val common/ldb_dn.c 1 + + dn
ldb_dn_get_rdn_name common/ldb_dn.c 1 + + dn
ldb_dn_add_base common/ldb_dn.c + + dn
ldb_dn_set_component common/ldb_dn.c + + dn
ldb_dn_compare_base common/ldb_dn.c + + dn
ldb_dn_remove_base_components common/ldb_dn.c + + dn
ldb_dn_has_extended common/ldb_dn.c + + dn
ldb_dn_is_null common/ldb_dn.c + + dn
ldb_dn_is_valid common/ldb_dn.c + + dn
ldb_dn_canonical_string common/ldb_dn.c 1 1 + dn
ldb_dn_add_base_fmt common/ldb_dn.c 1 + dn
ldb_dn_canonical_ex_string common/ldb_dn.c 1 + dn
ldb_dn_escape_value common/ldb_dn.c + dn
ldb_dn_check_local ldb_map/ldb_map.c + dn
ldb_dn_check_special common/ldb_dn.c + dn
ldb_dn_alloc_casefold common/ldb_dn.c + dn
ldb_dn_extended_syntax_by_name common/ldb_attributes.c + dn
ldb_dn_get_casefold common/ldb_dn.c + dn
ldb_dn_get_extended_component common/ldb_dn.c + auth dn
ldb_dn_set_extended_compo common/ldb_dn.c + dn
ldb_dn_map_local ldb_map/ldb_map.c + dn
ldb_dn_remove_child_components common/ldb_dn.c 1 1 dn
ldb_dn_add_child common/ldb_dn.c 1 dn
ldb_dn_extended_add_syntax common/ldb_attributes.c 1 dn
ldb_dn_map_rebase_remote ldb_map/ldb_map_outbound.c 1 dn
ldb_binary_encode common/ldb_parse.c 1 + + encoding
ldb_binary_encode_string common/ldb_parse.c + + auth encoding
ldb_should_b64_encode common/ldb_ldif.c + encoding
ldb_base64_decode common/ldb_ldif.c + encoding
ldb_base64_encode common/ldb_ldif.c + encoding
ldb_set_errstring common/ldb.c ++ ++ error
ldb_asprintf_errstring common/ldb.c ++ + error
ldb_strerror common/ldb.c + 1 + gpo error
ldb_reset_err_string common/ldb.c + + error
ldb_extended common/ldb.c + 1 extended
ldb_extended_default_callback common/ldb.c + 1 extended
ldb_get_opaque common/ldb.c 1 ++ ++ kdc get/set
ldb_set_opaque common/ldb.c + ++ ++ scripting get/set
ldb_get_event_context common/ldb.c + + get/set
ldb_get_create_perms common/ldb.c 1 get/set
ldb_set_create_perms common/ldb.c + get/set
ldb_ldif_write_file common/ldb_ldif.c + ++ ldif
ldb_ldif_read_file common/ldb_ldif.c + ldif
ldb_ldif_read_free common/ldb_ldif.c + ldif
ldb_ldif_read_string common/ldb_ldif.c + 1 ldif
ldb_wrap_connect lib/ldb_wrap.c + + + 1 gpo, auth, winbind, param, ntptr misc
ldb_next_init common/ldb_modules.c ++ + misc
ldb_mod_register_control common/ldb_modules.c + + misc
ldb_handle_new common/ldb_modules.c 1 + misc
ldb_cmdline_process tools/cmdline.c + misc
ldb_comparison_binary common/attrib_handlers.c + misc
ldb_connect_backend common/ldb_modules.c 1 1 misc
ldb_handler_copy common/attrib_handlers.c + misc
ldb_map_init ldb_map/ldb_map.c + misc
ldb_op_default_callback common/ldb_modules.c 1 + misc
ldb_register_samba_handle /ldb-samba/ldif_handlers.c + scripting misc
ldb_reply_get_control common/ldb_controls.c 1 1 misc
ldb_search_default_callback common/ldb.c + 1 + gpo misc
ldb_sequence_number common/ldb.c + misc
ldb_module_get_ctx common/ldb_modules.c + +++ ++ module
ldb_module_done common/ldb_modules.c +++ ++ module
ldb_module_get_private common/ldb_modules.c ++ ++ module
ldb_module_send_entry common/ldb_modules.c ++ ++ module
ldb_module_send_referral common/ldb_modules.c ++ + module
ldb_module_set_private common/ldb_modules.c + + module
ldb_modules_list_from_string common/ldb_modules.c 1 + module
ldb_init_module_chain common/ldb_modules.c 1 + module
ldb_load_modules common/ldb_modules.c 1 + module
ldb_module_new common/ldb_modules.c + module
ldb_load_modules_list common/ldb_modules.c 1 1 module
ldb_register_module common/ldb_modules.c 1 module_ops
ldb_anr_module_ops sambdb/ldb_modules/anr.c module_ops
ldb_asq_module_ops ldb/modules/asq.c module_ops
ldb_dsdb_cache_module_ops ldb_modules/dsdb_cache.c module_ops
ldb_entryuuid_module_ops ldb_modules/simple_ldap_map.c module_ops
ldb_extended_dn_in_module_ops ldb_modules/extended_dn_in.c module_ops
ldb_extended_dn_out_dereference_module_ops ldb_modules/extended_dn_out.c module_ops
ldb_extended_dn_out_ldb_module_ops ldb_modules/extended_dn_out.c module_ops
ldb_extended_dn_store_module_ops ldb_modules/extended_dn_store.c module_ops
ldb_instancetype_module_ops ldb_modules/instancetype.c module_ops
ldb_kludge_acl_module_ops ldb_modules/kludge_acl.c module_ops
ldb_linked_attributes_module_ops ldb_modules/linked_attributes.c module_ops
ldb_local_password_module_ops ldb_modules/local_password.c module_ops
ldb_naming_fsmo_module_ops ldb_modules/naming_fsmo.c module_ops
ldb_nsuniqueid_module_ops ldb_modules/simple_ldap_map.c module_ops
ldb_objectclass_module_ops ldb_modules/objectclass.c module_ops
ldb_objectguid_module_ops ldb_modules/objectguid.c module_ops
ldb_operational_module_ops ldb_modules/operational.c module_ops
ldb_paged_results_module_ops ldb_modules/paged_results.c module_ops
ldb_paged_searches_module_ops ldb_modules/paged_searches.c module_ops
ldb_partition_module_ops ldb_modules/partition.c module_ops
ldb_password_hash_module_ops ldb_modules/password_hash.c module_ops
ldb_pdc_fsmo_module_ops ldb_modules/pdc_fsmo.c module_ops
ldb_proxy_module_ops ldb_modules/proxy.c module_ops
ldb_ranged_results_module_ops ldb_modules/ranged_results.c module_ops
ldb_rdn_name_module_ops ldb_modules/rdn_name.c module_ops
ldb_repl_meta_data_module_ops ldb_modules/repl_meta_data.c module_ops
ldb_rootdse_module_ops ldb_modules/rootdse.c module_ops
ldb_samba3sam_module_ops ldb_modules/samba3sam.c module_ops
ldb_samldb_module_ops ldb_modules/samldb.c module_ops
ldb_sample_module_ops ldb_modules/sample_module.c module_ops
ldb_schema_fsmo_module_ops ldb_modules/schema_fsmo.c module_ops
ldb_server_sort_module_ops ldb_modules/sort.c module_ops
ldb_show_deleted_module_ops ldb_modules/show_deleted.c module_ops
ldb_skel_module_ops ldb_modules/skel.c module_ops
ldb_subtree_delete_module_ops ldb_modules/subtree_delete.c module_ops
ldb_subtree_rename_module_ops ldb_modules/subtree_rename.c module_ops
ldb_update_keytab_module_ops ldb_modules/update_keytab.c module_ops
ldb_wins_ldb_module_ops ldb_modules/wins_ldb.c module_ops
ldb_msg_find_element common/ldb_msg.c + +++ 1 + kdc, gpo, registry msg
ldb_msg_add_string common/ldb_msg.c + ++ + + winbind, utils, param, registry msg
ldb_msg_add_value common/ldb_msg.c + ++ + + winbind, param, registry msg
ldb_msg_new common/ldb_msg.c ++ + + + kdc, registry, winbind, utils, param msg
ldb_msg_find_attr_as_string common/ldb_msg.c + ++ + + kdc, gpo, auth, registry, winbind, utils, param msg
ldb_msg_find_ldb_val common/ldb_msg.c + ++ + + kdc, gpo, auth, winbind, param msg
ldb_msg_find_attr_as_uint common/ldb_msg.c ++ + + 1 kdc, winbind, msg
ldb_msg_add_fmt common/ldb_msg.c ++ + + 1 param msg
ldb_msg_find_attr_as_uint64 common/ldb_msg.c ++ + + msg
ldb_msg_add_empty common/ldb_msg.c + ++ + winbind, param msg
ldb_msg_copy common/ldb_msg.c ++ + msg
ldb_msg_copy_shallow common/ldb_msg.c ++ + msg
ldb_msg_find_attr_as_dn common/ldb_msg.c + + + msg
ldb_msg_find_attr_as_int common/ldb_msg.c + + + kdc, auth msg
ldb_msg_remove_attr common/ldb_msg.c ++ + msg
ldb_msg_add_steal_value common/ldb_msg.c + + msg
ldb_msg_canonicalize common/ldb_msg.c + + msg
ldb_msg_remove_element common/ldb_msg.c + + msg
ldb_msg_sanity_check common/ldb_msg.c + + msg
ldb_msg_add_steal_string common/ldb_msg.c 1 + 1 msg
ldb_msg_check_string_attribute common/ldb_msg.c + 1 msg
ldb_msg_add common/ldb_msg.c 1 + msg
ldb_msg_diff common/ldb_msg.c + 1 msg
ldb_msg_find_attr_as_int64 common/ldb_msg.c + 1 msg
ldb_msg_element_compare common/ldb_msg.c + msg
ldb_msg_element_compare_name common/ldb_msg.c + msg
ldb_msg_find_val common/ldb_msg.c + kdc msg
ldb_msg_sort_elements common/ldb_msg.c + msg
ldb_match_msg common/ldb_match.c + msg
ldb_msg_find_attr_as_bool common/ldb_msg.c 1 msg
ldb_msg_copy_attr common/ldb_msg.c 1 msg
ldb_filter_from_tree common/ldb_parse.c + + + parse
ldb_parse_tree common/ldb_parse.c 1 + parse
ldb_parse_tree_attr_replace common/ldb_parse.c 1 + parse
ldb_parse_control_strings common/ldb_controls.c + parse
ldb_casefold common/ldb_utf8.c + parse
ldb_set_utf8_fns common/ldb_utf8.c + parse
ldb_set_utf8_default common/ldb_utf8.c 1 parse
ldb_samba_syntax_by_lDAPDisplayName ldb-samba/ldif_handlers.c 1 parse
ldb_samba_syntax_by_name ldb-samba/ldif_handlers.c 1 + parse
ldb_standard_syntax_by_name common/attrib_handlers.c 1 + parse
ldb_next_request common/ldb_modules.c +++ ++ request
ldb_request_done common/ldb.c + ++ request
ldb_request_add_control common/ldb_controls.c 1 + 1 request
ldb_request_get_control common/ldb_controls.c 1 + + request
ldb_request_get_status common/ldb.c + request
ldb_request_set_state common/ldb.c + request
ldb_next_remote_request ldb_map/ldb_map.c + request
ldb_schema_attribute_by_name common/ldb_attributes.c + ++ schema
ldb_schema_attribute_add common/ldb_attributes.c + schema
ldb_schema_attribute_add_with_syntax common/ldb_attributes.c + schema
ldb_schema_attribute_remove common/ldb_attributes.c + schema
ldb_schema_attribute_set_override_handler common/ldb_attributes.c 1 schema
ldb_set_default_dns common/ldb.c 1 1 set
ldb_set_modules_dir common/ldb_modules.c + set
ldb_set_timeout common/ldb.c + 1 + set
ldb_string_to_time common/ldb_msg.c + + + time
ldb_string_utc_to_time common/ldb_msg.c 1 time
ldb_timestring common/ldb_msg.c + + + time
ldb_timestring_utc common/ldb_msg.c 1 time
ldb_transaction_cancel common/ldb.c ++ + + kdc, winbind, registry transaction
ldb_transaction_commit common/ldb.c + 1 + kdc, registry, winbind transaction
ldb_transaction_start common/ldb.c + 1 + kdc, registry, winbind transaction
ldb_next_del_trans common/ldb_modules.c + 1 transaction
ldb_next_end_trans common/ldb_modules.c + 1 transaction
ldb_next_start_trans common/ldb_modules.c 1 1 transaction
ldb_val_dup common/ldb_msg.c + + val
ldb_val_equal_exact common/ldb_msg.c + val
ldb_val_map_local ldb_map/ldb_map.c + val
ldb_val_map_remote ldb_map/ldb_map.c + val