smbXsrv.idl: *_key...
[metze/samba/wip.git] / source3 / librpc / idl / smbXsrv.idl
index f6987302e3a76627c273e91bbc5e3be6099aef4c..6f81863b2d7131e58453dee5c394e588ef59d545 100644 (file)
@@ -3,6 +3,7 @@
 import "server_id.idl";
 import "security.idl";
 import "auth.idl";
+import "file_id.idl";
 
 /*
  * The main server code should just work with
@@ -15,6 +16,7 @@ import "auth.idl";
  * and could implement transparent mapping.
  */
 cpp_quote("#define smbXsrv_session smbXsrv_session0")
+cpp_quote("#define smbXsrv_open smbXsrv_open0")
 
 [
        pointer_default(unique)
@@ -42,6 +44,12 @@ interface smbXsrv
                 * session is valid for the first time.
                 */
                auth_session_info               *auth_session_info;
+               boolean8                        signing_required;
+               boolean8                        encryption_required;
+               DATA_BLOB                       signing_key;
+               DATA_BLOB                       encryption_key;
+               DATA_BLOB                       decryption_key;
+               DATA_BLOB                       application_key;
                [range(1, 1024)] uint32         num_channels;
                smbXsrv_channel_global0 channels[num_channels];
        } smbXsrv_session_global0;
@@ -88,4 +96,58 @@ interface smbXsrv
        void smbXsrv_session_decode(
                [in] smbXsrv_sessionB blob
                );
+
+       /* open files */
+
+       typedef struct {
+               [ignore] db_record              *db_rec;
+               server_id                       server_id;
+               uint32                          open_global_id;
+               hyper                           open_persistent_id;
+               hyper                           open_volatile_id;
+               boolean8                        durable;
+               NTTIME                          open_time;
+               [charset(UTF8),string] char     *open_path;
+               // TODO: DATA_BLOB                      backend_info;
+               file_id                         backend_file_id;
+       } smbXsrv_open_global0;
+
+       typedef union {
+               [case(0)] smbXsrv_open_global0 *info0;
+               [default] hyper *dummy;
+       } smbXsrv_open_globalU;
+
+       typedef [public] struct {
+               uint32          version;
+               uint32          seqnum;
+               [switch_is(version)] smbXsrv_open_globalU info;
+       } smbXsrv_open_globalB;
+
+       void smbXsrv_open_global_decode(
+               [in] smbXsrv_open_globalB blob
+               );
+
+       typedef struct {
+               [ignore] db_record                              *db_rec;
+               [ignore] smbXsrv_connection                     *connection;
+               uint32                                          local_id;
+               [ref] smbXsrv_open_global0                      *global;
+               [ignore] files_struct                           *fsp;
+       } smbXsrv_open0;
+
+       typedef union {
+               [case(0)] smbXsrv_open0                         *info0;
+               [default] hyper                                 *dummy;
+       } smbXsrv_openU;
+
+       typedef [public] struct {
+               uint32                                          version;
+               [value(0)] uint32                               reserved;
+               [switch_is(version)] smbXsrv_openU              info;
+       } smbXsrv_openB;
+
+       void smbXsrv_open_decode(
+               [in] smbXsrv_openB blob
+               );
+
 }