mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
9c66f601f1
Commit the classic backwards compatible module which is the default one
(This used to be commit a89cc346b9
)
106 lines
3.4 KiB
C
106 lines
3.4 KiB
C
/*
|
|
Unix SMB/CIFS implementation.
|
|
|
|
Modular services configuration
|
|
|
|
Copyright (C) Simo Sorce 2006
|
|
|
|
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 2 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, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#ifndef _SHARE_H
|
|
#define _SHARE_H
|
|
|
|
struct share_ops;
|
|
|
|
struct share_context {
|
|
const struct share_ops *ops;
|
|
void *priv_data;
|
|
};
|
|
|
|
struct share_config {
|
|
const char *name;
|
|
struct share_context *ctx;
|
|
void *opaque;
|
|
};
|
|
|
|
struct share_ops {
|
|
const char *name;
|
|
NTSTATUS (*init)(TALLOC_CTX *, const struct share_ops*, struct share_context **);
|
|
const char *(*string_option)(struct share_config *, const char *, const char *);
|
|
int (*int_option)(struct share_config *, const char *, int);
|
|
BOOL (*bool_option)(struct share_config *, const char *, BOOL);
|
|
const char **(*string_list_option)(TALLOC_CTX *, struct share_config *, const char *);
|
|
NTSTATUS (*list_all)(TALLOC_CTX *, struct share_context *, int *, const char ***);
|
|
NTSTATUS (*get_config)(TALLOC_CTX *, struct share_context *, const char *, struct share_config **);
|
|
NTSTATUS (*create_obj)(struct share_context *, const char *);
|
|
NTSTATUS (*delete_obj)(struct share_context *, const char *);
|
|
};
|
|
|
|
#include "param/share_proto.h"
|
|
|
|
/* list of shares options */
|
|
|
|
#define SHARE_NAME "name"
|
|
#define SHARE_PATH "path"
|
|
#define SHARE_COMMENT "comment"
|
|
#define SHARE_PASSWORD "password"
|
|
#define SHARE_HOSTS_ALLOW "hosts-allow"
|
|
#define SHARE_HOSTS_DENY "hosts-deny"
|
|
#define SHARE_NTVFS_HANDLER "ntvfs-handler"
|
|
#define SHARE_TYPE "type"
|
|
#define SHARE_VOLUME "volume"
|
|
#define SHARE_CSC_POLICY "csc-policy"
|
|
#define SHARE_AVAILABLE "available"
|
|
#define SHARE_BROWSEABLE "browseable"
|
|
#define SHARE_MAX_CONNECTIONS "max-connections"
|
|
|
|
/* I'd like to see the following options go away
|
|
* and always use EAs and SECDESCs */
|
|
#define SHARE_READONLY "readonly"
|
|
#define SHARE_MAP_SYSTEM "map-system"
|
|
#define SHARE_MAP_HIDDEN "map-hidden"
|
|
#define SHARE_MAP_ARCHIVE "map-archive"
|
|
|
|
#define SHARE_STRICT_LOCKING "strict-locking"
|
|
#define SHARE_STRICT_SYNC "strict-sync"
|
|
#define SHARE_MSDFS_ROOT "msdfs-root"
|
|
#define SHARE_CI_FILESYSTEM "ci-filesystem"
|
|
|
|
/* defaults */
|
|
|
|
#define SHARE_HOST_ALLOW_DEFAULT NULL
|
|
#define SHARE_HOST_DENY_DEFAULT NULL
|
|
#define SHARE_VOLUME_DEFAULT NULL
|
|
#define SHARE_TYPE_DEFAULT "DISK"
|
|
#define SHARE_CSC_POLICY_DEFAULT 0
|
|
#define SHARE_AVAILABLE_DEFAULT True
|
|
#define SHARE_BROWSEABLE_DEFAULT True
|
|
#define SHARE_MAX_CONNECTIONS_DEFAULT 0
|
|
|
|
/* I'd like to see the following options go away
|
|
* and always use EAs and SECDESCs */
|
|
#define SHARE_READONLY_DEFAULT True
|
|
#define SHARE_MAP_SYSTEM_DEFAULT False
|
|
#define SHARE_MAP_HIDDEN_DEFAULT False
|
|
#define SHARE_MAP_ARCHIVE_DEFAULT True
|
|
|
|
#define SHARE_STRICT_LOCKING_DEFAULT True
|
|
#define SHARE_STRICT_SYNC_DEFAULT False
|
|
#define SHARE_MSDFS_ROOT_DEFAULT False
|
|
#define SHARE_CI_FILESYSTEM_DEFAULT False
|
|
|
|
#endif /* _SHARE_H */
|