2 * File Server Remote VSS Protocol (FSRVP) server state
4 * Copyright (C) David Disseldorp 2012-2015
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 _SRV_FSS_PRIVATE_H_
21 #define _SRV_FSS_PRIVATE_H_
23 #define FSS_DB_NAME "srv_fss.tdb"
26 struct fss_sc_smap *next, *prev;
27 char *share_name; /* name of the base file share */
28 char *sc_share_name; /* share exposing the shadow copy */
29 char *sc_share_comment;
30 bool is_exposed; /* whether shadow copy is exposed */
34 struct fss_sc *next, *prev;
35 struct GUID id; /* GUID of the shadow copy */
37 char *volume_name; /* name uniquely identifying on the
38 * server object store on which this
39 * shadow copy is created. */
40 char *sc_path; /* path exposing the shadow copy */
41 time_t create_ts; /* timestamp of client initiation */
42 struct fss_sc_smap *smaps; /* shares mapped to this shadow copy */
44 struct fss_sc_set *sc_set; /* parent shadow copy set */
48 * 3.1.1.2: Per ShadowCopySet
49 * The status of the shadow copy set. This MUST be one of "Started", "Added",
50 * "CreationInProgress", "Committed", "Exposed", or "Recovered".
61 struct fss_sc_set *next, *prev;
62 struct GUID id; /* GUID of the shadow copy set. */
64 enum fss_sc_state state; /* status of the shadow copy set */
65 uint32_t context; /* attributes used for set creation */
66 struct fss_sc *scs; /* list of ShadowCopy objects */
71 TALLOC_CTX *mem_ctx; /* parent mem ctx for sc sets */
75 bool ctx_set; /* whether client has set context */
77 struct fss_sc_set *sc_sets;
78 uint32_t sc_sets_count;
79 struct tevent_timer *seq_tmr; /* time to wait between client reqs */
82 NTSTATUS fss_state_store(TALLOC_CTX *mem_ctx,
83 struct fss_sc_set *sc_sets,
84 uint32_t sc_sets_count,
87 NTSTATUS fss_state_retrieve(TALLOC_CTX *mem_ctx,
88 struct fss_sc_set **sc_sets,
89 uint32_t *sc_sets_count,
92 #endif /*_SRV_FSS_PRIVATE_H_ */