3 import "server_id.idl";
8 * The main server code should just work with
9 * 'struct smbXsrv_session' and never use
10 * smbXsrv_session0, smbXsrv_sessionU
11 * and smbXsrv_sessionB directly.
13 * We need to change the smbXsrv_session,
14 * we can just point it to smbXsrv_session1
15 * and could implement transparent mapping.
17 cpp_quote("#define smbXsrv_session smbXsrv_session0")
20 pointer_default(unique)
26 [charset(UTF8),string] char *local_address;
27 [charset(UTF8),string] char *remote_address;
28 [charset(UTF8),string] char *remote_name;
29 DATA_BLOB signing_key;
30 } smbXsrv_channel_global0;
33 [ignore] db_record *db_rec;
34 uint32 session_global_id;
35 hyper session_wire_id;
37 NTTIME expiration_time;
39 * auth_session is NULL until the
40 * session is valid for the first time.
42 auth_session_info *auth_session_info;
43 [range(1, 1024)] uint32 num_channels;
44 smbXsrv_channel_global0 channels[num_channels];
45 } smbXsrv_session_global0;
48 [case(0)] smbXsrv_session_global0 *info0;
49 [default] hyper *dummy;
50 } smbXsrv_session_globalU;
52 typedef [public] struct {
55 [switch_is(version)] smbXsrv_session_globalU info;
56 } smbXsrv_session_globalB;
58 void smbXsrv_session_global_decode(
59 [in] smbXsrv_session_globalB blob
63 [ignore] db_record *db_rec;
64 [ignore] smbXsrv_connection *connection;
66 [ref] smbXsrv_session_global0 *global;
69 [ignore] gensec_security *gensec;
70 [ignore] smbXsrv_tcon_table *tcon_table;
71 [ignore] smbXsrv_open_table *open_table;
75 [case(0)] smbXsrv_session0 *info0;
76 [default] hyper *dummy;
79 typedef [public] struct {
81 [value(0)] uint32 reserved;
82 [switch_is(version)] smbXsrv_sessionU info;
85 void smbXsrv_session_decode(
86 [in] smbXsrv_sessionB blob