summaryrefslogtreecommitdiffstats
path: root/server/db/sysdb_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/db/sysdb_private.h')
-rw-r--r--server/db/sysdb_private.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/server/db/sysdb_private.h b/server/db/sysdb_private.h
new file mode 100644
index 000000000..c649af4aa
--- /dev/null
+++ b/server/db/sysdb_private.h
@@ -0,0 +1,95 @@
+
+/*
+ SSSD
+
+ Private System Database Header
+
+ Copyright (C) Simo Sorce <ssorce@redhat.com> 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __INT_SYS_DB_H__
+#define __INT_SYS_DB_H__
+
+#define SYSDB_VERSION "0.1"
+
+#define SYSDB_BASE_LDIF \
+ "dn: @ATTRIBUTES\n" \
+ "userPrincipalName: CASE_INSENSITIVE\n" \
+ "cn: CASE_INSENSITIVE\n" \
+ "dc: CASE_INSENSITIVE\n" \
+ "dn: CASE_INSENSITIVE\n" \
+ "name: CASE_INSENSITIVE\n" \
+ "objectclass: CASE_INSENSITIVE\n" \
+ "\n" \
+ "dn: @INDEXLIST\n" \
+ "@IDXATTR: cn\n" \
+ "@IDXATTR: objectclass\n" \
+ "@IDXATTR: member\n" \
+ "@IDXATTR: memberof\n" \
+ "@IDXATTR: memberuid\n" \
+ "@IDXATTR: uid\n" \
+ "@IDXATTR: gid\n" \
+ "@IDXATTR: uidNumber\n" \
+ "@IDXATTR: gidNumber\n" \
+ "@IDXATTR: lastUpdate\n" \
+ "\n" \
+ "dn: @MODULES\n" \
+ "@LIST: asq,memberof\n" \
+ "\n" \
+ "dn: cn=sysdb\n" \
+ "cn: sysdb\n" \
+ "version: 0.1\n" \
+ "description: base object\n" \
+ "\n" \
+ "dn: cn=LOCAL,cn=sysdb\n" \
+ "cn: local\n" \
+ "description: Local system data\n" \
+ "\n" \
+ "dn: cn=Users,cn=LOCAL,cn=sysdb\n" \
+ "cn: users\n" \
+ "description: Local POSIX users\n" \
+ "\n" \
+ "dn: cn=Groups,cn=LOCAL,cn=sysdb\n" \
+ "cn: groups\n" \
+ "description: Local POSIX groups\n" \
+ "\n"
+
+#include "db/sysdb.h"
+
+struct sysdb_req;
+
+struct sysdb_ctx {
+ struct tevent_context *ev;
+ struct ldb_context *ldb;
+ char *ldb_file;
+ struct sysdb_req *queue;
+};
+
+typedef void (*sysdb_req_fn_t)(struct sysdb_req *, void *pvt);
+
+int sysdb_error_to_errno(int ldberr);
+
+int sysdb_transaction(TALLOC_CTX *mem_ctx,
+ struct sysdb_ctx *ctx,
+ sysdb_req_fn_t fn, void *pvt);
+void sysdb_transaction_done(struct sysdb_req *req, int status);
+
+int sysdb_operation(TALLOC_CTX *mem_ctx,
+ struct sysdb_ctx *ctx,
+ sysdb_req_fn_t fn, void *pvt);
+void sysdb_operation_done(struct sysdb_req *req);
+
+#endif /* __INT_SYS_DB_H__ */