From: Joseph Sutton Date: Mon, 10 Jul 2023 03:47:03 +0000 (+1200) Subject: librpc:ndr: Introduce ‘libndr_flags’ type X-Git-Tag: talloc-2.4.2~911 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c4f281e9ae36c225b6003e0fa1cb8fb2e67bf543;p=thirdparty%2Fsamba.git librpc:ndr: Introduce ‘libndr_flags’ type The LIBNDR_FLAG_ namespace is getting dangerously full, with only a single flag value (1 << 9) remaining for use. After that flag is put into use, we won’t be able to add any new flags without increasing the flag width to 64‐bit. Up to now we’ve used a haphazard mix of int, unsigned, and uint32_t to store these flags. Introduce a new type, ‘libndr_flags’, to be used consistently to hold LIBNDR flags. If in the future we find we need to move to 64‐bit flags, this type gives us an opportunity to do that. Bump the NDR version to 4.0.0 — an major version increment, for we’re changing the function ABI and adding the new symbol ndr_print_libndr_flags. Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/lib/fuzzing/fuzz_ndr_X.c b/lib/fuzzing/fuzz_ndr_X.c index a3d7199edc9..322abea14a3 100644 --- a/lib/fuzzing/fuzz_ndr_X.c +++ b/lib/fuzzing/fuzz_ndr_X.c @@ -155,7 +155,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { int pull_push_print_flags; uint16_t fuzz_packet_flags, function; TALLOC_CTX *mem_ctx = NULL; - uint32_t ndr_flags = 0; + libndr_flags ndr_flags = 0; struct ndr_push *ndr_push; enum ndr_err_code ndr_err; struct ndr_interface_call f_buffer; diff --git a/libcli/security/secace.h b/libcli/security/secace.h index 8f1a5581d39..879c711e485 100644 --- a/libcli/security/secace.h +++ b/libcli/security/secace.h @@ -22,9 +22,10 @@ #define _ACE_H_ #include "librpc/gen_ndr/security.h" +#include "librpc/ndr/libndr.h" bool sec_ace_object(uint8_t type); -size_t ndr_subcontext_size_of_ace_coda(const struct security_ace *ace, size_t ace_size, int flags); +size_t ndr_subcontext_size_of_ace_coda(const struct security_ace *ace, size_t ace_size, libndr_flags flags); bool sec_ace_callback(uint8_t type); bool sec_ace_resource(uint8_t type); bool sec_ace_has_extra_blob(uint8_t type); diff --git a/librpc/ABI/ndr-4.0.0.sigs b/librpc/ABI/ndr-4.0.0.sigs new file mode 100644 index 00000000000..0eefdc90fd7 --- /dev/null +++ b/librpc/ABI/ndr-4.0.0.sigs @@ -0,0 +1,274 @@ +GUID_all_zero: bool (const struct GUID *) +GUID_buf_string: char *(const struct GUID *, struct GUID_txt_buf *) +GUID_compare: int (const struct GUID *, const struct GUID *) +GUID_equal: bool (const struct GUID *, const struct GUID *) +GUID_from_data_blob: NTSTATUS (const DATA_BLOB *, struct GUID *) +GUID_from_ndr_blob: NTSTATUS (const DATA_BLOB *, struct GUID *) +GUID_from_string: NTSTATUS (const char *, struct GUID *) +GUID_hexstring: char *(TALLOC_CTX *, const struct GUID *) +GUID_random: struct GUID (void) +GUID_string: char *(TALLOC_CTX *, const struct GUID *) +GUID_string2: char *(TALLOC_CTX *, const struct GUID *) +GUID_to_ndr_blob: NTSTATUS (const struct GUID *, TALLOC_CTX *, DATA_BLOB *) +GUID_to_ndr_buf: NTSTATUS (const struct GUID *, struct GUID_ndr_buf *) +GUID_zero: struct GUID (void) +_ndr_pull_error: enum ndr_err_code (struct ndr_pull *, enum ndr_err_code, const char *, const char *, const char *, ...) +_ndr_push_error: enum ndr_err_code (struct ndr_push *, enum ndr_err_code, const char *, const char *, const char *, ...) +ndr_align_size: size_t (uint32_t, size_t) +ndr_charset_length: uint32_t (const void *, charset_t) +ndr_check_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_check_padding: void (struct ndr_pull *, size_t) +ndr_check_pipe_chunk_trailer: enum ndr_err_code (struct ndr_pull *, int, uint32_t) +ndr_check_steal_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_check_steal_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_check_string_terminator: enum ndr_err_code (struct ndr_pull *, uint32_t, uint32_t) +ndr_get_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *) +ndr_get_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *) +ndr_map_error2errno: int (enum ndr_err_code) +ndr_map_error2ntstatus: NTSTATUS (enum ndr_err_code) +ndr_map_error2string: const char *(enum ndr_err_code) +ndr_policy_handle_empty: bool (const struct policy_handle *) +ndr_policy_handle_equal: bool (const struct policy_handle *, const struct policy_handle *) +ndr_print_DATA_BLOB: void (struct ndr_print *, const char *, DATA_BLOB) +ndr_print_GUID: void (struct ndr_print *, const char *, const struct GUID *) +ndr_print_HRESULT: void (struct ndr_print *, const char *, HRESULT) +ndr_print_KRB5_EDATA_NTSTATUS: void (struct ndr_print *, const char *, const struct KRB5_EDATA_NTSTATUS *) +ndr_print_NTSTATUS: void (struct ndr_print *, const char *, NTSTATUS) +ndr_print_NTTIME: void (struct ndr_print *, const char *, NTTIME) +ndr_print_NTTIME_1sec: void (struct ndr_print *, const char *, NTTIME) +ndr_print_NTTIME_hyper: void (struct ndr_print *, const char *, NTTIME) +ndr_print_WERROR: void (struct ndr_print *, const char *, WERROR) +ndr_print_array_uint8: void (struct ndr_print *, const char *, const uint8_t *, uint32_t) +ndr_print_bad_level: void (struct ndr_print *, const char *, uint16_t) +ndr_print_bitmap_flag: void (struct ndr_print *, size_t, const char *, uint32_t, uint32_t) +ndr_print_bool: void (struct ndr_print *, const char *, const bool) +ndr_print_debug: bool (int, ndr_print_fn_t, const char *, void *, const char *, const char *) +ndr_print_debug_helper: void (struct ndr_print *, const char *, ...) +ndr_print_debugc: void (int, ndr_print_fn_t, const char *, void *) +ndr_print_debugc_helper: void (struct ndr_print *, const char *, ...) +ndr_print_dlong: void (struct ndr_print *, const char *, int64_t) +ndr_print_double: void (struct ndr_print *, const char *, double) +ndr_print_enum: void (struct ndr_print *, const char *, const char *, const char *, uint32_t) +ndr_print_function_debug: void (ndr_print_function_t, const char *, int, void *) +ndr_print_function_string: char *(TALLOC_CTX *, ndr_print_function_t, const char *, int, void *) +ndr_print_gid_t: void (struct ndr_print *, const char *, gid_t) +ndr_print_hyper: void (struct ndr_print *, const char *, uint64_t) +ndr_print_int16: void (struct ndr_print *, const char *, int16_t) +ndr_print_int32: void (struct ndr_print *, const char *, int32_t) +ndr_print_int3264: void (struct ndr_print *, const char *, int32_t) +ndr_print_int64: void (struct ndr_print *, const char *, int64_t) +ndr_print_int8: void (struct ndr_print *, const char *, int8_t) +ndr_print_ipv4address: void (struct ndr_print *, const char *, const char *) +ndr_print_ipv6address: void (struct ndr_print *, const char *, const char *) +ndr_print_libndr_flags: void (struct ndr_print *, const char *, libndr_flags) +ndr_print_ndr_syntax_id: void (struct ndr_print *, const char *, const struct ndr_syntax_id *) +ndr_print_netr_SamDatabaseID: void (struct ndr_print *, const char *, enum netr_SamDatabaseID) +ndr_print_netr_SchannelType: void (struct ndr_print *, const char *, enum netr_SchannelType) +ndr_print_null: void (struct ndr_print *) +ndr_print_pointer: void (struct ndr_print *, const char *, void *) +ndr_print_policy_handle: void (struct ndr_print *, const char *, const struct policy_handle *) +ndr_print_printf_helper: void (struct ndr_print *, const char *, ...) +ndr_print_ptr: void (struct ndr_print *, const char *, const void *) +ndr_print_set_switch_value: enum ndr_err_code (struct ndr_print *, const void *, uint32_t) +ndr_print_sockaddr_storage: void (struct ndr_print *, const char *, const struct sockaddr_storage *) +ndr_print_steal_switch_value: uint32_t (struct ndr_print *, const void *) +ndr_print_string: void (struct ndr_print *, const char *, const char *) +ndr_print_string_array: void (struct ndr_print *, const char *, const char **) +ndr_print_string_helper: void (struct ndr_print *, const char *, ...) +ndr_print_struct: void (struct ndr_print *, const char *, const char *) +ndr_print_struct_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, void *) +ndr_print_svcctl_ServerType: void (struct ndr_print *, const char *, uint32_t) +ndr_print_time_t: void (struct ndr_print *, const char *, time_t) +ndr_print_timespec: void (struct ndr_print *, const char *, const struct timespec *) +ndr_print_timeval: void (struct ndr_print *, const char *, const struct timeval *) +ndr_print_udlong: void (struct ndr_print *, const char *, uint64_t) +ndr_print_udlongr: void (struct ndr_print *, const char *, uint64_t) +ndr_print_uid_t: void (struct ndr_print *, const char *, uid_t) +ndr_print_uint16: void (struct ndr_print *, const char *, uint16_t) +ndr_print_uint32: void (struct ndr_print *, const char *, uint32_t) +ndr_print_uint3264: void (struct ndr_print *, const char *, uint32_t) +ndr_print_uint8: void (struct ndr_print *, const char *, uint8_t) +ndr_print_union: void (struct ndr_print *, const char *, int, const char *) +ndr_print_union_debug: void (ndr_print_fn_t, const char *, uint32_t, void *) +ndr_print_union_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, uint32_t, void *) +ndr_print_winreg_Data: void (struct ndr_print *, const char *, const union winreg_Data *) +ndr_print_winreg_Data_GPO: void (struct ndr_print *, const char *, const union winreg_Data_GPO *) +ndr_print_winreg_Type: void (struct ndr_print *, const char *, enum winreg_Type) +ndr_pull_DATA_BLOB: enum ndr_err_code (struct ndr_pull *, int, DATA_BLOB *) +ndr_pull_GUID: enum ndr_err_code (struct ndr_pull *, int, struct GUID *) +ndr_pull_HRESULT: enum ndr_err_code (struct ndr_pull *, int, HRESULT *) +ndr_pull_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, struct KRB5_EDATA_NTSTATUS *) +ndr_pull_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, NTSTATUS *) +ndr_pull_NTTIME: enum ndr_err_code (struct ndr_pull *, int, NTTIME *) +ndr_pull_NTTIME_1sec: enum ndr_err_code (struct ndr_pull *, int, NTTIME *) +ndr_pull_NTTIME_hyper: enum ndr_err_code (struct ndr_pull *, int, NTTIME *) +ndr_pull_WERROR: enum ndr_err_code (struct ndr_pull *, int, WERROR *) +ndr_pull_advance: enum ndr_err_code (struct ndr_pull *, uint32_t) +ndr_pull_align: enum ndr_err_code (struct ndr_pull *, size_t) +ndr_pull_append: enum ndr_err_code (struct ndr_pull *, DATA_BLOB *) +ndr_pull_array_length: enum ndr_err_code (struct ndr_pull *, const void *) +ndr_pull_array_size: enum ndr_err_code (struct ndr_pull *, const void *) +ndr_pull_array_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *, uint32_t) +ndr_pull_bytes: enum ndr_err_code (struct ndr_pull *, uint8_t *, uint32_t) +ndr_pull_charset: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t) +ndr_pull_charset_to_null: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t) +ndr_pull_dlong: enum ndr_err_code (struct ndr_pull *, int, int64_t *) +ndr_pull_double: enum ndr_err_code (struct ndr_pull *, int, double *) +ndr_pull_enum_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *) +ndr_pull_enum_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *) +ndr_pull_enum_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *) +ndr_pull_enum_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *) +ndr_pull_generic_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *) +ndr_pull_get_relative_base_offset: uint32_t (struct ndr_pull *) +ndr_pull_gid_t: enum ndr_err_code (struct ndr_pull *, int, gid_t *) +ndr_pull_hyper: enum ndr_err_code (struct ndr_pull *, int, uint64_t *) +ndr_pull_init_blob: struct ndr_pull *(const DATA_BLOB *, TALLOC_CTX *) +ndr_pull_int16: enum ndr_err_code (struct ndr_pull *, int, int16_t *) +ndr_pull_int32: enum ndr_err_code (struct ndr_pull *, int, int32_t *) +ndr_pull_int64: enum ndr_err_code (struct ndr_pull *, int, int64_t *) +ndr_pull_int8: enum ndr_err_code (struct ndr_pull *, int, int8_t *) +ndr_pull_ipv4address: enum ndr_err_code (struct ndr_pull *, int, const char **) +ndr_pull_ipv6address: enum ndr_err_code (struct ndr_pull *, int, const char **) +ndr_pull_ndr_syntax_id: enum ndr_err_code (struct ndr_pull *, int, struct ndr_syntax_id *) +ndr_pull_netr_SamDatabaseID: enum ndr_err_code (struct ndr_pull *, int, enum netr_SamDatabaseID *) +ndr_pull_netr_SchannelType: enum ndr_err_code (struct ndr_pull *, int, enum netr_SchannelType *) +ndr_pull_pointer: enum ndr_err_code (struct ndr_pull *, int, void **) +ndr_pull_policy_handle: enum ndr_err_code (struct ndr_pull *, int, struct policy_handle *) +ndr_pull_pop: enum ndr_err_code (struct ndr_pull *) +ndr_pull_ref_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *) +ndr_pull_relative_ptr1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_pull_relative_ptr2: enum ndr_err_code (struct ndr_pull *, const void *) +ndr_pull_relative_ptr_short: enum ndr_err_code (struct ndr_pull *, uint16_t *) +ndr_pull_restore_relative_base_offset: void (struct ndr_pull *, uint32_t) +ndr_pull_set_switch_value: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_pull_setup_relative_base_offset1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t) +ndr_pull_setup_relative_base_offset2: enum ndr_err_code (struct ndr_pull *, const void *) +ndr_pull_steal_switch_value: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *) +ndr_pull_string: enum ndr_err_code (struct ndr_pull *, int, const char **) +ndr_pull_string_array: enum ndr_err_code (struct ndr_pull *, int, const char ***) +ndr_pull_struct_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t) +ndr_pull_struct_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t) +ndr_pull_struct_blob_all_noalloc: enum ndr_err_code (const DATA_BLOB *, void *, ndr_pull_flags_fn_t) +ndr_pull_struct_blob_noalloc: enum ndr_err_code (const uint8_t *, size_t, void *, ndr_pull_flags_fn_t, size_t *) +ndr_pull_subcontext_end: enum ndr_err_code (struct ndr_pull *, struct ndr_pull *, size_t, ssize_t) +ndr_pull_subcontext_start: enum ndr_err_code (struct ndr_pull *, struct ndr_pull **, size_t, ssize_t) +ndr_pull_svcctl_ServerType: enum ndr_err_code (struct ndr_pull *, int, uint32_t *) +ndr_pull_time_t: enum ndr_err_code (struct ndr_pull *, int, time_t *) +ndr_pull_timespec: enum ndr_err_code (struct ndr_pull *, int, struct timespec *) +ndr_pull_timeval: enum ndr_err_code (struct ndr_pull *, int, struct timeval *) +ndr_pull_trailer_align: enum ndr_err_code (struct ndr_pull *, size_t) +ndr_pull_udlong: enum ndr_err_code (struct ndr_pull *, int, uint64_t *) +ndr_pull_udlongr: enum ndr_err_code (struct ndr_pull *, int, uint64_t *) +ndr_pull_uid_t: enum ndr_err_code (struct ndr_pull *, int, uid_t *) +ndr_pull_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *) +ndr_pull_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *) +ndr_pull_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *) +ndr_pull_uint3264: enum ndr_err_code (struct ndr_pull *, int, uint32_t *) +ndr_pull_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *) +ndr_pull_union_align: enum ndr_err_code (struct ndr_pull *, size_t) +ndr_pull_union_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t) +ndr_pull_union_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t) +ndr_pull_winreg_Data: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data *) +ndr_pull_winreg_Data_GPO: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data_GPO *) +ndr_pull_winreg_Type: enum ndr_err_code (struct ndr_pull *, int, enum winreg_Type *) +ndr_push_DATA_BLOB: enum ndr_err_code (struct ndr_push *, int, DATA_BLOB) +ndr_push_GUID: enum ndr_err_code (struct ndr_push *, int, const struct GUID *) +ndr_push_HRESULT: enum ndr_err_code (struct ndr_push *, int, HRESULT) +ndr_push_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, const struct KRB5_EDATA_NTSTATUS *) +ndr_push_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, NTSTATUS) +ndr_push_NTTIME: enum ndr_err_code (struct ndr_push *, int, NTTIME) +ndr_push_NTTIME_1sec: enum ndr_err_code (struct ndr_push *, int, NTTIME) +ndr_push_NTTIME_hyper: enum ndr_err_code (struct ndr_push *, int, NTTIME) +ndr_push_WERROR: enum ndr_err_code (struct ndr_push *, int, WERROR) +ndr_push_align: enum ndr_err_code (struct ndr_push *, size_t) +ndr_push_array_uint8: enum ndr_err_code (struct ndr_push *, int, const uint8_t *, uint32_t) +ndr_push_blob: DATA_BLOB (struct ndr_push *) +ndr_push_bytes: enum ndr_err_code (struct ndr_push *, const uint8_t *, uint32_t) +ndr_push_charset: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t) +ndr_push_charset_to_null: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t) +ndr_push_dlong: enum ndr_err_code (struct ndr_push *, int, int64_t) +ndr_push_double: enum ndr_err_code (struct ndr_push *, int, double) +ndr_push_enum_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t) +ndr_push_enum_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t) +ndr_push_enum_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t) +ndr_push_enum_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t) +ndr_push_expand: enum ndr_err_code (struct ndr_push *, uint32_t) +ndr_push_full_ptr: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_get_relative_base_offset: uint32_t (struct ndr_push *) +ndr_push_gid_t: enum ndr_err_code (struct ndr_push *, int, gid_t) +ndr_push_hyper: enum ndr_err_code (struct ndr_push *, int, uint64_t) +ndr_push_init_ctx: struct ndr_push *(TALLOC_CTX *) +ndr_push_int16: enum ndr_err_code (struct ndr_push *, int, int16_t) +ndr_push_int32: enum ndr_err_code (struct ndr_push *, int, int32_t) +ndr_push_int64: enum ndr_err_code (struct ndr_push *, int, int64_t) +ndr_push_int8: enum ndr_err_code (struct ndr_push *, int, int8_t) +ndr_push_ipv4address: enum ndr_err_code (struct ndr_push *, int, const char *) +ndr_push_ipv6address: enum ndr_err_code (struct ndr_push *, int, const char *) +ndr_push_ndr_syntax_id: enum ndr_err_code (struct ndr_push *, int, const struct ndr_syntax_id *) +ndr_push_netr_SamDatabaseID: enum ndr_err_code (struct ndr_push *, int, enum netr_SamDatabaseID) +ndr_push_netr_SchannelType: enum ndr_err_code (struct ndr_push *, int, enum netr_SchannelType) +ndr_push_pipe_chunk_trailer: enum ndr_err_code (struct ndr_push *, int, uint32_t) +ndr_push_pointer: enum ndr_err_code (struct ndr_push *, int, void *) +ndr_push_policy_handle: enum ndr_err_code (struct ndr_push *, int, const struct policy_handle *) +ndr_push_ref_ptr: enum ndr_err_code (struct ndr_push *) +ndr_push_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_relative_ptr2_end: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_relative_ptr2_start: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_restore_relative_base_offset: void (struct ndr_push *, uint32_t) +ndr_push_set_switch_value: enum ndr_err_code (struct ndr_push *, const void *, uint32_t) +ndr_push_setup_relative_base_offset1: enum ndr_err_code (struct ndr_push *, const void *, uint32_t) +ndr_push_setup_relative_base_offset2: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_short_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_short_relative_ptr2: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_steal_switch_value: enum ndr_err_code (struct ndr_push *, const void *, uint32_t *) +ndr_push_string: enum ndr_err_code (struct ndr_push *, int, const char *) +ndr_push_string_array: enum ndr_err_code (struct ndr_push *, int, const char **) +ndr_push_struct_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, const void *, ndr_push_flags_fn_t) +ndr_push_struct_into_fixed_blob: enum ndr_err_code (DATA_BLOB *, const void *, ndr_push_flags_fn_t) +ndr_push_subcontext_end: enum ndr_err_code (struct ndr_push *, struct ndr_push *, size_t, ssize_t) +ndr_push_subcontext_start: enum ndr_err_code (struct ndr_push *, struct ndr_push **, size_t, ssize_t) +ndr_push_svcctl_ServerType: enum ndr_err_code (struct ndr_push *, int, uint32_t) +ndr_push_time_t: enum ndr_err_code (struct ndr_push *, int, time_t) +ndr_push_timespec: enum ndr_err_code (struct ndr_push *, int, const struct timespec *) +ndr_push_timeval: enum ndr_err_code (struct ndr_push *, int, const struct timeval *) +ndr_push_trailer_align: enum ndr_err_code (struct ndr_push *, size_t) +ndr_push_udlong: enum ndr_err_code (struct ndr_push *, int, uint64_t) +ndr_push_udlongr: enum ndr_err_code (struct ndr_push *, int, uint64_t) +ndr_push_uid_t: enum ndr_err_code (struct ndr_push *, int, uid_t) +ndr_push_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t) +ndr_push_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t) +ndr_push_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t) +ndr_push_uint3264: enum ndr_err_code (struct ndr_push *, int, uint32_t) +ndr_push_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t) +ndr_push_union_align: enum ndr_err_code (struct ndr_push *, size_t) +ndr_push_union_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_push_flags_fn_t) +ndr_push_unique_ptr: enum ndr_err_code (struct ndr_push *, const void *) +ndr_push_winreg_Data: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data *) +ndr_push_winreg_Data_GPO: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data_GPO *) +ndr_push_winreg_Type: enum ndr_err_code (struct ndr_push *, int, enum winreg_Type) +ndr_push_zero: enum ndr_err_code (struct ndr_push *, uint32_t) +ndr_set_flags: void (libndr_flags *, libndr_flags) +ndr_size_DATA_BLOB: uint32_t (int, const DATA_BLOB *, int) +ndr_size_GUID: size_t (const struct GUID *, libndr_flags) +ndr_size_string: uint32_t (int, const char * const *, int) +ndr_size_string_array: size_t (const char **, uint32_t, libndr_flags) +ndr_size_struct: size_t (const void *, libndr_flags, ndr_push_flags_fn_t) +ndr_size_union: size_t (const void *, libndr_flags, uint32_t, ndr_push_flags_fn_t) +ndr_size_winreg_Data_GPO: size_t (const union winreg_Data_GPO *, uint32_t, libndr_flags) +ndr_steal_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *) +ndr_steal_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *) +ndr_string_array_size: size_t (struct ndr_push *, const char *) +ndr_string_length: uint32_t (const void *, uint32_t) +ndr_syntax_id_buf_string: char *(const struct ndr_syntax_id *, struct ndr_syntax_id_buf *) +ndr_syntax_id_equal: bool (const struct ndr_syntax_id *, const struct ndr_syntax_id *) +ndr_syntax_id_from_string: bool (const char *, struct ndr_syntax_id *) +ndr_syntax_id_null: uuid = {time_low = 0, time_mid = 0, time_hi_and_version = 0, clock_seq = "\000", node = "\000\000\000\000\000"}, if_version = 0 +ndr_syntax_id_to_string: char *(TALLOC_CTX *, const struct ndr_syntax_id *) +ndr_token_max_list_size: size_t (void) +ndr_token_peek: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *) +ndr_token_retrieve: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *) +ndr_token_retrieve_cmp_fn: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *, comparison_fn_t, bool) +ndr_token_store: enum ndr_err_code (TALLOC_CTX *, struct ndr_token_list *, const void *, uint32_t) +ndr_transfer_syntax_ndr: uuid = {time_low = 2324192516, time_mid = 7403, time_hi_and_version = 4553, clock_seq = "\237\350", node = "\b\000+\020H`"}, if_version = 2 +ndr_transfer_syntax_ndr64: uuid = {time_low = 1903232307, time_mid = 48826, time_hi_and_version = 18743, clock_seq = "\203\031", node = "\265\333\357\234\314\066"}, if_version = 1 +ndr_zero_memory: void (void *, size_t) diff --git a/librpc/idl/ntprinting.idl b/librpc/idl/ntprinting.idl index cfb1922d0a2..0f82a16c55f 100644 --- a/librpc/idl/ntprinting.idl +++ b/librpc/idl/ntprinting.idl @@ -32,7 +32,7 @@ interface ntprinting * "dffffffff" followed by a remaining buffer of "f" array */ typedef [flag(NDR_NOALIGN),public] struct { - [skip_noinit] uint32 string_flags; + [skip_noinit] libndr_flags string_flags; uint32 version; [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; @@ -53,7 +53,7 @@ interface ntprinting * "B" private data blob */ typedef [flag(NDR_NOALIGN),public] struct { - [skip_noinit] uint32 string_flags; + [skip_noinit] libndr_flags string_flags; /* uint32 devicemode_ptr; */ [flag(ndr_ntprinting_string_flags(r->string_flags))] string devicename; @@ -100,7 +100,7 @@ interface ntprinting * "fdB" */ typedef [flag(NDR_NOALIGN),public] struct { - [skip_noinit] uint32 string_flags; + [skip_noinit] libndr_flags string_flags; uint32 ptr; [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; @@ -115,7 +115,7 @@ interface ntprinting */ typedef [flag(NDR_NOALIGN),public] struct { - [skip_noinit] uint32 string_flags; + [skip_noinit] libndr_flags string_flags; uint32 attributes; uint32 priority; diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h index 4d6a078add0..406ccd01091 100644 --- a/librpc/ndr/libndr.h +++ b/librpc/ndr/libndr.h @@ -48,6 +48,14 @@ struct ndr_token_list { struct ndr_compression_state; +/* + * If you’re considering changing the size of this type, see also + * $scalar_alignment in pidl/lib/Parse/Pidl/NDR.pm. + */ +typedef uint32_t libndr_flags; +#define PRI_LIBNDR_FLAGS PRIx32 +#define PRI_LIBNDR_FLAGS_DECIMAL PRIu32 + /* this is the base structure passed to routines that parse MSRPC formatted data @@ -57,7 +65,7 @@ struct ndr_compression_state; particular transport */ struct ndr_pull { - uint32_t flags; /* LIBNDR_FLAG_* */ + libndr_flags flags; /* LIBNDR_FLAG_* */ uint8_t *data; uint32_t data_size; uint32_t offset; @@ -91,7 +99,7 @@ struct ndr_pull { /* structure passed to functions that generate NDR formatted data */ struct ndr_push { - uint32_t flags; /* LIBNDR_FLAG_* */ + libndr_flags flags; /* LIBNDR_FLAG_* */ uint8_t *data; uint32_t alloc_size; uint32_t offset; @@ -116,7 +124,7 @@ struct ndr_push { /* structure passed to functions that print IDL structures */ struct ndr_print { - uint32_t flags; /* LIBNDR_FLAG_* */ + libndr_flags flags; /* LIBNDR_FLAG_* */ uint32_t depth; struct ndr_token_list switch_list; void (*print)(struct ndr_print *, const char *, ...) PRINTF_ATTRIBUTE(2,3); @@ -582,11 +590,11 @@ void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct do enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid); enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid); void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid); -size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags); +size_t ndr_size_dom_sid28(const struct dom_sid *sid, libndr_flags flags); enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid); enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid); void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid); -size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags); +size_t ndr_size_dom_sid0(const struct dom_sid *sid, libndr_flags flags); void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid); void ndr_print_sockaddr_storage(struct ndr_print *ndr, const char *name, const struct sockaddr_storage *ss); void ndr_zero_memory(void *ptr, size_t len); @@ -603,8 +611,8 @@ enum ndr_err_code ndr_push_struct_into_fixed_blob(DATA_BLOB *blob, const void *p, ndr_push_flags_fn_t fn); enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, uint32_t level, ndr_push_flags_fn_t fn); -size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push); -size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push); +size_t ndr_size_struct(const void *p, libndr_flags flags, ndr_push_flags_fn_t push); +size_t ndr_size_union(const void *p, libndr_flags flags, uint32_t level, ndr_push_flags_fn_t push); uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr); void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset); enum ndr_err_code ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *p, uint32_t offset); @@ -642,7 +650,7 @@ char *ndr_print_union_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, const char char *ndr_print_function_string(TALLOC_CTX *mem_ctx, ndr_print_function_t fn, const char *name, int flags, void *ptr); -void ndr_set_flags(uint32_t *pflags, uint32_t new_flags); +void ndr_set_flags(libndr_flags *pflags, libndr_flags new_flags); enum ndr_err_code _ndr_pull_error(struct ndr_pull *ndr, enum ndr_err_code ndr_err, const char *function, @@ -815,7 +823,7 @@ uint32_t ndr_size_string(int ret, const char * const* string, int flags); enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_flags, const char ***_a); enum ndr_err_code ndr_push_string_array(struct ndr_push *ndr, int ndr_flags, const char **a); void ndr_print_string_array(struct ndr_print *ndr, const char *name, const char **a); -size_t ndr_size_string_array(const char **a, uint32_t count, int flags); +size_t ndr_size_string_array(const char **a, uint32_t count, libndr_flags flags); uint32_t ndr_string_length(const void *_var, uint32_t element_size); enum ndr_err_code ndr_check_string_terminator(struct ndr_pull *ndr, uint32_t count, uint32_t element_size); enum ndr_err_code ndr_pull_charset(struct ndr_pull *ndr, int ndr_flags, const char **var, uint32_t length, uint8_t byte_mul, charset_t chset); @@ -874,6 +882,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_timeval(struct ndr_pull *ndr, _PUBLIC_ void ndr_print_timeval(struct ndr_print *ndr, const char *name, const struct timeval *t); +_PUBLIC_ void ndr_print_libndr_flags(struct ndr_print *ndr, const char *name, + libndr_flags flags); #endif /* __LIBNDR_H__ */ diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c index 52f837cbe8b..c7c8e0e359d 100644 --- a/librpc/ndr/ndr.c +++ b/librpc/ndr/ndr.c @@ -583,7 +583,7 @@ failed: return ret; } -_PUBLIC_ void ndr_set_flags(uint32_t *pflags, uint32_t new_flags) +_PUBLIC_ void ndr_set_flags(libndr_flags *pflags, libndr_flags new_flags) { /* the big/little endian flags are inter-dependent */ if (new_flags & LIBNDR_FLAG_LITTLE_ENDIAN) { @@ -1528,7 +1528,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ /* generic ndr_size_*() handler for structures */ -_PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push) +_PUBLIC_ size_t ndr_size_struct(const void *p, libndr_flags flags, ndr_push_flags_fn_t push) { struct ndr_push *ndr; enum ndr_err_code status; @@ -1558,7 +1558,7 @@ _PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t pu /* generic ndr_size_*() handler for unions */ -_PUBLIC_ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push) +_PUBLIC_ size_t ndr_size_union(const void *p, libndr_flags flags, uint32_t level, ndr_push_flags_fn_t push) { struct ndr_push *ndr; enum ndr_err_code status; diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c index 350020d7788..a88d7710f19 100644 --- a/librpc/ndr/ndr_basic.c +++ b/librpc/ndr/ndr_basic.c @@ -1582,3 +1582,9 @@ _PUBLIC_ void ndr_print_timeval(struct ndr_print *ndr, const char *name, ndr->print(ndr, "%-25s: %s.%ld", name, timestring(ndr, t->tv_sec), (long)t->tv_usec); } + +_PUBLIC_ void ndr_print_libndr_flags(struct ndr_print *ndr, const char *name, + libndr_flags flags) +{ + ndr->print(ndr, "%-25s: 0x%016"PRI_LIBNDR_FLAGS" (%"PRI_LIBNDR_FLAGS_DECIMAL")", name, flags, flags); +} diff --git a/librpc/ndr/ndr_bkupblobs.c b/librpc/ndr/ndr_bkupblobs.c index 93356644b2a..d374c3035b9 100644 --- a/librpc/ndr/ndr_bkupblobs.c +++ b/librpc/ndr/ndr_bkupblobs.c @@ -27,7 +27,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_bkup_NTBackupFile(struct ndr_push *ndr, int { uint32_t cntr_streams_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 2)); @@ -57,7 +57,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_bkup_NTBackupFile(struct ndr_pull *ndr, int { uint32_t cntr_streams_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { uint32_t remaining = ndr->data_size - ndr->offset; diff --git a/librpc/ndr/ndr_cab.c b/librpc/ndr/ndr_cab.c index 950c6dcf671..a0c85bf90ab 100644 --- a/librpc/ndr/ndr_cab.c +++ b/librpc/ndr/ndr_cab.c @@ -254,7 +254,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_cab_file(struct ndr_push *ndr, int ndr_flags uint32_t cntr_cffiles_0; size_t processed_cfdata = 0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN); NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); @@ -393,7 +393,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_cab_file(struct ndr_pull *ndr, int ndr_flags size_t processed_cfdata = 0; TALLOC_CTX *_mem_save_cfdata_0 = NULL; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN); NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { diff --git a/librpc/ndr/ndr_dcerpc.c b/librpc/ndr/ndr_dcerpc.c index ccb3af59546..0b2563aba14 100644 --- a/librpc/ndr/ndr_dcerpc.c +++ b/librpc/ndr/ndr_dcerpc.c @@ -143,7 +143,7 @@ enum ndr_err_code ndr_pull_dcerpc_bind_nak(struct ndr_pull *ndr, int ndr_flags, } NDR_PULL_SET_MEM_CTX(ndr, _mem_save_versions_0, 0); { - uint32_t _flags_save_DATA_BLOB = ndr->flags; + libndr_flags _flags_save_DATA_BLOB = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad)); ndr->flags = _flags_save_DATA_BLOB; diff --git a/librpc/ndr/ndr_dns.c b/librpc/ndr/ndr_dns.c index e85cc15d4d0..18c2c075acc 100644 --- a/librpc/ndr/ndr_dns.c +++ b/librpc/ndr/ndr_dns.c @@ -194,13 +194,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_dns_res_rec(struct ndr_push *ndr, int ndr_flags, const struct dns_res_rec *r) { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; uint32_t _saved_offset1, _saved_offset2; uint16_t length; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX | LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { - uint32_t _flags_save_name = ndr->flags; + libndr_flags _flags_save_name = ndr->flags; NDR_CHECK(ndr_push_align(ndr, 4)); @@ -269,7 +269,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_dns_res_rec(struct ndr_pull *ndr, int ndr_flags, struct dns_res_rec *r) { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; uint32_t _saved_offset1; uint32_t pad, length; diff --git a/librpc/ndr/ndr_drsblobs.c b/librpc/ndr/ndr_drsblobs.c index 99dd32e0416..943275bea37 100644 --- a/librpc/ndr/ndr_drsblobs.c +++ b/librpc/ndr/ndr_drsblobs.c @@ -72,7 +72,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_trustAuthInOutBlob(struct ndr_push *ndr, int NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_current, 0, ((r->count > 0)?12 + ndr_size_AuthenticationInformationArray(&r->current, 0):0) - ((r->count > 0)?12:0))); } { - uint32_t _flags_save_AuthenticationInformationArray = ndr->flags; + libndr_flags _flags_save_AuthenticationInformationArray = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); { struct ndr_push *_ndr_previous; @@ -129,7 +129,7 @@ _PUBLIC_ void ndr_print_drsuapi_MSPrefixMap_Entry(struct ndr_print *ndr, const c { ndr_print_struct(ndr, name, "drsuapi_MSPrefixMap_Entry"); { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); ndr->depth++; ndr_print_uint16(ndr, "entryID", r->entryID); diff --git a/librpc/ndr/ndr_drsuapi.c b/librpc/ndr/ndr_drsuapi.c index 39c1cd245b4..4b4dec127a6 100644 --- a/librpc/ndr/ndr_drsuapi.c +++ b/librpc/ndr/ndr_drsuapi.c @@ -385,7 +385,7 @@ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6(struct return NDR_ERR_SUCCESS; } -_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, int flags) +_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, libndr_flags flags) { return ndr_size_struct((const struct drsuapi_DsReplicaObjectIdentifier3 *)r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3); } @@ -427,7 +427,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_print * enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r) { - uint32_t _flags_save = ndr->flags; + libndr_flags _flags_save = ndr->flags; ndr->flags = ndr->flags & ~LIBNDR_FLAG_NDR64; NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { @@ -488,7 +488,7 @@ enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flag enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsBindInfo *r) { - uint32_t _flags_save = ndr->flags; + libndr_flags _flags_save = ndr->flags; ndr->flags = ndr->flags & ~LIBNDR_FLAG_NDR64; NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { diff --git a/librpc/ndr/ndr_drsuapi.h b/librpc/ndr/ndr_drsuapi.h index 9d1d371b60d..6399a3478fa 100644 --- a/librpc/ndr/ndr_drsuapi.h +++ b/librpc/ndr/ndr_drsuapi.h @@ -28,7 +28,7 @@ void ndr_print_drsuapi_DsReplicaObjectListItem(struct ndr_print *ndr, const char void ndr_print_drsuapi_DsReplicaObjectListItemEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectListItemEx *r); -size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, int flags); +size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, libndr_flags flags); #endif /* _LIBRPC_NDR_NDR_DRSUAPI_H */ diff --git a/librpc/ndr/ndr_frsrpc.c b/librpc/ndr/ndr_frsrpc.c index 96d34687bc1..f7dae910347 100644 --- a/librpc/ndr/ndr_frsrpc.c +++ b/librpc/ndr/ndr_frsrpc.c @@ -28,7 +28,7 @@ enum ndr_err_code ndr_push_frsrpc_CommPktChunkCtr(struct ndr_push *ndr, { uint32_t cntr_chunks_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 2)); @@ -59,7 +59,7 @@ enum ndr_err_code ndr_pull_frsrpc_CommPktChunkCtr(struct ndr_pull *ndr, { uint32_t cntr_chunks_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { uint32_t remaining = ndr->data_size - ndr->offset; @@ -84,7 +84,7 @@ enum ndr_err_code ndr_pull_frsrpc_CommPktChunkCtr(struct ndr_pull *ndr, } size_t ndr_size_frsrpc_CommPktChunkCtr(const struct frsrpc_CommPktChunkCtr *r, - int flags) + libndr_flags flags) { flags |= LIBNDR_FLAG_NOALIGN; return ndr_size_struct(r, flags, diff --git a/librpc/ndr/ndr_frsrpc.h b/librpc/ndr/ndr_frsrpc.h index 9e5ac92d6cb..b9d2ea98c49 100644 --- a/librpc/ndr/ndr_frsrpc.h +++ b/librpc/ndr/ndr_frsrpc.h @@ -29,6 +29,6 @@ enum ndr_err_code ndr_pull_frsrpc_CommPktChunkCtr(struct ndr_pull *ndr, int ndr_flags, struct frsrpc_CommPktChunkCtr *r); size_t ndr_size_frsrpc_CommPktChunkCtr(const struct frsrpc_CommPktChunkCtr *r, - int flags); + libndr_flags flags); #endif /* _LIBRPC_NDR_NDR_FRSRPC_H */ diff --git a/librpc/ndr/ndr_krb5pac.c b/librpc/ndr/ndr_krb5pac.c index 57b28df9e52..3ea8d9e9e3a 100644 --- a/librpc/ndr/ndr_krb5pac.c +++ b/librpc/ndr/ndr_krb5pac.c @@ -23,7 +23,7 @@ #include "includes.h" #include "librpc/gen_ndr/ndr_krb5pac.h" -size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags) +size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, libndr_flags flags) { size_t s = ndr_size_PAC_INFO(r, level, flags); switch (level) { @@ -43,7 +43,7 @@ enum ndr_err_code ndr_push_PAC_BUFFER(struct ndr_push *ndr, int ndr_flags, const NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_PAC_INFO(r->info,r->type,LIBNDR_FLAG_ALIGN8))); { - uint32_t _flags_save_PAC_INFO = ndr->flags; + libndr_flags _flags_save_PAC_INFO = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info)); ndr->flags = _flags_save_PAC_INFO; @@ -52,7 +52,7 @@ enum ndr_err_code ndr_push_PAC_BUFFER(struct ndr_push *ndr, int ndr_flags, const } if (ndr_flags & NDR_BUFFERS) { { - uint32_t _flags_save_PAC_INFO = ndr->flags; + libndr_flags _flags_save_PAC_INFO = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); if (r->info) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info)); @@ -84,7 +84,7 @@ enum ndr_err_code ndr_pull_PAC_BUFFER(struct ndr_pull *ndr, int ndr_flags, struc NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size)); { - uint32_t _flags_save_PAC_INFO = ndr->flags; + libndr_flags _flags_save_PAC_INFO = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); if (_ptr_info) { @@ -99,7 +99,7 @@ enum ndr_err_code ndr_pull_PAC_BUFFER(struct ndr_pull *ndr, int ndr_flags, struc } if (ndr_flags & NDR_BUFFERS) { { - uint32_t _flags_save_PAC_INFO = ndr->flags; + libndr_flags _flags_save_PAC_INFO = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); if (r->info) { uint32_t _relative_save_offset; diff --git a/librpc/ndr/ndr_krb5pac.h b/librpc/ndr/ndr_krb5pac.h index f53916142b9..e009133ea06 100644 --- a/librpc/ndr/ndr_krb5pac.h +++ b/librpc/ndr/ndr_krb5pac.h @@ -22,5 +22,4 @@ #include "librpc/gen_ndr/ndr_krb5pac.h" -size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags); - +size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, libndr_flags flags); diff --git a/librpc/ndr/ndr_nbt.c b/librpc/ndr/ndr_nbt.c index 6a5f356471b..a9cc1411fe4 100644 --- a/librpc/ndr/ndr_nbt.c +++ b/librpc/ndr/ndr_nbt.c @@ -158,19 +158,19 @@ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_REQUEST(struct ndr_push *ndr, int NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->request_count)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name)); ndr->flags = _flags_save_string; @@ -179,7 +179,7 @@ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_REQUEST(struct ndr_push *ndr, int NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags))); if (ndr_size_dom_sid0(&r->sid, ndr->flags)) { struct ndr_push *_ndr_sid; - uint32_t _flags_save_DATA_BLOB = ndr->flags; + libndr_flags _flags_save_DATA_BLOB = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad)); ndr->flags = _flags_save_DATA_BLOB; @@ -203,19 +203,19 @@ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_REQUEST(struct ndr_pull *ndr, int NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->request_count)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name)); ndr->flags = _flags_save_string; @@ -223,7 +223,7 @@ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_REQUEST(struct ndr_pull *ndr, int NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->acct_control)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size)); if (r->sid_size) { - uint32_t _flags_save_DATA_BLOB = ndr->flags; + libndr_flags _flags_save_DATA_BLOB = ndr->flags; struct ndr_pull *_ndr_sid; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad)); @@ -247,7 +247,7 @@ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_REQUEST(struct ndr_pull *ndr, int enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r) { { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); @@ -292,7 +292,7 @@ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(struct ndr_ uint32_t nt_version_flags) { { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ZERO_STRUCTP(r); ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { diff --git a/librpc/ndr/ndr_negoex.c b/librpc/ndr/ndr_negoex.c index 72c8774ce5c..f8084d50680 100644 --- a/librpc/ndr/ndr_negoex.c +++ b/librpc/ndr/ndr_negoex.c @@ -452,7 +452,7 @@ enum ndr_err_code ndr_push_negoex_MESSAGE_ARRAY(struct ndr_push *ndr, int ndr_fl { uint32_t cntr_messages_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { @@ -473,7 +473,7 @@ enum ndr_err_code ndr_pull_negoex_MESSAGE_ARRAY(struct ndr_pull *ndr, int ndr_fl uint32_t cntr_messages_0; TALLOC_CTX *_mem_save_messages_0 = NULL; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { diff --git a/librpc/ndr/ndr_ntlmssp.c b/librpc/ndr/ndr_ntlmssp.c index 021bc402a80..80f104c6341 100644 --- a/librpc/ndr/ndr_ntlmssp.c +++ b/librpc/ndr/ndr_ntlmssp.c @@ -35,11 +35,11 @@ _PUBLIC_ size_t ndr_ntlmssp_string_length(uint32_t negotiate_flags, const char * return strlen(s); } -_PUBLIC_ uint32_t ndr_ntlmssp_negotiated_string_flags(uint32_t negotiate_flags) +_PUBLIC_ libndr_flags ndr_ntlmssp_negotiated_string_flags(uint32_t negotiate_flags) { - uint32_t flags = LIBNDR_FLAG_STR_NOTERM | - LIBNDR_FLAG_STR_CHARLEN | - LIBNDR_FLAG_REMAINING; + libndr_flags flags = LIBNDR_FLAG_STR_NOTERM | + LIBNDR_FLAG_STR_CHARLEN | + LIBNDR_FLAG_REMAINING; if (!(negotiate_flags & NTLMSSP_NEGOTIATE_UNICODE)) { flags |= LIBNDR_FLAG_STR_ASCII; diff --git a/librpc/ndr/ndr_ntlmssp.h b/librpc/ndr/ndr_ntlmssp.h index 5c979ffa4f7..5cca4046d34 100644 --- a/librpc/ndr/ndr_ntlmssp.h +++ b/librpc/ndr/ndr_ntlmssp.h @@ -20,7 +20,7 @@ */ _PUBLIC_ size_t ndr_ntlmssp_string_length(uint32_t negotiate_flags, const char *s); -_PUBLIC_ uint32_t ndr_ntlmssp_negotiated_string_flags(uint32_t negotiate_flags); +_PUBLIC_ libndr_flags ndr_ntlmssp_negotiated_string_flags(uint32_t negotiate_flags); _PUBLIC_ enum ndr_err_code ndr_push_AV_PAIR_LIST(struct ndr_push *ndr, int ndr_flags, const struct AV_PAIR_LIST *r); _PUBLIC_ enum ndr_err_code ndr_pull_AV_PAIR_LIST(struct ndr_pull *ndr, int ndr_flags, struct AV_PAIR_LIST *r); _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx, diff --git a/librpc/ndr/ndr_ntprinting.c b/librpc/ndr/ndr_ntprinting.c index e4f47bb0466..928bed8e360 100644 --- a/librpc/ndr/ndr_ntprinting.c +++ b/librpc/ndr/ndr_ntprinting.c @@ -22,9 +22,9 @@ #include "includes.h" #include "../librpc/gen_ndr/ndr_ntprinting.h" -_PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags) +_PUBLIC_ libndr_flags ndr_ntprinting_string_flags(libndr_flags string_flags) { - uint32_t flags = LIBNDR_FLAG_STR_NULLTERM; + libndr_flags flags = LIBNDR_FLAG_STR_NULLTERM; if (string_flags & LIBNDR_FLAG_STR_ASCII) { flags |= LIBNDR_FLAG_STR_ASCII; @@ -42,7 +42,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int uint32_t _ptr_devmode; TALLOC_CTX *_mem_save_devmode_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 5)); diff --git a/librpc/ndr/ndr_ntprinting.h b/librpc/ndr/ndr_ntprinting.h index 3b6ee014606..7c52ea7f20d 100644 --- a/librpc/ndr/ndr_ntprinting.h +++ b/librpc/ndr/ndr_ntprinting.h @@ -22,6 +22,6 @@ #include "includes.h" #include "../librpc/gen_ndr/ndr_ntprinting.h" -_PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags); +_PUBLIC_ libndr_flags ndr_ntprinting_string_flags(libndr_flags string_flags); _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int ndr_flags, struct ntprinting_printer *r); diff --git a/librpc/ndr/ndr_preg.c b/librpc/ndr/ndr_preg.c index 2c684e2589f..f8d178bcc03 100644 --- a/librpc/ndr/ndr_preg.c +++ b/librpc/ndr/ndr_preg.c @@ -26,7 +26,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_preg_file(struct ndr_push *ndr, int ndr_flag { uint32_t cntr_entries_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); @@ -46,7 +46,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_preg_file(struct ndr_push *ndr, int ndr_flag _PUBLIC_ enum ndr_err_code ndr_pull_preg_file(struct ndr_pull *ndr, int ndr_flags, struct preg_file *r) { { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); diff --git a/librpc/ndr/ndr_sec_helper.c b/librpc/ndr/ndr_sec_helper.c index ca229d027c3..16e16f40c6a 100644 --- a/librpc/ndr/ndr_sec_helper.c +++ b/librpc/ndr/ndr_sec_helper.c @@ -32,7 +32,7 @@ * to work out where the coda starts (and in ndr_size_security_ace() * just below). */ -static size_t ndr_size_security_ace_core(const struct security_ace *ace, int flags) +static size_t ndr_size_security_ace_core(const struct security_ace *ace, libndr_flags flags) { size_t ret; @@ -55,7 +55,7 @@ static size_t ndr_size_security_ace_core(const struct security_ace *ace, int fla /* return the wire size of a security_ace */ -size_t ndr_size_security_ace(const struct security_ace *ace, int flags) +size_t ndr_size_security_ace(const struct security_ace *ace, libndr_flags flags) { size_t base = ndr_size_security_ace_core(ace, flags); size_t ret = base; @@ -87,7 +87,7 @@ size_t ndr_size_security_ace(const struct security_ace *ace, int flags) */ size_t ndr_subcontext_size_of_ace_coda(const struct security_ace *ace, size_t ace_size, - int flags) + libndr_flags flags) { size_t core_size; if (ace_size == 0) { @@ -103,7 +103,7 @@ size_t ndr_subcontext_size_of_ace_coda(const struct security_ace *ace, /* return the wire size of a security_acl */ -size_t ndr_size_security_acl(const struct security_acl *theacl, int flags) +size_t ndr_size_security_acl(const struct security_acl *theacl, libndr_flags flags) { size_t ret; int i; @@ -118,7 +118,7 @@ size_t ndr_size_security_acl(const struct security_acl *theacl, int flags) /* return the wire size of a security descriptor */ -size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int flags) +size_t ndr_size_security_descriptor(const struct security_descriptor *sd, libndr_flags flags) { size_t ret; if (!sd) return 0; @@ -134,13 +134,13 @@ size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int fl /* return the wire size of a dom_sid */ -size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags) +size_t ndr_size_dom_sid(const struct dom_sid *sid, libndr_flags flags) { if (!sid) return 0; return 8 + 4*sid->num_auths; } -size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags) +size_t ndr_size_dom_sid28(const struct dom_sid *sid, libndr_flags flags) { if (all_zero((const uint8_t *)sid, sizeof(struct dom_sid))) { return 0; @@ -148,7 +148,7 @@ size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags) return ndr_size_dom_sid(sid, flags); } -size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags) +size_t ndr_size_dom_sid0(const struct dom_sid *sid, libndr_flags flags) { return ndr_size_dom_sid28(sid, flags); } diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c index c5fa82cdfde..4d3101b444d 100644 --- a/librpc/ndr/ndr_spoolss_buf.c +++ b/librpc/ndr/ndr_spoolss_buf.c @@ -703,7 +703,7 @@ uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, uint32 return ndr_size_spoolss_DeviceMode(devmode, flags); } -_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, int flags) +_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, libndr_flags flags) { if (!r) { return 4; @@ -722,13 +722,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); ndr->flags = _flags_save_string; @@ -736,19 +736,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_info)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_count)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string_array = ndr->flags; + libndr_flags _flags_save_string_array = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names)); ndr->flags = _flags_save_string_array; @@ -756,25 +756,25 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date)); NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider)); ndr->flags = _flags_save_string; @@ -783,7 +783,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, } if (ndr_flags & NDR_BUFFERS) { { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->driver_name) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); @@ -793,7 +793,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->architecture) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); @@ -816,7 +816,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_info)); } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->monitor_name) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); @@ -826,7 +826,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->default_datatype) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype)); @@ -836,7 +836,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string_array = ndr->flags; + libndr_flags _flags_save_string_array = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->previous_names) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names)); @@ -846,7 +846,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string_array; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_name) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name)); @@ -856,7 +856,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_url) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url)); @@ -866,7 +866,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->hardware_id) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id)); @@ -876,7 +876,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->provider) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider)); @@ -917,7 +917,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); if (_ptr_driver_name) { @@ -929,7 +929,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); if (_ptr_architecture) { @@ -949,7 +949,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_count)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); if (_ptr_monitor_name) { @@ -961,7 +961,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype)); if (_ptr_default_datatype) { @@ -973,7 +973,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string_array = ndr->flags; + libndr_flags _flags_save_string_array = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names)); if (_ptr_previous_names) { @@ -987,7 +987,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date)); NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name)); if (_ptr_manufacturer_name) { @@ -999,7 +999,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url)); if (_ptr_manufacturer_url) { @@ -1011,7 +1011,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id)); if (_ptr_hardware_id) { @@ -1023,7 +1023,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider)); if (_ptr_provider) { @@ -1038,7 +1038,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, } if (ndr_flags & NDR_BUFFERS) { { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->driver_name) { uint32_t _relative_save_offset; @@ -1056,7 +1056,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->architecture) { uint32_t _relative_save_offset; @@ -1101,7 +1101,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->offset = _relative_save_offset; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->monitor_name) { uint32_t _relative_save_offset; @@ -1119,7 +1119,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->default_datatype) { uint32_t _relative_save_offset; @@ -1137,7 +1137,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string_array = ndr->flags; + libndr_flags _flags_save_string_array = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->previous_names) { uint32_t _relative_save_offset; @@ -1155,7 +1155,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string_array; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_name) { uint32_t _relative_save_offset; @@ -1173,7 +1173,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_url) { uint32_t _relative_save_offset; @@ -1191,7 +1191,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->hardware_id) { uint32_t _relative_save_offset; @@ -1209,7 +1209,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->provider) { uint32_t _relative_save_offset; @@ -1254,7 +1254,7 @@ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, const unio } } -_PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, int flags) +_PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, libndr_flags flags) { if (!r) { return 0; @@ -1269,7 +1269,7 @@ void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *na enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r) { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NO_RELATIVE_REVERSE); NDR_CHECK(ndr_pull_security_descriptor(ndr, ndr_flags, r)); ndr->flags = _flags_save_STRUCT; @@ -1279,7 +1279,7 @@ enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r) { { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NO_RELATIVE_REVERSE); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 5)); @@ -1323,79 +1323,79 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 5)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_spoolss_DeviceMode = ndr->flags; + libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode)); ndr->flags = _flags_save_spoolss_DeviceMode; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters)); ndr->flags = _flags_save_string; } { - uint32_t _flags_save_spoolss_security_descriptor = ndr->flags; + libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc)); ndr->flags = _flags_save_spoolss_security_descriptor; @@ -1412,7 +1412,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i } if (ndr_flags & NDR_BUFFERS) { { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->servername) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername)); @@ -1422,7 +1422,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->printername) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername)); @@ -1432,7 +1432,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->sharename) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sharename)); @@ -1442,7 +1442,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->portname) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname)); @@ -1452,7 +1452,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->drivername) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->drivername)); @@ -1462,7 +1462,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->comment) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment)); @@ -1472,7 +1472,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->location) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->location)); @@ -1482,7 +1482,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->sepfile) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sepfile)); @@ -1492,7 +1492,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->printprocessor) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printprocessor)); @@ -1502,7 +1502,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->datatype) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->datatype)); @@ -1512,7 +1512,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->parameters) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters)); @@ -1522,7 +1522,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_string; } { - uint32_t _flags_save_spoolss_DeviceMode = ndr->flags; + libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); if (r->devmode) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode)); @@ -1537,7 +1537,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i ndr->flags = _flags_save_spoolss_DeviceMode; } { - uint32_t _flags_save_spoolss_security_descriptor = ndr->flags; + libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4); if (r->secdesc) { NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc)); @@ -1582,7 +1582,7 @@ _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, co talloc_free(str); } -_PUBLIC_ uint32_t ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type) +_PUBLIC_ libndr_flags ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type) { switch(type) { case REG_NONE: diff --git a/librpc/ndr/ndr_spoolss_buf.h b/librpc/ndr/ndr_spoolss_buf.h index 2ede07ac79f..ef752ebf7ba 100644 --- a/librpc/ndr/ndr_spoolss_buf.h +++ b/librpc/ndr/ndr_spoolss_buf.h @@ -66,16 +66,16 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int f uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, uint32_t count, struct spoolss_PrinterEnumValues *info); uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, uint32_t flags); -size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, int flags); +size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, libndr_flags flags); _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo101 *r); _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo101 *r); void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, const union spoolss_Field *r); -size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, int flags); +size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, libndr_flags flags); void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *name, const struct security_descriptor *r); enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r); enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r); _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r); -_PUBLIC_ uint32_t ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type); +_PUBLIC_ libndr_flags ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type); uint32_t ndr_size_spoolss_EnumPerMachineConnections_info(TALLOC_CTX *mem_ctx, uint32_t count, struct spoolss_PrinterInfo4 *info); #undef _PRINTF_ATTRIBUTE diff --git a/librpc/ndr/ndr_string.c b/librpc/ndr/ndr_string.c index 857972604b9..7980ca14759 100644 --- a/librpc/ndr/ndr_string.c +++ b/librpc/ndr/ndr_string.c @@ -33,7 +33,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, size_t conv_src_len = 0, converted_size; int do_convert = 1, chset = CH_UTF16; unsigned byte_mul = 2; - unsigned flags = ndr->flags; + libndr_flags flags = ndr->flags; unsigned c_len_term = 0; if (!(ndr_flags & NDR_SCALARS)) { @@ -74,7 +74,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &len1)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &ofs)); if (ofs != 0) { - return ndr_pull_error(ndr, NDR_ERR_STRING, "non-zero array offset with string flags 0x%"PRIx32"\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "non-zero array offset with string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &len2)); @@ -104,7 +104,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, case LIBNDR_FLAG_STR_LEN4|LIBNDR_FLAG_STR_NOTERM: NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &ofs)); if (ofs != 0) { - return ndr_pull_error(ndr, NDR_ERR_STRING, "non-zero array offset with string flags 0x%"PRIx32"\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "non-zero array offset with string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &len1)); @@ -141,7 +141,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, case LIBNDR_FLAG_STR_NOTERM: if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) { - return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32" (missing NDR_REMAINING)\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS" (missing NDR_REMAINING)\n", ndr->flags & LIBNDR_STRING_FLAGS); } conv_src_len = ndr->data_size - ndr->offset; @@ -149,7 +149,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, break; default: - return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32"\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } @@ -173,7 +173,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags, &as, &converted_size)) { return ndr_pull_error(ndr, NDR_ERR_CHARCNV, - "Bad character conversion with flags 0x%"PRIx32, flags); + "Bad character conversion with flags 0x%"PRI_LIBNDR_FLAGS, flags); } } @@ -204,7 +204,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags, ssize_t s_len, c_len; size_t d_len; int do_convert = 1, chset = CH_UTF16; - uint32_t flags = ndr->flags; + libndr_flags flags = ndr->flags; unsigned byte_mul = 2; uint8_t *dest = NULL; @@ -252,7 +252,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags, &dest, &d_len)) { return ndr_push_error(ndr, NDR_ERR_CHARCNV, - "Bad character push conversion with flags 0x%"PRIx32, flags); + "Bad character push conversion with flags 0x%"PRI_LIBNDR_FLAGS, flags); } if (flags & LIBNDR_FLAG_STR_BYTESIZE) { @@ -299,7 +299,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags, break; } - return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32"\n", + return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } @@ -314,7 +314,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags, _PUBLIC_ size_t ndr_string_array_size(struct ndr_push *ndr, const char *s) { size_t c_len; - unsigned flags = ndr->flags; + libndr_flags flags = ndr->flags; unsigned byte_mul = 2; unsigned c_len_term = 1; @@ -406,8 +406,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f { const char **a = NULL; uint32_t count; - unsigned flags = ndr->flags; - unsigned saved_flags = ndr->flags; + libndr_flags flags = ndr->flags; + libndr_flags saved_flags = ndr->flags; uint32_t alloc_size; if (!(ndr_flags & NDR_SCALARS)) { @@ -456,7 +456,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f case LIBNDR_FLAG_STR_NOTERM: if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) { - return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32" (missing NDR_REMAINING)\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS" (missing NDR_REMAINING)\n", ndr->flags & LIBNDR_STRING_FLAGS); } /* @@ -498,7 +498,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f break; default: - return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32"\n", + return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } @@ -512,8 +512,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f _PUBLIC_ enum ndr_err_code ndr_push_string_array(struct ndr_push *ndr, int ndr_flags, const char **a) { uint32_t count; - unsigned flags = ndr->flags; - unsigned saved_flags = ndr->flags; + libndr_flags flags = ndr->flags; + libndr_flags saved_flags = ndr->flags; if (!(ndr_flags & NDR_SCALARS)) { return NDR_ERR_SUCCESS; @@ -533,7 +533,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string_array(struct ndr_push *ndr, int ndr_f case LIBNDR_FLAG_STR_NOTERM: if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) { - return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32" (missing NDR_REMAINING)\n", + return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS" (missing NDR_REMAINING)\n", ndr->flags & LIBNDR_STRING_FLAGS); } @@ -550,7 +550,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string_array(struct ndr_push *ndr, int ndr_f break; default: - return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRIx32"\n", + return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%"PRI_LIBNDR_FLAGS"\n", ndr->flags & LIBNDR_STRING_FLAGS); } @@ -577,7 +577,7 @@ _PUBLIC_ void ndr_print_string_array(struct ndr_print *ndr, const char *name, co ndr->depth--; } -_PUBLIC_ size_t ndr_size_string_array(const char **a, uint32_t count, int flags) +_PUBLIC_ size_t ndr_size_string_array(const char **a, uint32_t count, libndr_flags flags) { uint32_t i; size_t size = 0; diff --git a/librpc/ndr/ndr_witness.c b/librpc/ndr/ndr_witness.c index 288e640381b..ac9aff008c6 100644 --- a/librpc/ndr/ndr_witness.c +++ b/librpc/ndr/ndr_witness.c @@ -26,7 +26,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse(struct ndr_push *ndr, { uint32_t cntr_messages_0; { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { @@ -36,7 +36,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse(struct ndr_push *ndr, NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->messages)); if (r->messages) { - uint32_t _flags_save_witness_notifyResponse_message = ndr->flags; + libndr_flags _flags_save_witness_notifyResponse_message = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); { struct ndr_push *_ndr_messages; @@ -60,7 +60,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse(struct ndr_push *ndr, _PUBLIC_ enum ndr_err_code ndr_pull_witness_notifyResponse(struct ndr_pull *ndr, int ndr_flags, struct witness_notifyResponse *r) { - uint32_t _flags_save_STRUCT = ndr->flags; + libndr_flags _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { @@ -69,7 +69,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_witness_notifyResponse(struct ndr_pull *ndr, NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num)); { - uint32_t _flags_save_witness_notifyResponse_message = ndr->flags; + libndr_flags _flags_save_witness_notifyResponse_message = ndr->flags; uint32_t _ptr_messages; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_messages)); diff --git a/librpc/ndr/ndr_xattr.c b/librpc/ndr/ndr_xattr.c index 641e16161a0..5a343e06f29 100644 --- a/librpc/ndr/ndr_xattr.c +++ b/librpc/ndr/ndr_xattr.c @@ -68,7 +68,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_xattr_DOSATTRIB(struct ndr_push *ndr, NDR_CHECK(ndr_push_align(ndr, 4)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, attrib_hex)); ndr->flags = _flags_save_string; @@ -90,7 +90,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DOSATTRIB(struct ndr_pull *ndr, int nd if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); { - uint32_t _flags_save_string = ndr->flags; + libndr_flags _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->attrib_hex)); ndr->flags = _flags_save_string; diff --git a/librpc/wscript_build b/librpc/wscript_build index c75c86fa351..b69324477e6 100644 --- a/librpc/wscript_build +++ b/librpc/wscript_build @@ -661,7 +661,7 @@ bld.SAMBA_LIBRARY('ndr', public_deps='samba-errors talloc samba-util util_str_hex', public_headers='gen_ndr/misc.h gen_ndr/ndr_misc.h ndr/libndr.h:ndr.h', header_path= [('*gen_ndr*', 'gen_ndr')], - vnum='3.0.2', + vnum='4.0.0', abi_directory='ABI', abi_match='!ndr_table_* ndr_* GUID_* _ndr_pull_error* _ndr_push_error*', ) diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm index 6cd71622328..8832b9b3127 100644 --- a/pidl/lib/Parse/Pidl/NDR.pm +++ b/pidl/lib/Parse/Pidl/NDR.pm @@ -84,6 +84,7 @@ my $scalar_alignment = { 'dnsp_name' => 1, 'dnsp_string' => 1, 'HRESULT' => 4, + 'libndr_flags' => 4, }; sub GetElementLevelTable($$$) diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index a631bad3031..3f7f2502090 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -159,7 +159,7 @@ sub start_flags($$$) if (defined $flags) { $self->pidl("{"); $self->indent; - $self->pidl("uint32_t _flags_save_$e->{TYPE} = $ndr->flags;"); + $self->pidl("libndr_flags _flags_save_$e->{TYPE} = $ndr->flags;"); $self->pidl("ndr_set_flags(&$ndr->flags, $flags);"); } } @@ -1892,7 +1892,7 @@ sub DeclStruct($$$$) sub ArgsStructNdrSize($$$) { my ($d, $name, $varname) = @_; - return "const struct $name *$varname, int flags"; + return "const struct $name *$varname, libndr_flags flags"; } $typefamily{STRUCT} = { @@ -2254,7 +2254,7 @@ sub DeclUnion($$$$) sub ArgsUnionNdrSize($$) { my ($d,$name) = @_; - return "const union $name *r, uint32_t level, int flags"; + return "const union $name *r, uint32_t level, libndr_flags flags"; } $typefamily{UNION} = { diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 67ff44d6f29..ac54c4e9b38 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -543,7 +543,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("}"); $self->pidl(""); - $self->pidl("static PyObject *py_$name\_ndr_pack(PyObject *py_obj, int ndr_inout_flags, uint32_t ndr_push_flags)"); + $self->pidl("static PyObject *py_$name\_ndr_pack(PyObject *py_obj, int ndr_inout_flags, libndr_flags ndr_push_flags)"); $self->pidl("{"); $self->indent; $self->pidl("$ndr_call"); @@ -594,7 +594,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("const char * const kwnames[] = { \"bigendian\", \"ndr64\", NULL };"); $self->pidl("PyObject *bigendian_obj = NULL;"); $self->pidl("PyObject *ndr64_obj = NULL;"); - $self->pidl("uint32_t ndr_push_flags = 0;"); + $self->pidl("libndr_flags ndr_push_flags = 0;"); $self->pidl(""); $self->pidl("if (!PyArg_ParseTupleAndKeywords(args, kwargs, \"|OO:__ndr_pack_in__\","); $self->indent; @@ -629,7 +629,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("const char * const kwnames[] = { \"bigendian\", \"ndr64\", NULL };"); $self->pidl("PyObject *bigendian_obj = NULL;"); $self->pidl("PyObject *ndr64_obj = NULL;"); - $self->pidl("uint32_t ndr_push_flags = 0;"); + $self->pidl("libndr_flags ndr_push_flags = 0;"); $self->pidl(""); $self->pidl("if (!PyArg_ParseTupleAndKeywords(args, kwargs, \"|OO:__ndr_pack_out__\","); $self->indent; @@ -658,7 +658,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("}"); $self->pidl(""); - $self->pidl("static PyObject *py_$name\_ndr_unpack(PyObject *py_obj, const DATA_BLOB *blob, int ndr_inout_flags, uint32_t ndr_pull_flags, bool allow_remaining)"); + $self->pidl("static PyObject *py_$name\_ndr_unpack(PyObject *py_obj, const DATA_BLOB *blob, int ndr_inout_flags, libndr_flags ndr_pull_flags, bool allow_remaining)"); $self->pidl("{"); $self->indent; $self->pidl("$ndr_call"); @@ -735,7 +735,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("const char * const kwnames[] = { \"data_blob\", \"bigendian\", \"ndr64\", \"allow_remaining\", NULL };"); $self->pidl("PyObject *bigendian_obj = NULL;"); $self->pidl("PyObject *ndr64_obj = NULL;"); - $self->pidl("uint32_t ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC;"); + $self->pidl("libndr_flags ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC;"); $self->pidl("PyObject *allow_remaining_obj = NULL;"); $self->pidl("bool allow_remaining = false;"); $self->pidl(""); @@ -783,7 +783,7 @@ sub PythonFunctionStruct($$$$) $self->pidl("const char * const kwnames[] = { \"data_blob\", \"bigendian\", \"ndr64\", \"allow_remaining\", NULL };"); $self->pidl("PyObject *bigendian_obj = NULL;"); $self->pidl("PyObject *ndr64_obj = NULL;"); - $self->pidl("uint32_t ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC;"); + $self->pidl("libndr_flags ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC;"); $self->pidl("PyObject *allow_remaining_obj = NULL;"); $self->pidl("bool allow_remaining = false;"); $self->pidl(""); diff --git a/pidl/lib/Parse/Pidl/Typelist.pm b/pidl/lib/Parse/Pidl/Typelist.pm index 436a03741db..c6e95675eab 100644 --- a/pidl/lib/Parse/Pidl/Typelist.pm +++ b/pidl/lib/Parse/Pidl/Typelist.pm @@ -72,6 +72,7 @@ my %scalars = ( "ipv6address" => "const char *", "dnsp_name" => "const char *", "dnsp_string" => "const char *", + "libndr_flags" => "libndr_flags", ); my %aliases = ( diff --git a/source4/torture/ndr/ndr.c b/source4/torture/ndr/ndr.c index e2a2c33ca5a..cc14e3a668a 100644 --- a/source4/torture/ndr/ndr.c +++ b/source4/torture/ndr/ndr.c @@ -34,11 +34,11 @@ struct ndr_pull_test_data { ndr_print_fn_t print_fn; ndr_print_function_t print_function; int ndr_flags; - int flags; + libndr_flags flags; enum ndr_err_code ndr_err; }; -static enum ndr_err_code torture_ndr_push_struct_blob_flags(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, uint32_t flags, uint32_t ndr_flags, const void *p, ndr_push_flags_fn_t fn) +static enum ndr_err_code torture_ndr_push_struct_blob_flags(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, uint32_t flags, libndr_flags ndr_flags, const void *p, ndr_push_flags_fn_t fn) { struct ndr_push *ndr; ndr = ndr_push_init_ctx(mem_ctx); @@ -156,7 +156,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pullpush_test( DATA_BLOB db, size_t struct_size, int ndr_flags, - int flags, + libndr_flags flags, const char *check_fn_name, bool (*check_fn) (struct torture_context *ctx, void *data)) { @@ -276,7 +276,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( const char *db_out_name, DATA_BLOB db_out, size_t struct_size, - int flags, + libndr_flags flags, const char *check_fn_name, bool (*check_fn) (struct torture_context *ctx, void *data)) { @@ -345,7 +345,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_invalid_data_test( DATA_BLOB db, size_t struct_size, int ndr_flags, - int flags, + libndr_flags flags, enum ndr_err_code ndr_err) { struct torture_test *test; diff --git a/source4/torture/ndr/ndr.h b/source4/torture/ndr/ndr.h index 8d553b80e15..805f51711c9 100644 --- a/source4/torture/ndr/ndr.h +++ b/source4/torture/ndr/ndr.h @@ -35,7 +35,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pullpush_test( DATA_BLOB db, size_t struct_size, int ndr_flags, - int flags, + libndr_flags flags, const char *check_fn_name, bool (*check_fn) (struct torture_context *, void *data)); @@ -49,7 +49,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( const char *db_out_name, DATA_BLOB db_out, size_t struct_size, - int flags, + libndr_flags flags, const char *check_fn_name, bool (*check_fn) (struct torture_context *ctx, void *data)); @@ -61,7 +61,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_invalid_data_test( DATA_BLOB db, size_t struct_size, int ndr_flags, - int flags, + libndr_flags flags, enum ndr_err_code ndr_err); #define torture_suite_add_ndr_pull_test(suite,name,data,check_fn) \ diff --git a/source4/torture/ndr/string.c b/source4/torture/ndr/string.c index 9742c8e8fdb..16d3fc37967 100644 --- a/source4/torture/ndr/string.c +++ b/source4/torture/ndr/string.c @@ -18,14 +18,14 @@ static const char utf8[] = { 0x6b, 0x61, 0x6d, 0x65, 0x6c, 0xc3, 0xa5, 0xc3, 0xb2, 0x00 }; /* purely for convenience */ -static const int fl_ascii_null = LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM; -static const int fl_ascii_noterm = LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING; -static const int fl_utf8_null = LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM; -static const int fl_raw8_null = LIBNDR_FLAG_STR_RAW8|LIBNDR_FLAG_STR_NULLTERM; +static const libndr_flags fl_ascii_null = LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM; +static const libndr_flags fl_ascii_noterm = LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING; +static const libndr_flags fl_utf8_null = LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM; +static const libndr_flags fl_raw8_null = LIBNDR_FLAG_STR_RAW8|LIBNDR_FLAG_STR_NULLTERM; static bool test_ndr_push_string (struct torture_context *tctx, const char *string, - int flags, enum ndr_err_code exp_ndr_err, + libndr_flags flags, enum ndr_err_code exp_ndr_err, bool strcmp_pass) { TALLOC_CTX *mem_ctx; @@ -33,7 +33,7 @@ test_ndr_push_string (struct torture_context *tctx, const char *string, enum ndr_err_code err; torture_comment(tctx, - "test_ndr_push_string %s flags 0x%x expecting " + "test_ndr_push_string %s flags 0x%"PRI_LIBNDR_FLAGS" expecting " "err 0x%x and strcmp %s\n", string, flags, exp_ndr_err, strcmp_pass?"pass":"fail"); if (exp_ndr_err != NDR_ERR_SUCCESS) { @@ -74,7 +74,7 @@ test_ndr_push_string (struct torture_context *tctx, const char *string, static bool test_ndr_pull_string (struct torture_context *tctx, const char *string, - int flags, enum ndr_err_code exp_ndr_err, + libndr_flags flags, enum ndr_err_code exp_ndr_err, bool strcmp_pass) { TALLOC_CTX *mem_ctx; @@ -84,7 +84,7 @@ test_ndr_pull_string (struct torture_context *tctx, const char *string, const char *result = NULL; torture_comment(tctx, - "test_ndr_pull_string '%s' flags 0x%x expecting " + "test_ndr_pull_string '%s' flags 0x%"PRI_LIBNDR_FLAGS" expecting " "err 0x%x and strcmp %s\n", string, flags, exp_ndr_err, strcmp_pass?"pass":"fail"); if (exp_ndr_err != NDR_ERR_SUCCESS) {