TODO s3:smbXsrv.idl: add smbXsrv_open*
authorStefan Metzmacher <metze@samba.org>
Mon, 12 Mar 2012 17:38:07 +0000 (18:38 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 May 2012 16:34:11 +0000 (18:34 +0200)
metze

source3/librpc/idl/smbXsrv.idl

index 3b55efbe1f5a261d799a94f601569c48ba54c2d2..3a7fd240847fac493ff6936907ec3c6d561617be 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)
@@ -94,4 +96,59 @@ 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;
+               boolean8                        persistent;
+               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
+               );
+
 }