* TEST implementation of an Shadow Copy module
*
* Copyright (C) Stefan Metzmacher 2003
+ * Copyright (C) Jeremy Allison 2009.
*
* 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
+ * 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,
* 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.
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#include "includes.h"
+#include "../source3/include/includes.h"
+#include "ntioctl.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_VFS
Directories are always displayed...
*/
-static int test_get_shadow_copy_data(vfs_handle_struct *handle, files_struct *fsp, SHADOW_COPY_DATA *shadow_copy_data, BOOL labels)
+static int test_get_shadow_copy_data(vfs_handle_struct *handle,
+ files_struct *fsp,
+ struct shadow_copy_data *shadow_copy_data,
+ bool labels)
{
- uint32 num = 3;
- uint32 i;
+ uint32_t num = 3;
+ uint32_t i;
shadow_copy_data->num_volumes = num;
if (labels) {
- shadow_copy_data->labels = TALLOC_ZERO_ARRAY(shadow_copy_data->mem_ctx,SHADOW_COPY_LABEL,num);
+ if (num) {
+ shadow_copy_data->labels = talloc_zero_array(shadow_copy_data,SHADOW_COPY_LABEL,num);
+ } else {
+ shadow_copy_data->labels = NULL;
+ }
for (i=0;i<num;i++) {
snprintf(shadow_copy_data->labels[i], sizeof(SHADOW_COPY_LABEL), "@GMT-2003.08.05-12.%02u.00",i);
}
/* VFS operations structure */
-static vfs_op_tuple shadow_copy_test_ops[] = {
- {SMB_VFS_OP(test_get_shadow_copy_data), SMB_VFS_OP_GET_SHADOW_COPY_DATA,SMB_VFS_LAYER_OPAQUE},
-
- {SMB_VFS_OP(NULL), SMB_VFS_OP_NOOP, SMB_VFS_LAYER_NOOP}
+static struct vfs_fn_pointers vfs_test_shadow_copy_fns = {
+ .get_shadow_copy_data_fn = test_get_shadow_copy_data
};
-NTSTATUS init_module(void)
+static_decl_vfs;
+NTSTATUS vfs_shadow_copy_test_init(TALLOC_CTX *ctx)
{
- return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "shadow_copy_test", shadow_copy_test_ops);
+ return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
+ "shadow_copy_test",
+ &vfs_test_shadow_copy_fns);
}