sysdb_services.h revision d0483eefc41ac295ed4c56e08ad76ca7b5fb3b2c
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz/*
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SSSD
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz Authors:
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz Stephen Gallagher <sgallagh@redhat.com>
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz Copyright (C) 2012 Red Hat
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz This program is free software; you can redistribute it and/or modify
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz it under the terms of the GNU General Public License as published by
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz the Free Software Foundation; either version 3 of the License, or
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz (at your option) any later version.
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz This program is distributed in the hope that it will be useful,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz but WITHOUT ANY WARRANTY; without even the implied warranty of
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz GNU General Public License for more details.
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz You should have received a copy of the GNU General Public License
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz along with this program. If not, see <http://www.gnu.org/licenses/>.
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz*/
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#ifndef SYSDB_SERVICES_H_
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SERVICES_H_
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_CLASS "service"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_CONTAINER "cn=services"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SC "objectclass="SYSDB_SVC_CLASS
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_PORT "servicePort"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_PROTO "serviceProtocol"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_TMPL_SVC_BASE SYSDB_SVC_CONTAINER",cn=%s,"SYSDB_BASE
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_TMPL_SVC SYSDB_NAME"=%s,"SYSDB_TMPL_SVC_BASE
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_BYNAME_FILTER "(&("SYSDB_SC")("SYSDB_SVC_PROTO"=%s)(|("SYSDB_NAME_ALIAS"=%s)("SYSDB_NAME"=%s)))"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_BYPORT_FILTER "(&("SYSDB_SC")("SYSDB_SVC_PROTO"=%s)("SYSDB_SVC_PORT"=%u))"
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#define SYSDB_SVC_ATTRS { \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SYSDB_NAME, \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SYSDB_NAME_ALIAS, \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SYSDB_SVC_PORT, \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SYSDB_SVC_PROTO, \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz SYSDB_DEFAULT_ATTRS, \
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz NULL }
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_getservbyname(TALLOC_CTX *mem_ctx,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *name,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *proto,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct ldb_result **_res);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_getservbyport(TALLOC_CTX *mem_ctx,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz int port,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *proto,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct ldb_result **_res);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_enumservent(TALLOC_CTX *mem_ctx,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct ldb_result **_res);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_store_service(struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *primary_name,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz int port,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char **aliases,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char **protocols,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_attrs *extra_attrs,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz char **remove_attrs,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz uint64_t cache_timeout,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz time_t now);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzstruct ldb_dn *
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_svc_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *domain, const char *name);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_svc_delete(struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *name,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz int port,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *proto);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzsysdb_set_service_attr(struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *name,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_attrs *attrs,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz int mod_op);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulzerrno_t sysdb_search_services(TALLOC_CTX *mem_ctx,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct sysdb_ctx *sysdb,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char *sub_filter,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz const char **attrs,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz size_t *msgs_count,
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz struct ldb_message ***msgs);
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz#endif /* SYSDB_SERVICES_H_ */
f474203c4cef7d85cb078f15ce5c2cea71e9a030Ewaryst Schulz