summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_map/ldb_map.h
blob: 6d6e47873c12a36614c2c0b6b80b8bb4ce811e47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
struct objectclass_mapping {
	char *local_name;
	char *remote_name;

	char *key; /* Name of attribute used in rdn */

	/* For mapping attributes used in searches */
	struct local_attribute_mapping {
		char *local_name;

		/* Attributes to request from the server for this attribute, 
		 * needed by generate */
		char *required_attributes[]; 

		/* If not set, the value for the first element of 
		 * required_attributes will simply be used here */
		struct ldb_message_element *(*generate) (LDAPMessage *msg); 
	} *local_attribute_mappings;

	/* Generate LDAPMod for adds and modifies */
	LDAPMod *(*generate_mod)(struct ldb_message *);
}

struct ldb_map_backend {
	struct objectclass_mapping *objectclass_mappings;
};

const char *ldb_map_dn(const char *old);
const char *ldb_map_rdn(const char *old);