uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
ndr->depth--;
}
-_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_client(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_client *r)
+static enum ndr_err_code ndr_push_smbXsrv_client_global0(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_client_global0 *r)
{
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 8));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'ev_ctx' */
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'msg_ctx' */
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'sconn' */
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'session_table' */
- NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->last_session_id));
+ /* [ignore] 'db_rec' */
+ NDR_CHECK(ndr_push_server_id(ndr, NDR_SCALARS, &r->server_id));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->local_address, CH_UTF8)));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'tcon_table' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->local_address, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->local_address, ndr_charset_length(r->local_address, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_address, CH_UTF8)));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'open_table' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_address, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_address, ndr_charset_length(r->remote_address, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_name, CH_UTF8)));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- /* [ignore] 'connections' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_name, ndr_charset_length(r->remote_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->initial_connect_time));
+ NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->client_guid));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->stored));
NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
- /* [ignore] 'ev_ctx' */
- /* [ignore] 'msg_ctx' */
- /* [ignore] 'sconn' */
- /* [ignore] 'session_table' */
- /* [ignore] 'tcon_table' */
- /* [ignore] 'open_table' */
- /* [ignore] 'connections' */
+ /* [ignore] 'db_rec' */
}
return NDR_ERR_SUCCESS;
}
-_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_client(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_client *r)
+static enum ndr_err_code ndr_pull_smbXsrv_client_global0(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_client_global0 *r)
+{
+ uint32_t _ptr_db_rec;
+ uint32_t size_local_address_0 = 0;
+ uint32_t length_local_address_0 = 0;
+ uint32_t size_remote_address_0 = 0;
+ uint32_t length_remote_address_0 = 0;
+ uint32_t size_remote_name_0 = 0;
+ uint32_t length_remote_name_0 = 0;
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 8));
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_db_rec));
+ _ptr_db_rec = 0;
+ if (_ptr_db_rec) {
+ } else {
+ r->db_rec = NULL;
+ }
+ /* [ignore] 'db_rec' */
+ NDR_CHECK(ndr_pull_server_id(ndr, NDR_SCALARS, &r->server_id));
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->local_address));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->local_address));
+ size_local_address_0 = ndr_get_array_size(ndr, &r->local_address);
+ length_local_address_0 = ndr_get_array_length(ndr, &r->local_address);
+ if (length_local_address_0 > size_local_address_0) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_address_0, length_local_address_0);
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, length_local_address_0, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local_address, length_local_address_0, sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_address));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_address));
+ size_remote_address_0 = ndr_get_array_size(ndr, &r->remote_address);
+ length_remote_address_0 = ndr_get_array_length(ndr, &r->remote_address);
+ if (length_remote_address_0 > size_remote_address_0) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_address_0, length_remote_address_0);
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_address_0, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_address, length_remote_address_0, sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_name));
+ size_remote_name_0 = ndr_get_array_size(ndr, &r->remote_name);
+ length_remote_name_0 = ndr_get_array_length(ndr, &r->remote_name);
+ if (length_remote_name_0 > size_remote_name_0) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_name_0, length_remote_name_0);
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_name_0, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_name, length_remote_name_0, sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->initial_connect_time));
+ NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->client_guid));
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->stored));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* [ignore] 'db_rec' */
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client_global0(struct ndr_print *ndr, const char *name, const struct smbXsrv_client_global0 *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_client_global0");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ ndr_print_ptr(ndr, "db_rec", r->db_rec);
+ /* [ignore] 'db_rec' */
+ ndr_print_server_id(ndr, "server_id", &r->server_id);
+ ndr_print_string(ndr, "local_address", r->local_address);
+ ndr_print_string(ndr, "remote_address", r->remote_address);
+ ndr_print_string(ndr, "remote_name", r->remote_name);
+ ndr_print_NTTIME(ndr, "initial_connect_time", r->initial_connect_time);
+ ndr_print_GUID(ndr, "client_guid", &r->client_guid);
+ ndr_print_uint8(ndr, "stored", r->stored);
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_client_globalU(struct ndr_push *ndr, int ndr_flags, const union smbXsrv_client_globalU *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy));
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ NDR_CHECK(ndr_push_smbXsrv_client_global0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->dummy));
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_client_globalU(struct ndr_pull *ndr, int ndr_flags, union smbXsrv_client_globalU *r)
+{
+ uint32_t level;
+ uint32_t _level;
+ TALLOC_CTX *_mem_save_info0_0 = NULL;
+ uint32_t _ptr_info0;
+ TALLOC_CTX *_mem_save_dummy_0 = NULL;
+ uint32_t _ptr_dummy;
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
+ if (_level != level) {
+ return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
+ }
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
+ if (_ptr_info0) {
+ NDR_PULL_ALLOC(ndr, r->info0);
+ } else {
+ r->info0 = NULL;
+ }
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy));
+ if (_ptr_dummy) {
+ NDR_PULL_ALLOC(ndr, r->dummy);
+ } else {
+ r->dummy = NULL;
+ }
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
+ NDR_CHECK(ndr_pull_smbXsrv_client_global0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ _mem_save_dummy_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->dummy, 0);
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->dummy));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy_0, 0);
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client_globalU(struct ndr_print *ndr, const char *name, const union smbXsrv_client_globalU *r)
+{
+ uint32_t level;
+ level = ndr_print_get_switch_value(ndr, r);
+ ndr_print_union(ndr, name, level, "smbXsrv_client_globalU");
+ switch (level) {
+ case 0:
+ ndr_print_ptr(ndr, "info0", r->info0);
+ ndr->depth++;
+ if (r->info0) {
+ ndr_print_smbXsrv_client_global0(ndr, "info0", r->info0);
+ }
+ ndr->depth--;
+ break;
+
+ default:
+ ndr_print_ptr(ndr, "dummy", r->dummy);
+ ndr->depth++;
+ if (r->dummy) {
+ ndr_print_hyper(ndr, "dummy", *r->dummy);
+ }
+ ndr->depth--;
+ break;
+
+ }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_client_globalB(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_client_globalB *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 5));
+ NDR_CHECK(ndr_push_smbXsrv_version_values(ndr, NDR_SCALARS, r->version));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->seqnum));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_push_smbXsrv_client_globalU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ NDR_CHECK(ndr_push_smbXsrv_client_globalU(ndr, NDR_BUFFERS, &r->info));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_client_globalB(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_client_globalB *r)
+{
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 5));
+ NDR_CHECK(ndr_pull_smbXsrv_version_values(ndr, NDR_SCALARS, &r->version));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->seqnum));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_pull_smbXsrv_client_globalU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ NDR_CHECK(ndr_pull_smbXsrv_client_globalU(ndr, NDR_BUFFERS, &r->info));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client_globalB(struct ndr_print *ndr, const char *name, const struct smbXsrv_client_globalB *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_client_globalB");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ ndr_print_smbXsrv_version_values(ndr, "version", r->version);
+ ndr_print_uint32(ndr, "seqnum", r->seqnum);
+ ndr_print_set_switch_value(ndr, &r->info, r->version);
+ ndr_print_smbXsrv_client_globalU(ndr, "info", &r->info);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_client(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_client *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ if (r->global == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_align(ndr, 8));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'table' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'ev_ctx' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'msg_ctx' */
+ NDR_CHECK(ndr_push_ref_ptr(ndr)); /* r->global */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'sconn' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'session_table' */
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->last_session_id));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'tcon_table' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'open_table' */
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+ /* [ignore] 'connections' */
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->server_multi_channel_enabled));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 8));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* [ignore] 'table' */
+ /* [ignore] 'ev_ctx' */
+ /* [ignore] 'msg_ctx' */
+ NDR_CHECK(ndr_push_smbXsrv_client_global0(ndr, NDR_SCALARS|NDR_BUFFERS, r->global));
+ /* [ignore] 'sconn' */
+ /* [ignore] 'session_table' */
+ /* [ignore] 'tcon_table' */
+ /* [ignore] 'open_table' */
+ /* [ignore] 'connections' */
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_client(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_client *r)
+{
+ uint32_t _ptr_table;
+ uint32_t _ptr_ev_ctx;
+ uint32_t _ptr_msg_ctx;
+ uint32_t _ptr_global;
+ TALLOC_CTX *_mem_save_global_0 = NULL;
+ uint32_t _ptr_sconn;
+ uint32_t _ptr_session_table;
+ uint32_t _ptr_tcon_table;
+ uint32_t _ptr_open_table;
+ uint32_t _ptr_connections;
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 8));
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_table));
+ _ptr_table = 0;
+ if (_ptr_table) {
+ } else {
+ r->table = NULL;
+ }
+ /* [ignore] 'table' */
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_ev_ctx));
+ _ptr_ev_ctx = 0;
+ if (_ptr_ev_ctx) {
+ } else {
+ r->ev_ctx = NULL;
+ }
+ /* [ignore] 'ev_ctx' */
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_msg_ctx));
+ _ptr_msg_ctx = 0;
+ if (_ptr_msg_ctx) {
+ } else {
+ r->msg_ctx = NULL;
+ }
+ /* [ignore] 'msg_ctx' */
+ NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_global));
+ if (_ptr_global) {
+ NDR_PULL_ALLOC(ndr, r->global);
+ } else {
+ r->global = NULL;
+ }
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_sconn));
+ _ptr_sconn = 0;
+ if (_ptr_sconn) {
+ } else {
+ r->sconn = NULL;
+ }
+ /* [ignore] 'sconn' */
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_session_table));
+ _ptr_session_table = 0;
+ if (_ptr_session_table) {
+ } else {
+ r->session_table = NULL;
+ }
+ /* [ignore] 'session_table' */
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->last_session_id));
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_tcon_table));
+ _ptr_tcon_table = 0;
+ if (_ptr_tcon_table) {
+ } else {
+ r->tcon_table = NULL;
+ }
+ /* [ignore] 'tcon_table' */
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_open_table));
+ _ptr_open_table = 0;
+ if (_ptr_open_table) {
+ } else {
+ r->open_table = NULL;
+ }
+ /* [ignore] 'open_table' */
+ NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_connections));
+ _ptr_connections = 0;
+ if (_ptr_connections) {
+ } else {
+ r->connections = NULL;
+ }
+ /* [ignore] 'connections' */
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->server_multi_channel_enabled));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* [ignore] 'table' */
+ /* [ignore] 'ev_ctx' */
+ /* [ignore] 'msg_ctx' */
+ _mem_save_global_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->global, 0);
+ NDR_CHECK(ndr_pull_smbXsrv_client_global0(ndr, NDR_SCALARS|NDR_BUFFERS, r->global));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_global_0, 0);
+ /* [ignore] 'sconn' */
+ /* [ignore] 'session_table' */
+ /* [ignore] 'tcon_table' */
+ /* [ignore] 'open_table' */
+ /* [ignore] 'connections' */
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client(struct ndr_print *ndr, const char *name, const struct smbXsrv_client *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_client");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ ndr_print_ptr(ndr, "table", r->table);
+ /* [ignore] 'table' */
+ ndr_print_ptr(ndr, "ev_ctx", r->ev_ctx);
+ /* [ignore] 'ev_ctx' */
+ ndr_print_ptr(ndr, "msg_ctx", r->msg_ctx);
+ /* [ignore] 'msg_ctx' */
+ ndr_print_ptr(ndr, "global", r->global);
+ ndr->depth++;
+ ndr_print_smbXsrv_client_global0(ndr, "global", r->global);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "sconn", r->sconn);
+ /* [ignore] 'sconn' */
+ ndr_print_ptr(ndr, "session_table", r->session_table);
+ /* [ignore] 'session_table' */
+ ndr_print_hyper(ndr, "last_session_id", r->last_session_id);
+ ndr_print_ptr(ndr, "tcon_table", r->tcon_table);
+ /* [ignore] 'tcon_table' */
+ ndr_print_ptr(ndr, "open_table", r->open_table);
+ /* [ignore] 'open_table' */
+ ndr_print_ptr(ndr, "connections", r->connections);
+ /* [ignore] 'connections' */
+ ndr_print_uint8(ndr, "server_multi_channel_enabled", r->server_multi_channel_enabled);
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_clientU(struct ndr_push *ndr, int ndr_flags, const union smbXsrv_clientU *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy));
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ NDR_CHECK(ndr_push_smbXsrv_client(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->dummy));
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_clientU(struct ndr_pull *ndr, int ndr_flags, union smbXsrv_clientU *r)
+{
+ uint32_t level;
+ uint32_t _level;
+ TALLOC_CTX *_mem_save_info0_0 = NULL;
+ uint32_t _ptr_info0;
+ TALLOC_CTX *_mem_save_dummy_0 = NULL;
+ uint32_t _ptr_dummy;
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
+ if (_level != level) {
+ return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
+ }
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
+ if (_ptr_info0) {
+ NDR_PULL_ALLOC(ndr, r->info0);
+ } else {
+ r->info0 = NULL;
+ }
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy));
+ if (_ptr_dummy) {
+ NDR_PULL_ALLOC(ndr, r->dummy);
+ } else {
+ r->dummy = NULL;
+ }
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
+ NDR_CHECK(ndr_pull_smbXsrv_client(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ _mem_save_dummy_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->dummy, 0);
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->dummy));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy_0, 0);
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_clientU(struct ndr_print *ndr, const char *name, const union smbXsrv_clientU *r)
+{
+ uint32_t level;
+ level = ndr_print_get_switch_value(ndr, r);
+ ndr_print_union(ndr, name, level, "smbXsrv_clientU");
+ switch (level) {
+ case 0:
+ ndr_print_ptr(ndr, "info0", r->info0);
+ ndr->depth++;
+ if (r->info0) {
+ ndr_print_smbXsrv_client(ndr, "info0", r->info0);
+ }
+ ndr->depth--;
+ break;
+
+ default:
+ ndr_print_ptr(ndr, "dummy", r->dummy);
+ ndr->depth++;
+ if (r->dummy) {
+ ndr_print_hyper(ndr, "dummy", *r->dummy);
+ }
+ ndr->depth--;
+ break;
+
+ }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_clientB(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_clientB *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 5));
+ NDR_CHECK(ndr_push_smbXsrv_version_values(ndr, NDR_SCALARS, r->version));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_push_smbXsrv_clientU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ NDR_CHECK(ndr_push_smbXsrv_clientU(ndr, NDR_BUFFERS, &r->info));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_clientB(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_clientB *r)
+{
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 5));
+ NDR_CHECK(ndr_pull_smbXsrv_version_values(ndr, NDR_SCALARS, &r->version));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_pull_smbXsrv_clientU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ NDR_CHECK(ndr_pull_smbXsrv_clientU(ndr, NDR_BUFFERS, &r->info));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_clientB(struct ndr_print *ndr, const char *name, const struct smbXsrv_clientB *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_clientB");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ ndr_print_smbXsrv_version_values(ndr, "version", r->version);
+ ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
+ ndr_print_set_switch_value(ndr, &r->info, r->version);
+ ndr_print_smbXsrv_clientU(ndr, "info", &r->info);
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_connection_pass0(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_connection_pass0 *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->initial_connect_time));
+ NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->client_guid));
+ NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->negotiate_request));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_connection_pass0(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_connection_pass0 *r)
+{
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->initial_connect_time));
+ NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->client_guid));
+ NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->negotiate_request));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_connection_pass0(struct ndr_print *ndr, const char *name, const struct smbXsrv_connection_pass0 *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_connection_pass0");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ ndr_print_NTTIME(ndr, "initial_connect_time", r->initial_connect_time);
+ ndr_print_GUID(ndr, "client_guid", &r->client_guid);
+ ndr_print_DATA_BLOB(ndr, "negotiate_request", r->negotiate_request);
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_connection_passU(struct ndr_push *ndr, int ndr_flags, const union smbXsrv_connection_passU *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
+ NDR_CHECK(ndr_push_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy));
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ uint32_t level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ NDR_CHECK(ndr_push_smbXsrv_connection_pass0(ndr, NDR_SCALARS, r->info0));
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->dummy));
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_connection_passU(struct ndr_pull *ndr, int ndr_flags, union smbXsrv_connection_passU *r)
+{
+ uint32_t level;
+ uint32_t _level;
+ TALLOC_CTX *_mem_save_info0_0 = NULL;
+ uint32_t _ptr_info0;
+ TALLOC_CTX *_mem_save_dummy_0 = NULL;
+ uint32_t _ptr_dummy;
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
+ if (_level != level) {
+ return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
+ }
+ NDR_CHECK(ndr_pull_union_align(ndr, 5));
+ switch (level) {
+ case 0: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
+ if (_ptr_info0) {
+ NDR_PULL_ALLOC(ndr, r->info0);
+ } else {
+ r->info0 = NULL;
+ }
+ break; }
+
+ default: {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy));
+ if (_ptr_dummy) {
+ NDR_PULL_ALLOC(ndr, r->dummy);
+ } else {
+ r->dummy = NULL;
+ }
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
+ switch (level) {
+ case 0:
+ if (r->info0) {
+ _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
+ NDR_CHECK(ndr_pull_smbXsrv_connection_pass0(ndr, NDR_SCALARS, r->info0));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
+ }
+ break;
+
+ default:
+ if (r->dummy) {
+ _mem_save_dummy_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->dummy, 0);
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->dummy));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy_0, 0);
+ }
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_connection_passU(struct ndr_print *ndr, const char *name, const union smbXsrv_connection_passU *r)
+{
+ uint32_t level;
+ level = ndr_print_get_switch_value(ndr, r);
+ ndr_print_union(ndr, name, level, "smbXsrv_connection_passU");
+ switch (level) {
+ case 0:
+ ndr_print_ptr(ndr, "info0", r->info0);
+ ndr->depth++;
+ if (r->info0) {
+ ndr_print_smbXsrv_connection_pass0(ndr, "info0", r->info0);
+ }
+ ndr->depth--;
+ break;
+
+ default:
+ ndr_print_ptr(ndr, "dummy", r->dummy);
+ ndr->depth++;
+ if (r->dummy) {
+ ndr_print_hyper(ndr, "dummy", *r->dummy);
+ }
+ ndr->depth--;
+ break;
+
+ }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_connection_passB(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_connection_passB *r)
+{
+ NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 5));
+ NDR_CHECK(ndr_push_smbXsrv_version_values(ndr, NDR_SCALARS, r->version));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_push_smbXsrv_connection_passU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ NDR_CHECK(ndr_push_smbXsrv_connection_passU(ndr, NDR_BUFFERS, &r->info));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_connection_passB(struct ndr_pull *ndr, int ndr_flags, struct smbXsrv_connection_passB *r)
{
- uint32_t _ptr_ev_ctx;
- uint32_t _ptr_msg_ctx;
- uint32_t _ptr_sconn;
- uint32_t _ptr_session_table;
- uint32_t _ptr_tcon_table;
- uint32_t _ptr_open_table;
- uint32_t _ptr_connections;
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
- NDR_CHECK(ndr_pull_align(ndr, 8));
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_ev_ctx));
- _ptr_ev_ctx = 0;
- if (_ptr_ev_ctx) {
- } else {
- r->ev_ctx = NULL;
- }
- /* [ignore] 'ev_ctx' */
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_msg_ctx));
- _ptr_msg_ctx = 0;
- if (_ptr_msg_ctx) {
- } else {
- r->msg_ctx = NULL;
- }
- /* [ignore] 'msg_ctx' */
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_sconn));
- _ptr_sconn = 0;
- if (_ptr_sconn) {
- } else {
- r->sconn = NULL;
- }
- /* [ignore] 'sconn' */
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_session_table));
- _ptr_session_table = 0;
- if (_ptr_session_table) {
- } else {
- r->session_table = NULL;
- }
- /* [ignore] 'session_table' */
- NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->last_session_id));
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_tcon_table));
- _ptr_tcon_table = 0;
- if (_ptr_tcon_table) {
- } else {
- r->tcon_table = NULL;
- }
- /* [ignore] 'tcon_table' */
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_open_table));
- _ptr_open_table = 0;
- if (_ptr_open_table) {
- } else {
- r->open_table = NULL;
- }
- /* [ignore] 'open_table' */
- NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_connections));
- _ptr_connections = 0;
- if (_ptr_connections) {
- } else {
- r->connections = NULL;
- }
- /* [ignore] 'connections' */
- NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
+ NDR_CHECK(ndr_pull_align(ndr, 5));
+ NDR_CHECK(ndr_pull_smbXsrv_version_values(ndr, NDR_SCALARS, &r->version));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
+ NDR_CHECK(ndr_pull_smbXsrv_connection_passU(ndr, NDR_SCALARS, &r->info));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
}
if (ndr_flags & NDR_BUFFERS) {
- /* [ignore] 'ev_ctx' */
- /* [ignore] 'msg_ctx' */
- /* [ignore] 'sconn' */
- /* [ignore] 'session_table' */
- /* [ignore] 'tcon_table' */
- /* [ignore] 'open_table' */
- /* [ignore] 'connections' */
+ NDR_CHECK(ndr_pull_smbXsrv_connection_passU(ndr, NDR_BUFFERS, &r->info));
}
return NDR_ERR_SUCCESS;
}
-_PUBLIC_ void ndr_print_smbXsrv_client(struct ndr_print *ndr, const char *name, const struct smbXsrv_client *r)
+_PUBLIC_ void ndr_print_smbXsrv_connection_passB(struct ndr_print *ndr, const char *name, const struct smbXsrv_connection_passB *r)
{
- ndr_print_struct(ndr, name, "smbXsrv_client");
+ ndr_print_struct(ndr, name, "smbXsrv_connection_passB");
if (r == NULL) { ndr_print_null(ndr); return; }
ndr->depth++;
- ndr_print_ptr(ndr, "ev_ctx", r->ev_ctx);
- /* [ignore] 'ev_ctx' */
- ndr_print_ptr(ndr, "msg_ctx", r->msg_ctx);
- /* [ignore] 'msg_ctx' */
- ndr_print_ptr(ndr, "sconn", r->sconn);
- /* [ignore] 'sconn' */
- ndr_print_ptr(ndr, "session_table", r->session_table);
- /* [ignore] 'session_table' */
- ndr_print_hyper(ndr, "last_session_id", r->last_session_id);
- ndr_print_ptr(ndr, "tcon_table", r->tcon_table);
- /* [ignore] 'tcon_table' */
- ndr_print_ptr(ndr, "open_table", r->open_table);
- /* [ignore] 'open_table' */
- ndr_print_ptr(ndr, "connections", r->connections);
- /* [ignore] 'connections' */
+ ndr_print_smbXsrv_version_values(ndr, "version", r->version);
+ ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
+ ndr_print_set_switch_value(ndr, &r->info, r->version);
+ ndr_print_smbXsrv_connection_passU(ndr, "info", &r->info);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_encrpytion_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
+{
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_encrpytion_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
+{
+ uint8_t v;
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_encrpytion_flags(struct ndr_print *ndr, const char *name, uint8_t r)
+{
+ ndr_print_uint8(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_ENCRYPTION_REQUIRED", SMBXSRV_ENCRYPTION_REQUIRED, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_ENCRYPTION_DESIRED", SMBXSRV_ENCRYPTION_DESIRED, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_PROCESSED_ENCRYPTED_PACKET", SMBXSRV_PROCESSED_ENCRYPTED_PACKET, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_PROCESSED_UNENCRYPTED_PACKET", SMBXSRV_PROCESSED_UNENCRYPTED_PACKET, r);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_signing_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
+{
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_signing_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
+{
+ uint8_t v;
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_signing_flags(struct ndr_print *ndr, const char *name, uint8_t r)
+{
+ ndr_print_uint8(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_SIGNING_REQUIRED", SMBXSRV_SIGNING_REQUIRED, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_PROCESSED_SIGNED_PACKET", SMBXSRV_PROCESSED_SIGNED_PACKET, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_PROCESSED_UNSIGNED_PACKET", SMBXSRV_PROCESSED_UNSIGNED_PACKET, r);
ndr->depth--;
}
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_session_info_seqnum));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
/* [ignore] 'connection' */
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->encryption_cipher));
NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
r->connection = NULL;
}
/* [ignore] 'connection' */
+ NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->encryption_cipher));
NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
ndr_print_uint32(ndr, "auth_session_info_seqnum", r->auth_session_info_seqnum);
ndr_print_ptr(ndr, "connection", r->connection);
/* [ignore] 'connection' */
+ ndr_print_uint16(ndr, "encryption_cipher", r->encryption_cipher);
ndr->depth--;
}
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_session_info_seqnum));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth_session_info));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->connection_dialect));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->signing_required));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->encryption_required));
+ NDR_CHECK(ndr_push_smbXsrv_signing_flags(ndr, NDR_SCALARS, r->signing_flags));
+ NDR_CHECK(ndr_push_smbXsrv_encrpytion_flags(ndr, NDR_SCALARS, r->encryption_flags));
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signing_key));
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->encryption_key));
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->decryption_key));
r->auth_session_info = NULL;
}
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->connection_dialect));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->signing_required));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->encryption_required));
+ NDR_CHECK(ndr_pull_smbXsrv_signing_flags(ndr, NDR_SCALARS, &r->signing_flags));
+ NDR_CHECK(ndr_pull_smbXsrv_encrpytion_flags(ndr, NDR_SCALARS, &r->encryption_flags));
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signing_key));
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->encryption_key));
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->decryption_key));
}
ndr->depth--;
ndr_print_uint16(ndr, "connection_dialect", r->connection_dialect);
- ndr_print_uint8(ndr, "signing_required", r->signing_required);
- ndr_print_uint8(ndr, "encryption_required", r->encryption_required);
+ ndr_print_smbXsrv_signing_flags(ndr, "signing_flags", r->signing_flags);
+ ndr_print_smbXsrv_encrpytion_flags(ndr, "encryption_flags", r->encryption_flags);
ndr_print_uint32(ndr, "num_channels", r->num_channels);
ndr->print(ndr, "%s: ARRAY(%d)", "channels", (int)r->num_channels);
ndr->depth++;
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
/* [ignore] 'tcon_table' */
NDR_CHECK(ndr_push_unique_ptr(ndr, r->pending_auth));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->encryption_desired));
NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
} else {
r->pending_auth = NULL;
}
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->encryption_desired));
NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
ndr_print_smbXsrv_session_auth0(ndr, "pending_auth", r->pending_auth);
}
ndr->depth--;
- ndr_print_uint8(ndr, "encryption_desired", r->encryption_desired);
ndr->depth--;
}
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->share_name, CH_UTF8)));
NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->share_name, ndr_charset_length(r->share_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->encryption_required));
+ NDR_CHECK(ndr_push_smbXsrv_encrpytion_flags(ndr, NDR_SCALARS, r->encryption_flags));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_global_id));
+ NDR_CHECK(ndr_push_smbXsrv_signing_flags(ndr, NDR_SCALARS, r->signing_flags));
NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
}
NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint8_t)));
NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->share_name, length_share_name_0, sizeof(uint8_t), CH_UTF8));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->encryption_required));
+ NDR_CHECK(ndr_pull_smbXsrv_encrpytion_flags(ndr, NDR_SCALARS, &r->encryption_flags));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_global_id));
+ NDR_CHECK(ndr_pull_smbXsrv_signing_flags(ndr, NDR_SCALARS, &r->signing_flags));
NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
ndr_print_server_id(ndr, "server_id", &r->server_id);
ndr_print_NTTIME(ndr, "creation_time", r->creation_time);
ndr_print_string(ndr, "share_name", r->share_name);
- ndr_print_uint8(ndr, "encryption_required", r->encryption_required);
+ ndr_print_smbXsrv_encrpytion_flags(ndr, "encryption_flags", r->encryption_flags);
ndr_print_uint32(ndr, "session_global_id", r->session_global_id);
+ ndr_print_smbXsrv_signing_flags(ndr, "signing_flags", r->signing_flags);
ndr->depth--;
}
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->idle_time));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
/* [ignore] 'compat' */
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->encryption_desired));
NDR_CHECK(ndr_push_trailer_align(ndr, 5));
}
if (ndr_flags & NDR_BUFFERS) {
r->compat = NULL;
}
/* [ignore] 'compat' */
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->encryption_desired));
NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
}
if (ndr_flags & NDR_BUFFERS) {
ndr_print_NTTIME(ndr, "idle_time", r->idle_time);
ndr_print_ptr(ndr, "compat", r->compat);
/* [ignore] 'compat' */
- ndr_print_uint8(ndr, "encryption_desired", r->encryption_desired);
ndr->depth--;
}
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
ndr->depth--;
}
+_PUBLIC_ enum ndr_err_code ndr_push_smbXsrv_open_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
+{
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_smbXsrv_open_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
+{
+ uint8_t v;
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_open_flags(struct ndr_print *ndr, const char *name, uint8_t r)
+{
+ ndr_print_uint8(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_OPEN_NEED_REPLAY_CACHE", SMBXSRV_OPEN_NEED_REPLAY_CACHE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SMBXSRV_OPEN_HAVE_REPLAY_CACHE", SMBXSRV_OPEN_HAVE_REPLAY_CACHE, r);
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_smbXsrv_open_global0(struct ndr_push *ndr, int ndr_flags, const struct smbXsrv_open_global0 *r)
{
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->durable_timeout_msec));
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->durable));
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->backend_cookie));
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->channel_sequence));
NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->durable_timeout_msec));
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->durable));
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->backend_cookie));
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->channel_sequence));
NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
ndr_print_uint32(ndr, "durable_timeout_msec", r->durable_timeout_msec);
ndr_print_uint8(ndr, "durable", r->durable);
ndr_print_DATA_BLOB(ndr, "backend_cookie", r->backend_cookie);
+ ndr_print_hyper(ndr, "channel_sequence", r->channel_sequence);
ndr->depth--;
}
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
if (r->global == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_align(ndr, 5));
+ NDR_CHECK(ndr_push_align(ndr, 8));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
/* [ignore] 'table' */
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->idle_time));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
/* [ignore] 'compat' */
- NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+ NDR_CHECK(ndr_push_smbXsrv_open_flags(ndr, NDR_SCALARS, r->flags));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->create_action));
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->request_count));
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->pre_request_count));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
/* [ignore] 'table' */
uint32_t _ptr_compat;
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
- NDR_CHECK(ndr_pull_align(ndr, 5));
+ NDR_CHECK(ndr_pull_align(ndr, 8));
NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &_ptr_table));
_ptr_table = 0;
if (_ptr_table) {
r->compat = NULL;
}
/* [ignore] 'compat' */
- NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+ NDR_CHECK(ndr_pull_smbXsrv_open_flags(ndr, NDR_SCALARS, &r->flags));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->create_action));
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->request_count));
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->pre_request_count));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
}
if (ndr_flags & NDR_BUFFERS) {
/* [ignore] 'table' */
ndr_print_NTTIME(ndr, "idle_time", r->idle_time);
ndr_print_ptr(ndr, "compat", r->compat);
/* [ignore] 'compat' */
+ ndr_print_smbXsrv_open_flags(ndr, "flags", r->flags);
+ ndr_print_uint32(ndr, "create_action", r->create_action);
+ ndr_print_hyper(ndr, "request_count", r->request_count);
+ ndr_print_hyper(ndr, "pre_request_count", r->pre_request_count);
ndr->depth--;
}
uint32_t _ptr_info0;
TALLOC_CTX *_mem_save_dummy_0 = NULL;
uint32_t _ptr_dummy;
- level = ndr_pull_get_switch_value(ndr, r);
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
if (ndr_flags & NDR_SCALARS) {
+ level = ndr_pull_get_switch_value(ndr, r);
NDR_CHECK(ndr_pull_union_align(ndr, 5));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
if (_level != level) {
}
}
if (ndr_flags & NDR_BUFFERS) {
+ /* The token is not needed after this. */
+ level = ndr_pull_steal_switch_value(ndr, r);
switch (level) {
case 0:
if (r->info0) {
ndr->depth--;
}
+static enum ndr_err_code ndr_push_smbXsrv_client_global_decode(struct ndr_push *ndr, int flags, const struct smbXsrv_client_global_decode *r)
+{
+ NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_smbXsrv_client_globalB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_client_global_decode(struct ndr_pull *ndr, int flags, struct smbXsrv_client_global_decode *r)
+{
+ NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_pull_smbXsrv_client_globalB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client_global_decode(struct ndr_print *ndr, const char *name, int flags, const struct smbXsrv_client_global_decode *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_client_global_decode");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "smbXsrv_client_global_decode");
+ ndr->depth++;
+ ndr_print_smbXsrv_client_globalB(ndr, "blob", &r->in.blob);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "smbXsrv_client_global_decode");
+ ndr->depth++;
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_client_decode(struct ndr_push *ndr, int flags, const struct smbXsrv_client_decode *r)
+{
+ NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_smbXsrv_clientB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_client_decode(struct ndr_pull *ndr, int flags, struct smbXsrv_client_decode *r)
+{
+ NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_pull_smbXsrv_clientB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_client_decode(struct ndr_print *ndr, const char *name, int flags, const struct smbXsrv_client_decode *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_client_decode");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "smbXsrv_client_decode");
+ ndr->depth++;
+ ndr_print_smbXsrv_clientB(ndr, "blob", &r->in.blob);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "smbXsrv_client_decode");
+ ndr->depth++;
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_smbXsrv_connection_pass_decode(struct ndr_push *ndr, int flags, const struct smbXsrv_connection_pass_decode *r)
+{
+ NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_smbXsrv_connection_passB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_smbXsrv_connection_pass_decode(struct ndr_pull *ndr, int flags, struct smbXsrv_connection_pass_decode *r)
+{
+ NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_pull_smbXsrv_connection_passB(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.blob));
+ }
+ if (flags & NDR_OUT) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_smbXsrv_connection_pass_decode(struct ndr_print *ndr, const char *name, int flags, const struct smbXsrv_connection_pass_decode *r)
+{
+ ndr_print_struct(ndr, name, "smbXsrv_connection_pass_decode");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "smbXsrv_connection_pass_decode");
+ ndr->depth++;
+ ndr_print_smbXsrv_connection_passB(ndr, "blob", &r->in.blob);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "smbXsrv_connection_pass_decode");
+ ndr->depth++;
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_smbXsrv_session_global_decode(struct ndr_push *ndr, int flags, const struct smbXsrv_session_global_decode *r)
{
NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
{ 0, NULL },
{ 0, NULL },
},
+ {
+ "smbXsrv_client_global_decode",
+ sizeof(struct smbXsrv_client_global_decode),
+ (ndr_push_flags_fn_t) ndr_push_smbXsrv_client_global_decode,
+ (ndr_pull_flags_fn_t) ndr_pull_smbXsrv_client_global_decode,
+ (ndr_print_function_t) ndr_print_smbXsrv_client_global_decode,
+ { 0, NULL },
+ { 0, NULL },
+ },
+ {
+ "smbXsrv_client_decode",
+ sizeof(struct smbXsrv_client_decode),
+ (ndr_push_flags_fn_t) ndr_push_smbXsrv_client_decode,
+ (ndr_pull_flags_fn_t) ndr_pull_smbXsrv_client_decode,
+ (ndr_print_function_t) ndr_print_smbXsrv_client_decode,
+ { 0, NULL },
+ { 0, NULL },
+ },
+ {
+ "smbXsrv_connection_pass_decode",
+ sizeof(struct smbXsrv_connection_pass_decode),
+ (ndr_push_flags_fn_t) ndr_push_smbXsrv_connection_pass_decode,
+ (ndr_pull_flags_fn_t) ndr_pull_smbXsrv_connection_pass_decode,
+ (ndr_print_function_t) ndr_print_smbXsrv_connection_pass_decode,
+ { 0, NULL },
+ { 0, NULL },
+ },
{
"smbXsrv_session_global_decode",
sizeof(struct smbXsrv_session_global_decode),
NDR_SMBXSRV_VERSION
},
.helpstring = NDR_SMBXSRV_HELPSTRING,
- .num_calls = 8,
+ .num_calls = 11,
.calls = smbXsrv_calls,
.endpoints = &smbXsrv_endpoints,
.authservices = &smbXsrv_authservices