>From fff71c076d1dddd1fb0de5127a0a3388706274ba Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Thu, 5 Apr 2012 00:20:44 +0200 Subject: [PATCH 1/2] Add sysdb_set_service_attr and sysdb_set_autofsmap_attr --- src/db/sysdb_autofs.c | 28 ++++++++++++++++++++++++++++ src/db/sysdb_autofs.h | 6 ++++++ src/db/sysdb_services.c | 28 ++++++++++++++++++++++++++++ src/db/sysdb_services.h | 6 ++++++ 4 files changed, 68 insertions(+), 0 deletions(-) diff --git a/src/db/sysdb_autofs.c b/src/db/sysdb_autofs.c index e9d918e490714ae24ade6a746ad46c22c08eae3b..eff4e2969f18842fa637851bc729acfd9e7ba796 100644 --- a/src/db/sysdb_autofs.c +++ b/src/db/sysdb_autofs.c @@ -396,3 +396,31 @@ done: talloc_free(tmp_ctx); return ret; } + +errno_t +sysdb_set_autofsmap_attr(struct sysdb_ctx *sysdb, + const char *name, + struct sysdb_attrs *attrs, + int mod_op) +{ + errno_t ret; + struct ldb_dn *dn; + TALLOC_CTX *tmp_ctx; + + tmp_ctx = talloc_new(NULL); + if (!tmp_ctx) { + return ENOMEM; + } + + dn = sysdb_autofsmap_dn(tmp_ctx, sysdb, name); + if (!dn) { + ret = ENOMEM; + goto done; + } + + ret = sysdb_set_entry_attr(sysdb, dn, attrs, mod_op); + +done: + talloc_free(tmp_ctx); + return ret; +} diff --git a/src/db/sysdb_autofs.h b/src/db/sysdb_autofs.h index e8e5de466dd59d1c47552364fa550671890cf350..b18d505b4bae9db92af5d573edb427984a581791 100644 --- a/src/db/sysdb_autofs.h +++ b/src/db/sysdb_autofs.h @@ -85,4 +85,10 @@ sysdb_autofs_map_update_members(struct sysdb_ctx *sysdb, const char *const *add_entries, const char *const *del_entries); +errno_t +sysdb_set_autofsmap_attr(struct sysdb_ctx *sysdb, + const char *name, + struct sysdb_attrs *attrs, + int mod_op); + #endif /* _SYSDB_AUTOFS_H_ */ diff --git a/src/db/sysdb_services.c b/src/db/sysdb_services.c index 69326309967d9387c99d4f82c46ee52be29e6d57..d443fcd80f0219efbf1ef24bdd0a252eaa93441a 100644 --- a/src/db/sysdb_services.c +++ b/src/db/sysdb_services.c @@ -759,3 +759,31 @@ done: talloc_free(tmp_ctx); return ret; } + +errno_t +sysdb_set_service_attr(struct sysdb_ctx *sysdb, + const char *name, + struct sysdb_attrs *attrs, + int mod_op) +{ + errno_t ret; + struct ldb_dn *dn; + TALLOC_CTX *tmp_ctx; + + tmp_ctx = talloc_new(NULL); + if (!tmp_ctx) { + return ENOMEM; + } + + dn = sysdb_svc_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + if (!dn) { + ret = ENOMEM; + goto done; + } + + ret = sysdb_set_entry_attr(sysdb, dn, attrs, mod_op); + +done: + talloc_free(tmp_ctx); + return ret; +} diff --git a/src/db/sysdb_services.h b/src/db/sysdb_services.h index 97817d88b7a6b1f15b391109a0bfdae354bd22b7..29d531ed847027ae96f44170ed1f98b7e41693a3 100644 --- a/src/db/sysdb_services.h +++ b/src/db/sysdb_services.h @@ -85,4 +85,10 @@ sysdb_svc_delete(struct sysdb_ctx *sysdb, int port, const char *proto); +errno_t +sysdb_set_service_attr(struct sysdb_ctx *sysdb, + const char *name, + struct sysdb_attrs *attrs, + int mod_op); + #endif /* SYSDB_SERVICES_H_ */ -- 1.7.7.6