4 import "smb2_lease_struct.idl";
8 pointer_default(unique)
12 typedef [public] struct {
14 smb2_lease_key lease_key;
17 typedef [public] struct {
19 [string,charset(UTF8)] char *servicepath;
20 [string,charset(UTF8)] char *base_name;
21 [string,charset(UTF8)] char *stream_name;
24 typedef [public] struct {
25 smb2_lease_state current_state;
27 * 'breaking' indicates that we're waiting
28 * for a lease break ack from the client
29 * and breaking_to_requested and breaking_to_required
32 * breaking_to_requested is the value already sent to
33 * the client, the client needs to ack to this (or less).
35 * breaking_to_required is the internal value that needs to
36 * be reached before we can reset breaking = false, this
37 * may requires multiple roundtrips to the client, e.g.
38 * when the lease broken to a more reduced value, while
39 * the lease break is still in progress.
41 * The following can be assumed (if breaking == true):
43 * current_state>breaking_to_requested>=breaking_to_required
46 smb2_lease_state breaking_to_requested;
47 smb2_lease_state breaking_to_required;
52 [size_is(num_files)] leases_db_file files[];