2
* Unix SMB/CIFS implementation.
3
* libsmbconf - Samba configuration library
4
* Copyright (C) Michael Adam 2008
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 3 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, see <http://www.gnu.org/licenses/>.
20
#ifndef __LIBSMBCONF_PRIVATE_H__
21
#define __LIBSMBCONF_PRIVATE_H__
24
#define GLOBAL_NAME "global"
27
#include "lib/smbconf/smbconf.h"
30
WERROR (*init)(struct smbconf_ctx *ctx, const char *path);
31
int (*shutdown)(struct smbconf_ctx *ctx);
32
bool (*requires_messaging)(struct smbconf_ctx *ctx);
33
bool (*is_writeable)(struct smbconf_ctx *ctx);
34
WERROR (*open_conf)(struct smbconf_ctx *ctx);
35
int (*close_conf)(struct smbconf_ctx *ctx);
36
void (*get_csn)(struct smbconf_ctx *ctx, struct smbconf_csn *csn,
37
const char *service, const char *param);
38
WERROR (*drop)(struct smbconf_ctx *ctx);
39
WERROR (*get_share_names)(struct smbconf_ctx *ctx,
43
bool (*share_exists)(struct smbconf_ctx *ctx, const char *service);
44
WERROR (*create_share)(struct smbconf_ctx *ctx, const char *service);
45
WERROR (*get_share)(struct smbconf_ctx *ctx,
47
const char *servicename,
48
struct smbconf_service **service);
49
WERROR (*delete_share)(struct smbconf_ctx *ctx,
50
const char *servicename);
51
WERROR (*set_parameter)(struct smbconf_ctx *ctx,
55
WERROR (*get_parameter)(struct smbconf_ctx *ctx,
60
WERROR (*delete_parameter)(struct smbconf_ctx *ctx,
61
const char *service, const char *param);
62
WERROR (*get_includes)(struct smbconf_ctx *ctx,
65
uint32_t *num_includes, char ***includes);
66
WERROR (*set_includes)(struct smbconf_ctx *ctx,
68
uint32_t num_includes, const char **includes);
69
WERROR (*delete_includes)(struct smbconf_ctx *ctx,
71
WERROR (*transaction_start)(struct smbconf_ctx *ctx);
72
WERROR (*transaction_commit)(struct smbconf_ctx *ctx);
73
WERROR (*transaction_cancel)(struct smbconf_ctx *ctx);
78
struct smbconf_ops *ops;
79
void *data; /* private data for use in backends */
82
WERROR smbconf_init_internal(TALLOC_CTX *mem_ctx, struct smbconf_ctx **conf_ctx,
83
const char *path, struct smbconf_ops *ops);
85
WERROR smbconf_add_string_to_array(TALLOC_CTX *mem_ctx,
90
bool smbconf_find_in_array(const char *string, char **list,
91
uint32_t num_entries, uint32_t *entry);
93
bool smbconf_reverse_find_in_array(const char *string, char **list,
94
uint32_t num_entries, uint32_t *entry);