1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

r13840: Mark some functions as public.

(This used to be commit 9a188eb1f4)
This commit is contained in:
Jelmer Vernooij
2006-03-05 17:15:19 +00:00
committed by Gerald (Jerry) Carter
parent 5d0aa16dfc
commit af30a32b69
28 changed files with 394 additions and 407 deletions

View File

@ -499,7 +499,7 @@ static NTSTATUS gensec_start(TALLOC_CTX *mem_ctx,
* @note Used by SPNEGO in particular, for the actual implementation mechanism * @note Used by SPNEGO in particular, for the actual implementation mechanism
*/ */
NTSTATUS gensec_subcontext_start(TALLOC_CTX *mem_ctx, _PUBLIC_ NTSTATUS gensec_subcontext_start(TALLOC_CTX *mem_ctx,
struct gensec_security *parent, struct gensec_security *parent,
struct gensec_security **gensec_security) struct gensec_security **gensec_security)
{ {
@ -522,7 +522,7 @@ NTSTATUS gensec_subcontext_start(TALLOC_CTX *mem_ctx,
@param gensec_security Returned GENSEC context pointer. @param gensec_security Returned GENSEC context pointer.
@note The mem_ctx is only a parent and may be NULL. @note The mem_ctx is only a parent and may be NULL.
*/ */
NTSTATUS gensec_client_start(TALLOC_CTX *mem_ctx, _PUBLIC_ NTSTATUS gensec_client_start(TALLOC_CTX *mem_ctx,
struct gensec_security **gensec_security, struct gensec_security **gensec_security,
struct event_context *ev) struct event_context *ev)
{ {
@ -691,7 +691,7 @@ NTSTATUS gensec_start_mech_by_sasl_name(struct gensec_security *gensec_security,
* *
*/ */
NTSTATUS gensec_start_mech_by_sasl_list(struct gensec_security *gensec_security, _PUBLIC_ NTSTATUS gensec_start_mech_by_sasl_list(struct gensec_security *gensec_security,
const char **sasl_names) const char **sasl_names)
{ {
NTSTATUS nt_status; NTSTATUS nt_status;
@ -811,7 +811,7 @@ size_t gensec_sig_size(struct gensec_security *gensec_security, size_t data_size
return gensec_security->ops->sig_size(gensec_security, data_size); return gensec_security->ops->sig_size(gensec_security, data_size);
} }
NTSTATUS gensec_wrap(struct gensec_security *gensec_security, _PUBLIC_ NTSTATUS gensec_wrap(struct gensec_security *gensec_security,
TALLOC_CTX *mem_ctx, TALLOC_CTX *mem_ctx,
const DATA_BLOB *in, const DATA_BLOB *in,
DATA_BLOB *out) DATA_BLOB *out)
@ -822,7 +822,7 @@ NTSTATUS gensec_wrap(struct gensec_security *gensec_security,
return gensec_security->ops->wrap(gensec_security, mem_ctx, in, out); return gensec_security->ops->wrap(gensec_security, mem_ctx, in, out);
} }
NTSTATUS gensec_unwrap(struct gensec_security *gensec_security, _PUBLIC_ NTSTATUS gensec_unwrap(struct gensec_security *gensec_security,
TALLOC_CTX *mem_ctx, TALLOC_CTX *mem_ctx,
const DATA_BLOB *in, const DATA_BLOB *in,
DATA_BLOB *out) DATA_BLOB *out)
@ -876,7 +876,7 @@ NTSTATUS gensec_session_info(struct gensec_security *gensec_security,
* or NT_STATUS_OK if the user is authenticated. * or NT_STATUS_OK if the user is authenticated.
*/ */
NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, _PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx,
const DATA_BLOB in, DATA_BLOB *out) const DATA_BLOB in, DATA_BLOB *out)
{ {
return gensec_security->ops->update(gensec_security, out_mem_ctx, in, out); return gensec_security->ops->update(gensec_security, out_mem_ctx, in, out);
@ -887,7 +887,7 @@ NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_CTX *out_
* *
*/ */
void gensec_want_feature(struct gensec_security *gensec_security, _PUBLIC_ void gensec_want_feature(struct gensec_security *gensec_security,
uint32_t feature) uint32_t feature)
{ {
gensec_security->want_features |= feature; gensec_security->want_features |= feature;
@ -898,7 +898,7 @@ void gensec_want_feature(struct gensec_security *gensec_security,
* *
*/ */
BOOL gensec_have_feature(struct gensec_security *gensec_security, _PUBLIC_ BOOL gensec_have_feature(struct gensec_security *gensec_security,
uint32_t feature) uint32_t feature)
{ {
if (!gensec_security->ops->have_feature) { if (!gensec_security->ops->have_feature) {
@ -917,7 +917,7 @@ BOOL gensec_have_feature(struct gensec_security *gensec_security,
* *
*/ */
NTSTATUS gensec_set_credentials(struct gensec_security *gensec_security, struct cli_credentials *credentials) _PUBLIC_ NTSTATUS gensec_set_credentials(struct gensec_security *gensec_security, struct cli_credentials *credentials)
{ {
gensec_security->credentials = talloc_reference(gensec_security, credentials); gensec_security->credentials = talloc_reference(gensec_security, credentials);
return NT_STATUS_OK; return NT_STATUS_OK;
@ -941,7 +941,7 @@ struct cli_credentials *gensec_get_credentials(struct gensec_security *gensec_se
* *
*/ */
NTSTATUS gensec_set_target_service(struct gensec_security *gensec_security, const char *service) _PUBLIC_ NTSTATUS gensec_set_target_service(struct gensec_security *gensec_security, const char *service)
{ {
gensec_security->target.service = talloc_strdup(gensec_security, service); gensec_security->target.service = talloc_strdup(gensec_security, service);
if (!gensec_security->target.service) { if (!gensec_security->target.service) {
@ -950,7 +950,7 @@ NTSTATUS gensec_set_target_service(struct gensec_security *gensec_security, cons
return NT_STATUS_OK; return NT_STATUS_OK;
} }
const char *gensec_get_target_service(struct gensec_security *gensec_security) _PUBLIC_ const char *gensec_get_target_service(struct gensec_security *gensec_security)
{ {
if (gensec_security->target.service) { if (gensec_security->target.service) {
return gensec_security->target.service; return gensec_security->target.service;
@ -964,7 +964,7 @@ const char *gensec_get_target_service(struct gensec_security *gensec_security)
* *
*/ */
NTSTATUS gensec_set_target_hostname(struct gensec_security *gensec_security, const char *hostname) _PUBLIC_ NTSTATUS gensec_set_target_hostname(struct gensec_security *gensec_security, const char *hostname)
{ {
gensec_security->target.hostname = talloc_strdup(gensec_security, hostname); gensec_security->target.hostname = talloc_strdup(gensec_security, hostname);
if (!gensec_security->target.hostname) { if (!gensec_security->target.hostname) {
@ -973,7 +973,7 @@ NTSTATUS gensec_set_target_hostname(struct gensec_security *gensec_security, con
return NT_STATUS_OK; return NT_STATUS_OK;
} }
const char *gensec_get_target_hostname(struct gensec_security *gensec_security) _PUBLIC_ const char *gensec_get_target_hostname(struct gensec_security *gensec_security)
{ {
if (gensec_security->target.hostname) { if (gensec_security->target.hostname) {
return gensec_security->target.hostname; return gensec_security->target.hostname;

View File

@ -3,7 +3,6 @@
[MODULE::libldb_objectguid] [MODULE::libldb_objectguid]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = objectguid_module_init INIT_FUNCTION = objectguid_module_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
objectguid.o objectguid.o
REQUIRED_SUBSYSTEMS = \ REQUIRED_SUBSYSTEMS = \
@ -16,7 +15,6 @@ REQUIRED_SUBSYSTEMS = \
[MODULE::libldb_samldb] [MODULE::libldb_samldb]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = samldb_module_init INIT_FUNCTION = samldb_module_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
samldb.o samldb.o
REQUIRED_SUBSYSTEMS = SAMDB REQUIRED_SUBSYSTEMS = SAMDB
@ -30,7 +28,6 @@ REQUIRED_SUBSYSTEMS = SAMDB
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_samba3sam_module_init INIT_FUNCTION = ldb_samba3sam_module_init
ENABLE = NO ENABLE = NO
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
samba3sam.o samba3sam.o
# #
@ -42,7 +39,6 @@ OBJ_FILES = \
[MODULE::libldb_proxy] [MODULE::libldb_proxy]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = proxy_module_init INIT_FUNCTION = proxy_module_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
proxy.o proxy.o
# #
@ -55,7 +51,6 @@ OBJ_FILES = \
[MODULE::libldb_rootdse] [MODULE::libldb_rootdse]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = rootdse_module_init INIT_FUNCTION = rootdse_module_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
rootdse.o rootdse.o
# #
@ -67,7 +62,6 @@ OBJ_FILES = \
[MODULE::libldb_password_hash] [MODULE::libldb_password_hash]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = password_hash_module_init INIT_FUNCTION = password_hash_module_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
password_hash.o password_hash.o
REQUIRED_SUBSYSTEMS = \ REQUIRED_SUBSYSTEMS = \
@ -81,7 +75,6 @@ REQUIRED_SUBSYSTEMS = \
[MODULE::libldb_kludge_acl] [MODULE::libldb_kludge_acl]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_kludge_acl_init INIT_FUNCTION = ldb_kludge_acl_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
kludge_acl.o kludge_acl.o
REQUIRED_SUBSYSTEMS = \ REQUIRED_SUBSYSTEMS = \
@ -95,7 +88,6 @@ REQUIRED_SUBSYSTEMS = \
[MODULE::libldb_extended_dn] [MODULE::libldb_extended_dn]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_extended_dn_init INIT_FUNCTION = ldb_extended_dn_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
extended_dn.o extended_dn.o
# #

View File

@ -43,7 +43,7 @@ static void byteReverse(uint8_t *buf, uint_t longs)
* Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
* initialization constants. * initialization constants.
*/ */
void MD5Init(struct MD5Context *ctx) _PUBLIC_ void MD5Init(struct MD5Context *ctx)
{ {
ctx->buf[0] = 0x67452301; ctx->buf[0] = 0x67452301;
ctx->buf[1] = 0xefcdab89; ctx->buf[1] = 0xefcdab89;
@ -58,7 +58,7 @@ void MD5Init(struct MD5Context *ctx)
* Update context to reflect the concatenation of another buffer full * Update context to reflect the concatenation of another buffer full
* of bytes. * of bytes.
*/ */
void MD5Update(struct MD5Context *ctx, const uint8_t *buf, uint_t len) _PUBLIC_ void MD5Update(struct MD5Context *ctx, const uint8_t *buf, uint_t len)
{ {
register uint32_t t; register uint32_t t;
@ -106,7 +106,7 @@ void MD5Update(struct MD5Context *ctx, const uint8_t *buf, uint_t len)
* Final wrapup - pad to 64-byte boundary with the bit pattern * Final wrapup - pad to 64-byte boundary with the bit pattern
* 1 0* (64-bit count of bits processed, MSB-first) * 1 0* (64-bit count of bits processed, MSB-first)
*/ */
void MD5Final(uint8_t digest[16], struct MD5Context *ctx) _PUBLIC_ void MD5Final(uint8_t digest[16], struct MD5Context *ctx)
{ {
uint_t count; uint_t count;
uint8_t *p; uint8_t *p;

View File

@ -3,7 +3,6 @@
[MODULE::libldb_asq] [MODULE::libldb_asq]
INIT_FUNCTION = ldb_asq_init INIT_FUNCTION = ldb_asq_init
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/asq.o modules/asq.o
# End MODULE libldb_asq # End MODULE libldb_asq
@ -14,7 +13,6 @@ OBJ_FILES = \
[MODULE::libldb_sort] [MODULE::libldb_sort]
INIT_FUNCTION = ldb_sort_init INIT_FUNCTION = ldb_sort_init
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/sort.o modules/sort.o
# End MODULE libldb_sort # End MODULE libldb_sort
@ -25,7 +23,6 @@ OBJ_FILES = \
[MODULE::libldb_paged_results] [MODULE::libldb_paged_results]
INIT_FUNCTION = ldb_paged_results_init INIT_FUNCTION = ldb_paged_results_init
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/paged_results.o modules/paged_results.o
# End MODULE libldb_paged_results # End MODULE libldb_paged_results
@ -36,7 +33,6 @@ OBJ_FILES = \
[MODULE::libldb_operational] [MODULE::libldb_operational]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_operational_init INIT_FUNCTION = ldb_operational_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/operational.o modules/operational.o
# End MODULE libldb_operational # End MODULE libldb_operational
@ -47,7 +43,6 @@ OBJ_FILES = \
[MODULE::libldb_objectclass] [MODULE::libldb_objectclass]
INIT_FUNCTION = ldb_objectclass_init INIT_FUNCTION = ldb_objectclass_init
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/objectclass.o modules/objectclass.o
# End MODULE libldb_objectclass # End MODULE libldb_objectclass
@ -58,7 +53,6 @@ OBJ_FILES = \
[MODULE::libldb_rdn_name] [MODULE::libldb_rdn_name]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_rdn_name_init INIT_FUNCTION = ldb_rdn_name_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/rdn_name.o modules/rdn_name.o
# End MODULE libldb_rdn_name # End MODULE libldb_rdn_name
@ -69,7 +63,6 @@ OBJ_FILES = \
[MODULE::libldb_schema] [MODULE::libldb_schema]
INIT_FUNCTION = ldb_schema_init INIT_FUNCTION = ldb_schema_init
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
modules/schema.o modules/schema.o
# End MODULE libldb_schema # End MODULE libldb_schema
@ -79,7 +72,6 @@ OBJ_FILES = \
# Start MODULE libldb_ildap # Start MODULE libldb_ildap
[MODULE::libldb_ildap] [MODULE::libldb_ildap]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
INIT_FUNCTION = ldb_ildap_init INIT_FUNCTION = ldb_ildap_init
OBJ_FILES = \ OBJ_FILES = \
ldb_ildap/ldb_ildap.o ldb_ildap/ldb_ildap.o
@ -93,7 +85,6 @@ NOPROTO = YES
# Start MODULE libldb_map # Start MODULE libldb_map
[MODULE::libldb_map] [MODULE::libldb_map]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = modules/ldb_map.o OBJ_FILES = modules/ldb_map.o
# End MODULE libldb_map # End MODULE libldb_map
################################################ ################################################
@ -103,7 +94,6 @@ OBJ_FILES = modules/ldb_map.o
[MODULE::libldb_skel] [MODULE::libldb_skel]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_skel_init INIT_FUNCTION = ldb_skel_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = modules/skel.o OBJ_FILES = modules/skel.o
# End MODULE libldb_skel # End MODULE libldb_skel
################################################ ################################################
@ -112,7 +102,6 @@ OBJ_FILES = modules/skel.o
# Start MODULE libldb_sqlite3 # Start MODULE libldb_sqlite3
[MODULE::libldb_sqlite3] [MODULE::libldb_sqlite3]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
OUTPUT_TYPE = MERGEDOBJ
INIT_FUNCTION = ldb_sqlite3_init INIT_FUNCTION = ldb_sqlite3_init
OBJ_FILES = \ OBJ_FILES = \
ldb_sqlite3/ldb_sqlite3.o ldb_sqlite3/ldb_sqlite3.o
@ -127,7 +116,6 @@ NOPROTO = YES
[MODULE::libldb_tdb] [MODULE::libldb_tdb]
SUBSYSTEM = LIBLDB SUBSYSTEM = LIBLDB
INIT_FUNCTION = ldb_tdb_init INIT_FUNCTION = ldb_tdb_init
OUTPUT_TYPE = MERGEDOBJ
OBJ_FILES = \ OBJ_FILES = \
ldb_tdb/ldb_tdb.o \ ldb_tdb/ldb_tdb.o \
ldb_tdb/ldb_search.o \ ldb_tdb/ldb_search.o \

View File

@ -250,7 +250,7 @@ _PUBLIC_ WERROR reg_diff_save(const struct reg_diff *diff, const char *filename)
/* /*
* Load diff file * Load diff file
*/ */
struct reg_diff *reg_diff_load(TALLOC_CTX *ctx, const char *fn) _PUBLIC_ struct reg_diff *reg_diff_load(TALLOC_CTX *ctx, const char *fn)
{ {
struct reg_diff *diff; struct reg_diff *diff;
int fd; int fd;

View File

@ -356,7 +356,7 @@ static struct hive_operations reg_backend_rpc = {
.num_values = rpc_num_values, .num_values = rpc_num_values,
}; };
WERROR reg_open_remote(struct registry_context **ctx, struct cli_credentials *credentials, WERROR _PUBLIC_ reg_open_remote(struct registry_context **ctx, struct cli_credentials *credentials,
const char *location, struct event_context *ev) const char *location, struct event_context *ev)
{ {
NTSTATUS status; NTSTATUS status;

View File

@ -63,7 +63,7 @@ static WERROR reg_samba_get_predef (struct registry_context *ctx, uint32_t hkey,
return error; return error;
} }
WERROR reg_open_local (struct registry_context **ctx) _PUBLIC_ WERROR reg_open_local (struct registry_context **ctx)
{ {
*ctx = talloc(NULL, struct registry_context); *ctx = talloc(NULL, struct registry_context);
(*ctx)->get_predefined_key = reg_samba_get_predef; (*ctx)->get_predefined_key = reg_samba_get_predef;

View File

@ -398,7 +398,7 @@ static int sockaddr_convert_from_un(const struct socket_info *si,
return -1; return -1;
} }
int swrap_socket(int domain, int type, int protocol) _PUBLIC_ int swrap_socket(int domain, int type, int protocol)
{ {
struct socket_info *si; struct socket_info *si;
int fd; int fd;
@ -423,7 +423,7 @@ int swrap_socket(int domain, int type, int protocol)
return si->fd; return si->fd;
} }
int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen) _PUBLIC_ int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{ {
struct socket_info *parent_si, *child_si; struct socket_info *parent_si, *child_si;
int fd; int fd;
@ -537,7 +537,7 @@ static int swrap_auto_bind(struct socket_info *si)
} }
int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen) _PUBLIC_ int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen)
{ {
int ret; int ret;
struct sockaddr_un un_addr; struct sockaddr_un un_addr;
@ -573,7 +573,7 @@ int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen)
return ret; return ret;
} }
int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen) _PUBLIC_ int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
{ {
int ret; int ret;
struct sockaddr_un un_addr; struct sockaddr_un un_addr;
@ -601,7 +601,7 @@ int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
return ret; return ret;
} }
int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen) _PUBLIC_ int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen)
{ {
struct socket_info *si = find_socket_info(s); struct socket_info *si = find_socket_info(s);
@ -621,7 +621,7 @@ int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen)
return 0; return 0;
} }
int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen) _PUBLIC_ int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen)
{ {
struct socket_info *si = find_socket_info(s); struct socket_info *si = find_socket_info(s);
@ -635,7 +635,7 @@ int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen)
return 0; return 0;
} }
int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) _PUBLIC_ int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
{ {
struct socket_info *si = find_socket_info(s); struct socket_info *si = find_socket_info(s);
@ -656,7 +656,7 @@ int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *opt
} }
} }
int swrap_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) _PUBLIC_ int swrap_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
{ {
struct socket_info *si = find_socket_info(s); struct socket_info *si = find_socket_info(s);
@ -683,7 +683,7 @@ int swrap_setsockopt(int s, int level, int optname, const void *optval, so
} }
} }
ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) _PUBLIC_ ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)
{ {
struct sockaddr_un un_addr; struct sockaddr_un un_addr;
socklen_t un_addrlen = sizeof(un_addr); socklen_t un_addrlen = sizeof(un_addr);
@ -709,7 +709,7 @@ ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr
} }
ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) _PUBLIC_ ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)
{ {
struct sockaddr_un un_addr; struct sockaddr_un un_addr;
int ret; int ret;
@ -759,7 +759,7 @@ ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, const str
return ret; return ret;
} }
int swrap_close(int fd) _PUBLIC_ int swrap_close(int fd)
{ {
struct socket_info *si = find_socket_info(fd); struct socket_info *si = find_socket_info(fd);

View File

@ -107,7 +107,7 @@ static BOOL set_inherited_process_capability( uint32_t cap_flag, BOOL enable )
Gain the oplock capability from the kernel if possible. Gain the oplock capability from the kernel if possible.
****************************************************************************/ ****************************************************************************/
void oplock_set_capability(BOOL this_process, BOOL inherit) _PUBLIC_ void oplock_set_capability(BOOL this_process, BOOL inherit)
{ {
#if HAVE_KERNEL_OPLOCKS_IRIX #if HAVE_KERNEL_OPLOCKS_IRIX
set_process_capability(KERNEL_OPLOCK_CAPABILITY,this_process); set_process_capability(KERNEL_OPLOCK_CAPABILITY,this_process);

View File

@ -30,7 +30,7 @@
construct a data blob, must be freed with data_blob_free() construct a data blob, must be freed with data_blob_free()
you can pass NULL for p and get a blank data blob you can pass NULL for p and get a blank data blob
**/ **/
DATA_BLOB data_blob_named(const void *p, size_t length, const char *name) _PUBLIC_ DATA_BLOB data_blob_named(const void *p, size_t length, const char *name)
{ {
DATA_BLOB ret; DATA_BLOB ret;
@ -56,7 +56,7 @@ DATA_BLOB data_blob_named(const void *p, size_t length, const char *name)
/** /**
construct a data blob, using supplied TALLOC_CTX construct a data blob, using supplied TALLOC_CTX
**/ **/
DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, size_t length, const char *name) _PUBLIC_ DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, size_t length, const char *name)
{ {
DATA_BLOB ret = data_blob_named(p, length, name); DATA_BLOB ret = data_blob_named(p, length, name);
@ -71,7 +71,7 @@ DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, size_t leng
reference a data blob, to the supplied TALLOC_CTX. reference a data blob, to the supplied TALLOC_CTX.
Returns a NULL DATA_BLOB on failure Returns a NULL DATA_BLOB on failure
**/ **/
DATA_BLOB data_blob_talloc_reference(TALLOC_CTX *mem_ctx, DATA_BLOB *blob) _PUBLIC_ DATA_BLOB data_blob_talloc_reference(TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
{ {
DATA_BLOB ret = *blob; DATA_BLOB ret = *blob;
@ -88,7 +88,7 @@ DATA_BLOB data_blob_talloc_reference(TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
use this sparingly as it initialises data - better to initialise use this sparingly as it initialises data - better to initialise
yourself if you want specific data in the blob yourself if you want specific data in the blob
**/ **/
DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length) _PUBLIC_ DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length)
{ {
DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, length); DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, length);
data_blob_clear(&blob); data_blob_clear(&blob);
@ -98,7 +98,7 @@ DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length)
/** /**
free a data blob free a data blob
**/ **/
void data_blob_free(DATA_BLOB *d) _PUBLIC_ void data_blob_free(DATA_BLOB *d)
{ {
if (d) { if (d) {
talloc_free(d->data); talloc_free(d->data);
@ -110,7 +110,7 @@ void data_blob_free(DATA_BLOB *d)
/** /**
clear a DATA_BLOB's contents clear a DATA_BLOB's contents
**/ **/
void data_blob_clear(DATA_BLOB *d) _PUBLIC_ void data_blob_clear(DATA_BLOB *d)
{ {
if (d->data) { if (d->data) {
memset(d->data, 0, d->length); memset(d->data, 0, d->length);
@ -120,7 +120,7 @@ void data_blob_clear(DATA_BLOB *d)
/** /**
free a data blob and clear its contents free a data blob and clear its contents
**/ **/
void data_blob_clear_free(DATA_BLOB *d) _PUBLIC_ void data_blob_clear_free(DATA_BLOB *d)
{ {
data_blob_clear(d); data_blob_clear(d);
data_blob_free(d); data_blob_free(d);
@ -130,7 +130,7 @@ void data_blob_clear_free(DATA_BLOB *d)
/** /**
check if two data blobs are equal check if two data blobs are equal
**/ **/
BOOL data_blob_equal(const DATA_BLOB *d1, const DATA_BLOB *d2) _PUBLIC_ BOOL data_blob_equal(const DATA_BLOB *d1, const DATA_BLOB *d2)
{ {
if (d1->length != d2->length) { if (d1->length != d2->length) {
return False; return False;
@ -150,7 +150,7 @@ BOOL data_blob_equal(const DATA_BLOB *d1, const DATA_BLOB *d2)
/** /**
print the data_blob as hex string print the data_blob as hex string
**/ **/
char *data_blob_hex_string(TALLOC_CTX *mem_ctx, DATA_BLOB *blob) _PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
{ {
int i; int i;
char *hex_string; char *hex_string;
@ -170,7 +170,7 @@ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
useful for constructing data blobs in test suites, while useful for constructing data blobs in test suites, while
avoiding const warnings avoiding const warnings
**/ **/
DATA_BLOB data_blob_string_const(const char *str) _PUBLIC_ DATA_BLOB data_blob_string_const(const char *str)
{ {
DATA_BLOB blob; DATA_BLOB blob;
blob.data = discard_const(str); blob.data = discard_const(str);
@ -178,7 +178,7 @@ DATA_BLOB data_blob_string_const(const char *str)
return blob; return blob;
} }
DATA_BLOB data_blob_const(const void *p, size_t length) _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
{ {
DATA_BLOB blob; DATA_BLOB blob;
blob.data = discard_const(p); blob.data = discard_const(p);
@ -190,7 +190,7 @@ DATA_BLOB data_blob_const(const void *p, size_t length)
/** /**
realloc a data_blob realloc a data_blob
**/ **/
NTSTATUS data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length) _PUBLIC_ NTSTATUS data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length)
{ {
blob->data = talloc_realloc_size(mem_ctx, blob->data, length); blob->data = talloc_realloc_size(mem_ctx, blob->data, length);
NT_STATUS_HAVE_NO_MEMORY(blob->data); NT_STATUS_HAVE_NO_MEMORY(blob->data);
@ -201,7 +201,7 @@ NTSTATUS data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length)
/** /**
append some data to a data blob append some data to a data blob
**/ **/
NTSTATUS data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, _PUBLIC_ NTSTATUS data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
const void *p, size_t length) const void *p, size_t length)
{ {
blob->data = talloc_realloc_size(mem_ctx, blob->data, blob->data = talloc_realloc_size(mem_ctx, blob->data,

View File

@ -30,7 +30,7 @@
**/ **/
/* this global variable determines what messages are printed */ /* this global variable determines what messages are printed */
int DEBUGLEVEL; _PUBLIC_ int DEBUGLEVEL;
/* the registered mutex handlers */ /* the registered mutex handlers */
@ -68,7 +68,7 @@ static void log_timestring(int level, const char *location, const char *func)
the backend for debug messages. Note that the DEBUG() macro has already the backend for debug messages. Note that the DEBUG() macro has already
ensured that the log level has been met before this is called ensured that the log level has been met before this is called
*/ */
void do_debug_header(int level, const char *location, const char *func) _PUBLIC_ void do_debug_header(int level, const char *location, const char *func)
{ {
log_timestring(level, location, func); log_timestring(level, location, func);
log_task_id(); log_task_id();
@ -78,7 +78,7 @@ void do_debug_header(int level, const char *location, const char *func)
the backend for debug messages. Note that the DEBUG() macro has already the backend for debug messages. Note that the DEBUG() macro has already
ensured that the log level has been met before this is called ensured that the log level has been met before this is called
*/ */
void do_debug(const char *format, ...) _PRINTF_ATTRIBUTE(1,2) _PUBLIC_ void do_debug(const char *format, ...) _PRINTF_ATTRIBUTE(1,2)
{ {
va_list ap; va_list ap;
char *s = NULL; char *s = NULL;
@ -101,7 +101,7 @@ void do_debug(const char *format, ...) _PRINTF_ATTRIBUTE(1,2)
/** /**
reopen the log file (usually called because the log file name might have changed) reopen the log file (usually called because the log file name might have changed)
*/ */
void reopen_logs(void) _PUBLIC_ void reopen_logs(void)
{ {
const char *logfile = lp_logfile(); const char *logfile = lp_logfile();
char *fname = NULL; char *fname = NULL;
@ -147,7 +147,7 @@ void reopen_logs(void)
control the name of the logfile and whether logging will be to stdout, stderr control the name of the logfile and whether logging will be to stdout, stderr
or a file or a file
*/ */
void setup_logging(const char *prog_name, enum debug_logtype new_logtype) _PUBLIC_ void setup_logging(const char *prog_name, enum debug_logtype new_logtype)
{ {
if (state.logtype < new_logtype) { if (state.logtype < new_logtype) {
state.logtype = new_logtype; state.logtype = new_logtype;
@ -162,7 +162,7 @@ void setup_logging(const char *prog_name, enum debug_logtype new_logtype)
return a string constant containing n tabs return a string constant containing n tabs
no more than 10 tabs are returned no more than 10 tabs are returned
*/ */
const char *do_debug_tab(uint_t n) _PUBLIC_ const char *do_debug_tab(uint_t n)
{ {
const char *tabs[] = {"", "\t", "\t\t", "\t\t\t", "\t\t\t\t", "\t\t\t\t\t", const char *tabs[] = {"", "\t", "\t\t", "\t\t\t", "\t\t\t\t", "\t\t\t\t\t",
"\t\t\t\t\t\t", "\t\t\t\t\t\t\t", "\t\t\t\t\t\t\t\t", "\t\t\t\t\t\t", "\t\t\t\t\t\t\t", "\t\t\t\t\t\t\t\t",
@ -174,7 +174,7 @@ const char *do_debug_tab(uint_t n)
/** /**
log suspicious usage - print comments and backtrace log suspicious usage - print comments and backtrace
*/ */
void log_suspicious_usage(const char *from, const char *info) _PUBLIC_ void log_suspicious_usage(const char *from, const char *info)
{ {
if (debug_handlers.ops.log_suspicious_usage) { if (debug_handlers.ops.log_suspicious_usage) {
debug_handlers.ops.log_suspicious_usage(from, info); debug_handlers.ops.log_suspicious_usage(from, info);
@ -185,15 +185,14 @@ void log_suspicious_usage(const char *from, const char *info)
/** /**
print suspicious usage - print comments and backtrace print suspicious usage - print comments and backtrace
*/ */
_PUBLIC_ void print_suspicious_usage(const char* from, const char* info)
void print_suspicious_usage(const char* from, const char* info)
{ {
if (debug_handlers.ops.print_suspicious_usage) { if (debug_handlers.ops.print_suspicious_usage) {
debug_handlers.ops.print_suspicious_usage(from, info); debug_handlers.ops.print_suspicious_usage(from, info);
} }
} }
uint32_t get_task_id(void) _PUBLIC_ uint32_t get_task_id(void)
{ {
if (debug_handlers.ops.get_task_id) { if (debug_handlers.ops.get_task_id) {
return debug_handlers.ops.get_task_id(); return debug_handlers.ops.get_task_id();
@ -201,7 +200,7 @@ uint32_t get_task_id(void)
return getpid(); return getpid();
} }
void log_task_id(void) _PUBLIC_ void log_task_id(void)
{ {
if (debug_handlers.ops.log_task_id) { if (debug_handlers.ops.log_task_id) {
debug_handlers.ops.log_task_id(state.fd); debug_handlers.ops.log_task_id(state.fd);
@ -211,7 +210,7 @@ void log_task_id(void)
/** /**
register a set of debug handlers. register a set of debug handlers.
*/ */
void register_debug_handlers(const char *name, struct debug_ops *ops) _PUBLIC_ void register_debug_handlers(const char *name, struct debug_ops *ops)
{ {
debug_handlers.name = name; debug_handlers.name = name;
debug_handlers.ops = *ops; debug_handlers.ops = *ops;

View File

@ -46,7 +46,7 @@ static const char *progname;
/** /**
* Write backtrace to debug log * Write backtrace to debug log
*/ */
void call_backtrace(void) _PUBLIC_ void call_backtrace(void)
{ {
#ifdef HAVE_BACKTRACE #ifdef HAVE_BACKTRACE
#define BACKTRACE_STACK_SIZE 64 #define BACKTRACE_STACK_SIZE 64
@ -112,7 +112,7 @@ void call_backtrace(void)
/** /**
Something really nasty happened - panic ! Something really nasty happened - panic !
**/ **/
void smb_panic(const char *why) _PUBLIC_ void smb_panic(const char *why)
{ {
const char *cmd = lp_panic_action(); const char *cmd = lp_panic_action();
int result; int result;
@ -181,7 +181,7 @@ static void sig_fault(int sig)
/** /**
setup our fault handlers setup our fault handlers
**/ **/
void fault_setup(const char *pname) _PUBLIC_ void fault_setup(const char *pname)
{ {
if (progname == NULL) { if (progname == NULL) {
progname = pname; progname = pname;
@ -204,7 +204,7 @@ void fault_setup(const char *pname)
register a fault handler. register a fault handler.
Should only be called once in the execution of smbd. Should only be called once in the execution of smbd.
*/ */
BOOL register_fault_handler(const char *name, void (*fault_handler)(int sig)) _PUBLIC_ BOOL register_fault_handler(const char *name, void (*fault_handler)(int sig))
{ {
if (fault_handlers.name != NULL) { if (fault_handlers.name != NULL) {
/* it's already registered! */ /* it's already registered! */

View File

@ -47,7 +47,7 @@ static uint64_t adjust_blocks(uint64_t blocks, uint64_t fromsize, uint64_t tosiz
* *
* results are returned in *dfree and *dsize, in 512 byte units * results are returned in *dfree and *dsize, in 512 byte units
*/ */
int sys_fsusage(const char *path, uint64_t *dfree, uint64_t *dsize) _PUBLIC_ int sys_fsusage(const char *path, uint64_t *dfree, uint64_t *dsize)
{ {
#ifdef STAT_STATFS3_OSF1 #ifdef STAT_STATFS3_OSF1
#define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_fsize, (uint64_t)512) #define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_fsize, (uint64_t)512)

View File

@ -40,13 +40,13 @@ static void (*reseed_callback)(int *newseed);
Copy any user given reseed data. Copy any user given reseed data.
**/ **/
void set_rand_reseed_callback(void (*fn)(int *)) _PUBLIC_ void set_rand_reseed_callback(void (*fn)(int *))
{ {
reseed_callback = fn; reseed_callback = fn;
set_need_random_reseed(); set_need_random_reseed();
} }
void set_need_random_reseed(void) _PUBLIC_ void set_need_random_reseed(void)
{ {
done_reseed = False; done_reseed = False;
} }
@ -204,7 +204,7 @@ static int do_reseed(BOOL use_fd, int fd)
/** /**
Interface to the (hopefully) good crypto random number generator. Interface to the (hopefully) good crypto random number generator.
**/ **/
void generate_random_buffer(uint8_t *out, int len) _PUBLIC_ void generate_random_buffer(uint8_t *out, int len)
{ {
static int urand_fd = -1; static int urand_fd = -1;
unsigned char md4_buf[64]; unsigned char md4_buf[64];
@ -250,7 +250,7 @@ void generate_random_buffer(uint8_t *out, int len)
/** /**
generate a single random uint32_t generate a single random uint32_t
**/ **/
uint32_t generate_random(void) _PUBLIC_ uint32_t generate_random(void)
{ {
uint8_t v[4]; uint8_t v[4];
generate_random_buffer(v, 4); generate_random_buffer(v, 4);
@ -261,7 +261,7 @@ uint32_t generate_random(void)
/** /**
very basic password quality checker very basic password quality checker
**/ **/
BOOL check_password_quality(const char *s) _PUBLIC_ BOOL check_password_quality(const char *s)
{ {
int has_digit=0, has_capital=0, has_lower=0; int has_digit=0, has_capital=0, has_lower=0;
while (*s) { while (*s) {
@ -282,7 +282,7 @@ BOOL check_password_quality(const char *s)
Use the random number generator to generate a random string. Use the random number generator to generate a random string.
**/ **/
char *generate_random_str_list(TALLOC_CTX *mem_ctx, size_t len, const char *list) _PUBLIC_ char *generate_random_str_list(TALLOC_CTX *mem_ctx, size_t len, const char *list)
{ {
size_t i; size_t i;
size_t list_len = strlen(list); size_t list_len = strlen(list);
@ -299,7 +299,7 @@ char *generate_random_str_list(TALLOC_CTX *mem_ctx, size_t len, const char *list
return retstr; return retstr;
} }
char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len) _PUBLIC_ char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len)
{ {
char *retstr; char *retstr;
const char *c_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+_-#.,"; const char *c_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+_-#.,";

View File

@ -310,21 +310,21 @@ static int _idr_remove(struct idr_context *idp, int id)
this is the public interface this is the public interface
**************************************************************************/ **************************************************************************/
/* /**
initialise a idr tree. The context return value must be passed to initialise a idr tree. The context return value must be passed to
all subsequent idr calls. To destroy the idr tree use talloc_free() all subsequent idr calls. To destroy the idr tree use talloc_free()
on this context on this context
*/ */
struct idr_context *idr_init(TALLOC_CTX *mem_ctx) _PUBLIC_ struct idr_context *idr_init(TALLOC_CTX *mem_ctx)
{ {
return talloc_zero(mem_ctx, struct idr_context); return talloc_zero(mem_ctx, struct idr_context);
} }
/* /**
allocate the next available id, and assign 'ptr' into its slot. allocate the next available id, and assign 'ptr' into its slot.
you can retrieve later this pointer using idr_find() you can retrieve later this pointer using idr_find()
*/ */
int idr_get_new(struct idr_context *idp, void *ptr, int limit) _PUBLIC_ int idr_get_new(struct idr_context *idp, void *ptr, int limit)
{ {
int ret = idr_get_new_above_int(idp, ptr, 0); int ret = idr_get_new_above_int(idp, ptr, 0);
if (ret > limit) { if (ret > limit) {
@ -334,11 +334,11 @@ int idr_get_new(struct idr_context *idp, void *ptr, int limit)
return ret; return ret;
} }
/* /**
allocate a new id, giving the first available value greater than or allocate a new id, giving the first available value greater than or
equal to the given starting id equal to the given starting id
*/ */
int idr_get_new_above(struct idr_context *idp, void *ptr, int starting_id, int limit) _PUBLIC_ int idr_get_new_above(struct idr_context *idp, void *ptr, int starting_id, int limit)
{ {
int ret = idr_get_new_above_int(idp, ptr, starting_id); int ret = idr_get_new_above_int(idp, ptr, starting_id);
if (ret > limit) { if (ret > limit) {
@ -348,10 +348,10 @@ int idr_get_new_above(struct idr_context *idp, void *ptr, int starting_id, int l
return ret; return ret;
} }
/* /**
allocate a new id randomly in the given range allocate a new id randomly in the given range
*/ */
int idr_get_new_random(struct idr_context *idp, void *ptr, int limit) _PUBLIC_ int idr_get_new_random(struct idr_context *idp, void *ptr, int limit)
{ {
int id; int id;
@ -366,18 +366,18 @@ int idr_get_new_random(struct idr_context *idp, void *ptr, int limit)
return id; return id;
} }
/* /**
find a pointer value previously set with idr_get_new given an id find a pointer value previously set with idr_get_new given an id
*/ */
void *idr_find(struct idr_context *idp, int id) _PUBLIC_ void *idr_find(struct idr_context *idp, int id)
{ {
return _idr_find(idp, id); return _idr_find(idp, id);
} }
/* /**
remove an id from the idr tree remove an id from the idr tree
*/ */
int idr_remove(struct idr_context *idp, int id) _PUBLIC_ int idr_remove(struct idr_context *idp, int id)
{ {
int ret; int ret;
ret = _idr_remove((struct idr_context *)idp, id); ret = _idr_remove((struct idr_context *)idp, id);

View File

@ -56,7 +56,11 @@ static void *load_module(TALLOC_CTX *mem_ctx, const char *dir, const char *name)
return init_fn; return init_fn;
} }
init_module_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path) /**
* Obtain list of init functions from the modules in the specified
* directory
*/
_PUBLIC_ init_module_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
{ {
DIR *dir; DIR *dir;
struct dirent *entry; struct dirent *entry;
@ -88,7 +92,12 @@ init_module_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
return ret; return ret;
} }
BOOL run_init_functions(NTSTATUS (**fns) (void)) /**
* Run the specified init functions.
*
* @return True if all functions ran successfully, False otherwise
*/
_PUBLIC_ BOOL run_init_functions(NTSTATUS (**fns) (void))
{ {
int i; int i;
BOOL ret; BOOL ret;

View File

@ -39,7 +39,7 @@ static struct {
register a set of mutex/rwlock handlers. register a set of mutex/rwlock handlers.
Should only be called once in the execution of smbd. Should only be called once in the execution of smbd.
*/ */
BOOL register_mutex_handlers(const char *name, struct mutex_ops *ops) _PUBLIC_ BOOL register_mutex_handlers(const char *name, struct mutex_ops *ops)
{ {
if (mutex_handlers.name != NULL) { if (mutex_handlers.name != NULL) {
/* it's already registered! */ /* it's already registered! */

View File

@ -36,7 +36,7 @@
* return the pid in a pidfile. return 0 if the process (or pidfile) * return the pid in a pidfile. return 0 if the process (or pidfile)
* does not exist * does not exist
*/ */
pid_t pidfile_pid(const char *name) _PUBLIC_ pid_t pidfile_pid(const char *name)
{ {
int fd; int fd;
char pidstr[20]; char pidstr[20];

View File

@ -45,7 +45,7 @@
/** /**
External access to time_t_min and time_t_max. External access to time_t_min and time_t_max.
**/ **/
time_t get_time_t_max(void) _PUBLIC_ time_t get_time_t_max(void)
{ {
return TIME_T_MAX; return TIME_T_MAX;
} }
@ -53,7 +53,7 @@ time_t get_time_t_max(void)
/** /**
a gettimeofday wrapper a gettimeofday wrapper
**/ **/
void GetTimeOfDay(struct timeval *tval) _PUBLIC_ void GetTimeOfDay(struct timeval *tval)
{ {
#ifdef HAVE_GETTIMEOFDAY_TZ #ifdef HAVE_GETTIMEOFDAY_TZ
gettimeofday(tval,NULL); gettimeofday(tval,NULL);
@ -69,7 +69,7 @@ void GetTimeOfDay(struct timeval *tval)
interpret an 8 byte "filetime" structure to a time_t interpret an 8 byte "filetime" structure to a time_t
It's originally in "100ns units since jan 1st 1601" It's originally in "100ns units since jan 1st 1601"
**/ **/
time_t nt_time_to_unix(NTTIME nt) _PUBLIC_ time_t nt_time_to_unix(NTTIME nt)
{ {
if (nt == 0) { if (nt == 0) {
return 0; return 0;
@ -93,7 +93,7 @@ time_t nt_time_to_unix(NTTIME nt)
put a 8 byte filetime from a time_t put a 8 byte filetime from a time_t
This takes GMT as input This takes GMT as input
**/ **/
void unix_to_nt_time(NTTIME *nt, time_t t) _PUBLIC_ void unix_to_nt_time(NTTIME *nt, time_t t)
{ {
uint64_t t2; uint64_t t2;
@ -117,7 +117,7 @@ void unix_to_nt_time(NTTIME *nt, time_t t)
/** /**
check if it's a null unix time check if it's a null unix time
**/ **/
BOOL null_time(time_t t) _PUBLIC_ BOOL null_time(time_t t)
{ {
return t == 0 || return t == 0 ||
t == (time_t)0xFFFFFFFF || t == (time_t)0xFFFFFFFF ||
@ -128,7 +128,7 @@ BOOL null_time(time_t t)
/** /**
check if it's a null NTTIME check if it's a null NTTIME
**/ **/
BOOL null_nttime(NTTIME t) _PUBLIC_ BOOL null_nttime(NTTIME t)
{ {
return t == 0 || t == (NTTIME)-1; return t == 0 || t == (NTTIME)-1;
} }
@ -185,7 +185,7 @@ static uint32_t make_dos_date(time_t unixdate, int zone_offset)
put a dos date into a buffer (time/date format) put a dos date into a buffer (time/date format)
This takes GMT time and puts local time in the buffer This takes GMT time and puts local time in the buffer
**/ **/
void push_dos_date(uint8_t *buf, int offset, time_t unixdate, int zone_offset) _PUBLIC_ void push_dos_date(uint8_t *buf, int offset, time_t unixdate, int zone_offset)
{ {
uint32_t x = make_dos_date(unixdate, zone_offset); uint32_t x = make_dos_date(unixdate, zone_offset);
SIVAL(buf,offset,x); SIVAL(buf,offset,x);
@ -195,7 +195,7 @@ void push_dos_date(uint8_t *buf, int offset, time_t unixdate, int zone_offset)
put a dos date into a buffer (date/time format) put a dos date into a buffer (date/time format)
This takes GMT time and puts local time in the buffer This takes GMT time and puts local time in the buffer
**/ **/
void push_dos_date2(uint8_t *buf,int offset,time_t unixdate, int zone_offset) _PUBLIC_ void push_dos_date2(uint8_t *buf,int offset,time_t unixdate, int zone_offset)
{ {
uint32_t x; uint32_t x;
x = make_dos_date(unixdate, zone_offset); x = make_dos_date(unixdate, zone_offset);
@ -208,7 +208,7 @@ put a dos 32 bit "unix like" date into a buffer. This routine takes
GMT and converts it to LOCAL time before putting it (most SMBs assume GMT and converts it to LOCAL time before putting it (most SMBs assume
localtime for this sort of date) localtime for this sort of date)
**/ **/
void push_dos_date3(uint8_t *buf,int offset,time_t unixdate, int zone_offset) _PUBLIC_ void push_dos_date3(uint8_t *buf,int offset,time_t unixdate, int zone_offset)
{ {
if (!null_time(unixdate)) { if (!null_time(unixdate)) {
unixdate -= zone_offset; unixdate -= zone_offset;
@ -238,7 +238,7 @@ static void interpret_dos_date(uint32_t date,int *year,int *month,int *day,int *
create a unix date (int GMT) from a dos date (which is actually in create a unix date (int GMT) from a dos date (which is actually in
localtime) localtime)
**/ **/
time_t pull_dos_date(const uint8_t *date_ptr, int zone_offset) _PUBLIC_ time_t pull_dos_date(const uint8_t *date_ptr, int zone_offset)
{ {
uint32_t dos_date=0; uint32_t dos_date=0;
struct tm t; struct tm t;
@ -262,7 +262,7 @@ time_t pull_dos_date(const uint8_t *date_ptr, int zone_offset)
/** /**
like make_unix_date() but the words are reversed like make_unix_date() but the words are reversed
**/ **/
time_t pull_dos_date2(const uint8_t *date_ptr, int zone_offset) _PUBLIC_ time_t pull_dos_date2(const uint8_t *date_ptr, int zone_offset)
{ {
uint32_t x,x2; uint32_t x,x2;
@ -277,7 +277,7 @@ time_t pull_dos_date2(const uint8_t *date_ptr, int zone_offset)
create a unix GMT date from a dos date in 32 bit "unix like" format create a unix GMT date from a dos date in 32 bit "unix like" format
these generally arrive as localtimes, with corresponding DST these generally arrive as localtimes, with corresponding DST
**/ **/
time_t pull_dos_date3(const uint8_t *date_ptr, int zone_offset) _PUBLIC_ time_t pull_dos_date3(const uint8_t *date_ptr, int zone_offset)
{ {
time_t t = (time_t)IVAL(date_ptr,0); time_t t = (time_t)IVAL(date_ptr,0);
if (!null_time(t)) { if (!null_time(t)) {
@ -290,7 +290,7 @@ time_t pull_dos_date3(const uint8_t *date_ptr, int zone_offset)
/** /**
return a HTTP/1.0 time string return a HTTP/1.0 time string
**/ **/
char *http_timestring(TALLOC_CTX *mem_ctx, time_t t) _PUBLIC_ char *http_timestring(TALLOC_CTX *mem_ctx, time_t t)
{ {
char *buf; char *buf;
char tempTime[60]; char tempTime[60];
@ -316,7 +316,7 @@ char *http_timestring(TALLOC_CTX *mem_ctx, time_t t)
/** /**
Return the date and time as a string Return the date and time as a string
**/ **/
char *timestring(TALLOC_CTX *mem_ctx, time_t t) _PUBLIC_ char *timestring(TALLOC_CTX *mem_ctx, time_t t)
{ {
char *TimeBuf; char *TimeBuf;
char tempTime[80]; char tempTime[80];
@ -346,7 +346,7 @@ char *timestring(TALLOC_CTX *mem_ctx, time_t t)
/** /**
return a talloced string representing a NTTIME for human consumption return a talloced string representing a NTTIME for human consumption
*/ */
const char *nt_time_string(TALLOC_CTX *mem_ctx, NTTIME nt) _PUBLIC_ const char *nt_time_string(TALLOC_CTX *mem_ctx, NTTIME nt)
{ {
time_t t; time_t t;
if (nt == 0) { if (nt == 0) {
@ -360,7 +360,7 @@ const char *nt_time_string(TALLOC_CTX *mem_ctx, NTTIME nt)
/** /**
put a NTTIME into a packet put a NTTIME into a packet
*/ */
void push_nttime(uint8_t *base, uint16_t offset, NTTIME t) _PUBLIC_ void push_nttime(uint8_t *base, uint16_t offset, NTTIME t)
{ {
SBVAL(base, offset, t); SBVAL(base, offset, t);
} }
@ -368,7 +368,7 @@ void push_nttime(uint8_t *base, uint16_t offset, NTTIME t)
/** /**
pull a NTTIME from a packet pull a NTTIME from a packet
*/ */
NTTIME pull_nttime(uint8_t *base, uint16_t offset) _PUBLIC_ NTTIME pull_nttime(uint8_t *base, uint16_t offset)
{ {
NTTIME ret = BVAL(base, offset); NTTIME ret = BVAL(base, offset);
return ret; return ret;
@ -377,7 +377,7 @@ NTTIME pull_nttime(uint8_t *base, uint16_t offset)
/** /**
parse a nttime as a large integer in a string and return a NTTIME parse a nttime as a large integer in a string and return a NTTIME
*/ */
NTTIME nttime_from_string(const char *s) _PUBLIC_ NTTIME nttime_from_string(const char *s)
{ {
return strtoull(s, NULL, 0); return strtoull(s, NULL, 0);
} }
@ -385,7 +385,7 @@ NTTIME nttime_from_string(const char *s)
/** /**
return (tv1 - tv2) in microseconds return (tv1 - tv2) in microseconds
*/ */
int64_t usec_time_diff(struct timeval *tv1, struct timeval *tv2) _PUBLIC_ int64_t usec_time_diff(struct timeval *tv1, struct timeval *tv2)
{ {
int64_t sec_diff = tv1->tv_sec - tv2->tv_sec; int64_t sec_diff = tv1->tv_sec - tv2->tv_sec;
return (sec_diff * 1000000) + (int64_t)(tv1->tv_usec - tv2->tv_usec); return (sec_diff * 1000000) + (int64_t)(tv1->tv_usec - tv2->tv_usec);
@ -395,7 +395,7 @@ int64_t usec_time_diff(struct timeval *tv1, struct timeval *tv2)
/** /**
return a zero timeval return a zero timeval
*/ */
struct timeval timeval_zero(void) _PUBLIC_ struct timeval timeval_zero(void)
{ {
struct timeval tv; struct timeval tv;
tv.tv_sec = 0; tv.tv_sec = 0;
@ -406,7 +406,7 @@ struct timeval timeval_zero(void)
/** /**
return True if a timeval is zero return True if a timeval is zero
*/ */
BOOL timeval_is_zero(const struct timeval *tv) _PUBLIC_ BOOL timeval_is_zero(const struct timeval *tv)
{ {
return tv->tv_sec == 0 && tv->tv_usec == 0; return tv->tv_sec == 0 && tv->tv_usec == 0;
} }
@ -414,7 +414,7 @@ BOOL timeval_is_zero(const struct timeval *tv)
/** /**
return a timeval for the current time return a timeval for the current time
*/ */
struct timeval timeval_current(void) _PUBLIC_ struct timeval timeval_current(void)
{ {
struct timeval tv; struct timeval tv;
GetTimeOfDay(&tv); GetTimeOfDay(&tv);
@ -424,7 +424,7 @@ struct timeval timeval_current(void)
/** /**
return a timeval struct with the given elements return a timeval struct with the given elements
*/ */
struct timeval timeval_set(uint32_t secs, uint32_t usecs) _PUBLIC_ struct timeval timeval_set(uint32_t secs, uint32_t usecs)
{ {
struct timeval tv; struct timeval tv;
tv.tv_sec = secs; tv.tv_sec = secs;
@ -436,7 +436,7 @@ struct timeval timeval_set(uint32_t secs, uint32_t usecs)
/** /**
return a timeval ofs microseconds after tv return a timeval ofs microseconds after tv
*/ */
struct timeval timeval_add(const struct timeval *tv, _PUBLIC_ struct timeval timeval_add(const struct timeval *tv,
uint32_t secs, uint32_t usecs) uint32_t secs, uint32_t usecs)
{ {
struct timeval tv2 = *tv; struct timeval tv2 = *tv;
@ -460,7 +460,7 @@ struct timeval timeval_sum(const struct timeval *tv1,
/** /**
return a timeval secs/usecs into the future return a timeval secs/usecs into the future
*/ */
struct timeval timeval_current_ofs(uint32_t secs, uint32_t usecs) _PUBLIC_ struct timeval timeval_current_ofs(uint32_t secs, uint32_t usecs)
{ {
struct timeval tv = timeval_current(); struct timeval tv = timeval_current();
return timeval_add(&tv, secs, usecs); return timeval_add(&tv, secs, usecs);
@ -472,7 +472,7 @@ struct timeval timeval_current_ofs(uint32_t secs, uint32_t usecs)
Return 0 if tv1 == tv2 Return 0 if tv1 == tv2
Return 1 if tv1 > tv2 Return 1 if tv1 > tv2
*/ */
int timeval_compare(const struct timeval *tv1, const struct timeval *tv2) _PUBLIC_ int timeval_compare(const struct timeval *tv1, const struct timeval *tv2)
{ {
if (tv1->tv_sec > tv2->tv_sec) return 1; if (tv1->tv_sec > tv2->tv_sec) return 1;
if (tv1->tv_sec < tv2->tv_sec) return -1; if (tv1->tv_sec < tv2->tv_sec) return -1;
@ -484,7 +484,7 @@ int timeval_compare(const struct timeval *tv1, const struct timeval *tv2)
/** /**
return True if a timer is in the past return True if a timer is in the past
*/ */
BOOL timeval_expired(const struct timeval *tv) _PUBLIC_ BOOL timeval_expired(const struct timeval *tv)
{ {
struct timeval tv2 = timeval_current(); struct timeval tv2 = timeval_current();
if (tv2.tv_sec > tv->tv_sec) return True; if (tv2.tv_sec > tv->tv_sec) return True;
@ -495,7 +495,7 @@ BOOL timeval_expired(const struct timeval *tv)
/** /**
return the number of seconds elapsed between two times return the number of seconds elapsed between two times
*/ */
double timeval_elapsed2(const struct timeval *tv1, const struct timeval *tv2) _PUBLIC_ double timeval_elapsed2(const struct timeval *tv1, const struct timeval *tv2)
{ {
return (tv2->tv_sec - tv1->tv_sec) + return (tv2->tv_sec - tv1->tv_sec) +
(tv2->tv_usec - tv1->tv_usec)*1.0e-6; (tv2->tv_usec - tv1->tv_usec)*1.0e-6;
@ -504,7 +504,7 @@ double timeval_elapsed2(const struct timeval *tv1, const struct timeval *tv2)
/** /**
return the number of seconds elapsed since a given time return the number of seconds elapsed since a given time
*/ */
double timeval_elapsed(const struct timeval *tv) _PUBLIC_ double timeval_elapsed(const struct timeval *tv)
{ {
struct timeval tv2 = timeval_current(); struct timeval tv2 = timeval_current();
return timeval_elapsed2(tv, &tv2); return timeval_elapsed2(tv, &tv2);
@ -513,7 +513,7 @@ double timeval_elapsed(const struct timeval *tv)
/** /**
return the lesser of two timevals return the lesser of two timevals
*/ */
struct timeval timeval_min(const struct timeval *tv1, _PUBLIC_ struct timeval timeval_min(const struct timeval *tv1,
const struct timeval *tv2) const struct timeval *tv2)
{ {
if (tv1->tv_sec < tv2->tv_sec) return *tv1; if (tv1->tv_sec < tv2->tv_sec) return *tv1;
@ -525,7 +525,7 @@ struct timeval timeval_min(const struct timeval *tv1,
/** /**
return the greater of two timevals return the greater of two timevals
*/ */
struct timeval timeval_max(const struct timeval *tv1, _PUBLIC_ struct timeval timeval_max(const struct timeval *tv1,
const struct timeval *tv2) const struct timeval *tv2)
{ {
if (tv1->tv_sec > tv2->tv_sec) return *tv1; if (tv1->tv_sec > tv2->tv_sec) return *tv1;
@ -539,7 +539,7 @@ struct timeval timeval_max(const struct timeval *tv1,
if tv1 comes after tv2, then return a zero timeval if tv1 comes after tv2, then return a zero timeval
(this is *tv2 - *tv1) (this is *tv2 - *tv1)
*/ */
struct timeval timeval_until(const struct timeval *tv1, _PUBLIC_ struct timeval timeval_until(const struct timeval *tv1,
const struct timeval *tv2) const struct timeval *tv2)
{ {
struct timeval t; struct timeval t;
@ -560,7 +560,7 @@ struct timeval timeval_until(const struct timeval *tv1,
/** /**
convert a timeval to a NTTIME convert a timeval to a NTTIME
*/ */
NTTIME timeval_to_nttime(const struct timeval *tv) _PUBLIC_ NTTIME timeval_to_nttime(const struct timeval *tv)
{ {
return 10*(tv->tv_usec + return 10*(tv->tv_usec +
((TIME_FIXUP_CONSTANT + (uint64_t)tv->tv_sec) * 1000000)); ((TIME_FIXUP_CONSTANT + (uint64_t)tv->tv_sec) * 1000000));
@ -587,7 +587,7 @@ static int tm_diff(struct tm *a, struct tm *b)
/** /**
return the UTC offset in seconds west of UTC, or 0 if it cannot be determined return the UTC offset in seconds west of UTC, or 0 if it cannot be determined
*/ */
int get_time_zone(time_t t) _PUBLIC_ int get_time_zone(time_t t)
{ {
struct tm *tm = gmtime(&t); struct tm *tm = gmtime(&t);
struct tm tm_utc; struct tm tm_utc;

View File

@ -37,7 +37,7 @@
Find a suitable temporary directory. The result should be copied immediately Find a suitable temporary directory. The result should be copied immediately
as it may be overwritten by a subsequent call. as it may be overwritten by a subsequent call.
**/ **/
const char *tmpdir(void) _PUBLIC_ const char *tmpdir(void)
{ {
char *p; char *p;
if ((p = getenv("TMPDIR"))) if ((p = getenv("TMPDIR")))
@ -49,7 +49,7 @@ const char *tmpdir(void)
/** /**
Check if a file exists - call vfs_file_exist for samba files. Check if a file exists - call vfs_file_exist for samba files.
**/ **/
BOOL file_exist(const char *fname) _PUBLIC_ BOOL file_exist(const char *fname)
{ {
struct stat st; struct stat st;
@ -64,7 +64,7 @@ BOOL file_exist(const char *fname)
Check a files mod time. Check a files mod time.
**/ **/
time_t file_modtime(const char *fname) _PUBLIC_ time_t file_modtime(const char *fname)
{ {
struct stat st; struct stat st;
@ -78,7 +78,7 @@ time_t file_modtime(const char *fname)
Check if a directory exists. Check if a directory exists.
**/ **/
BOOL directory_exist(const char *dname) _PUBLIC_ BOOL directory_exist(const char *dname)
{ {
struct stat st; struct stat st;
BOOL ret; BOOL ret;
@ -93,7 +93,7 @@ BOOL directory_exist(const char *dname)
return ret; return ret;
} }
BOOL directory_create_or_exist(const char *dname, uid_t uid, _PUBLIC_ BOOL directory_create_or_exist(const char *dname, uid_t uid,
mode_t dir_perms) mode_t dir_perms)
{ {
mode_t old_umask; mode_t old_umask;
@ -179,7 +179,7 @@ static void close_low_fds(BOOL stderr_too)
if BSD use FNDELAY if BSD use FNDELAY
**/ **/
int set_blocking(int fd, BOOL set) _PUBLIC_ int set_blocking(int fd, BOOL set)
{ {
int val; int val;
#ifdef O_NONBLOCK #ifdef O_NONBLOCK
@ -207,7 +207,7 @@ int set_blocking(int fd, BOOL set)
Sleep for a specified number of milliseconds. Sleep for a specified number of milliseconds.
**/ **/
void msleep(uint_t t) _PUBLIC_ void msleep(uint_t t)
{ {
struct timeval tval; struct timeval tval;
@ -222,7 +222,7 @@ void msleep(uint_t t)
Become a daemon, discarding the controlling terminal. Become a daemon, discarding the controlling terminal.
**/ **/
void become_daemon(BOOL Fork) _PUBLIC_ void become_daemon(BOOL Fork)
{ {
if (Fork) { if (Fork) {
if (fork()) { if (fork()) {
@ -255,7 +255,7 @@ void become_daemon(BOOL Fork)
Exists only because we need to pass a function pointer somewhere --SSS Exists only because we need to pass a function pointer somewhere --SSS
**/ **/
void safe_free(void *p) _PUBLIC_ void safe_free(void *p)
{ {
SAFE_FREE(p); SAFE_FREE(p);
} }
@ -265,7 +265,7 @@ void safe_free(void *p)
see if a string matches either our primary or one of our secondary see if a string matches either our primary or one of our secondary
netbios aliases. do a case insensitive match netbios aliases. do a case insensitive match
*/ */
BOOL is_myname(const char *name) _PUBLIC_ BOOL is_myname(const char *name)
{ {
const char **aliases; const char **aliases;
int i; int i;
@ -289,7 +289,7 @@ BOOL is_myname(const char *name)
Get my own name, return in malloc'ed storage. Get my own name, return in malloc'ed storage.
**/ **/
char* get_myname(void) _PUBLIC_ char* get_myname(void)
{ {
char *hostname; char *hostname;
const int host_name_max = 255; const int host_name_max = 255;
@ -320,7 +320,7 @@ char* get_myname(void)
Return true if a string could be a pure IP address. Return true if a string could be a pure IP address.
**/ **/
BOOL is_ipaddress(const char *str) _PUBLIC_ BOOL is_ipaddress(const char *str)
{ {
BOOL pure_address = True; BOOL pure_address = True;
int i; int i;
@ -338,7 +338,7 @@ BOOL is_ipaddress(const char *str)
/** /**
Interpret an internet address or name into an IP address in 4 byte form. Interpret an internet address or name into an IP address in 4 byte form.
**/ **/
uint32_t interpret_addr(const char *str) _PUBLIC_ uint32_t interpret_addr(const char *str)
{ {
struct hostent *hp; struct hostent *hp;
uint32_t res; uint32_t res;
@ -383,7 +383,7 @@ uint32_t interpret_addr(const char *str)
/** /**
A convenient addition to interpret_addr(). A convenient addition to interpret_addr().
**/ **/
struct ipv4_addr interpret_addr2(const char *str) _PUBLIC_ struct ipv4_addr interpret_addr2(const char *str)
{ {
struct ipv4_addr ret; struct ipv4_addr ret;
uint32_t a = interpret_addr(str); uint32_t a = interpret_addr(str);
@ -395,7 +395,7 @@ struct ipv4_addr interpret_addr2(const char *str)
Check if an IP is the 0.0.0.0. Check if an IP is the 0.0.0.0.
**/ **/
BOOL is_zero_ip(struct ipv4_addr ip) _PUBLIC_ BOOL is_zero_ip(struct ipv4_addr ip)
{ {
return ip.addr == 0; return ip.addr == 0;
} }
@ -404,7 +404,7 @@ BOOL is_zero_ip(struct ipv4_addr ip)
Are two IPs on the same subnet? Are two IPs on the same subnet?
**/ **/
BOOL same_net(struct ipv4_addr ip1,struct ipv4_addr ip2,struct ipv4_addr mask) _PUBLIC_ BOOL same_net(struct ipv4_addr ip1,struct ipv4_addr ip2,struct ipv4_addr mask)
{ {
uint32_t net1,net2,nmask; uint32_t net1,net2,nmask;
@ -420,7 +420,7 @@ BOOL same_net(struct ipv4_addr ip1,struct ipv4_addr ip2,struct ipv4_addr mask)
Check if a process exists. Does this work on all unixes? Check if a process exists. Does this work on all unixes?
**/ **/
BOOL process_exists(pid_t pid) _PUBLIC_ BOOL process_exists(pid_t pid)
{ {
/* Doing kill with a non-positive pid causes messages to be /* Doing kill with a non-positive pid causes messages to be
* sent to places we don't want. */ * sent to places we don't want. */
@ -433,7 +433,7 @@ BOOL process_exists(pid_t pid)
is dealt with in posix.c is dealt with in posix.c
**/ **/
BOOL fcntl_lock(int fd, int op, off_t offset, off_t count, int type) _PUBLIC_ BOOL fcntl_lock(int fd, int op, off_t offset, off_t count, int type)
{ {
struct flock lock; struct flock lock;
int ret; int ret;
@ -486,7 +486,7 @@ static void print_asc(int level, const uint8_t *buf,int len)
DEBUGADD(level,("%c", isprint(buf[i])?buf[i]:'.')); DEBUGADD(level,("%c", isprint(buf[i])?buf[i]:'.'));
} }
void dump_data(int level, const uint8_t *buf,int len) _PUBLIC_ void dump_data(int level, const uint8_t *buf,int len)
{ {
int i=0; int i=0;
if (len<=0) return; if (len<=0) return;
@ -522,7 +522,7 @@ void dump_data(int level, const uint8_t *buf,int len)
malloc that aborts with smb_panic on fail or zero size. malloc that aborts with smb_panic on fail or zero size.
**/ **/
void *smb_xmalloc(size_t size) _PUBLIC_ void *smb_xmalloc(size_t size)
{ {
void *p; void *p;
if (size == 0) if (size == 0)
@ -536,7 +536,7 @@ void *smb_xmalloc(size_t size)
Memdup with smb_panic on fail. Memdup with smb_panic on fail.
**/ **/
void *smb_xmemdup(const void *p, size_t size) _PUBLIC_ void *smb_xmemdup(const void *p, size_t size)
{ {
void *p2; void *p2;
p2 = smb_xmalloc(size); p2 = smb_xmalloc(size);
@ -548,7 +548,7 @@ void *smb_xmemdup(const void *p, size_t size)
strdup that aborts on malloc fail. strdup that aborts on malloc fail.
**/ **/
char *smb_xstrdup(const char *s) _PUBLIC_ char *smb_xstrdup(const char *s)
{ {
char *s1 = strdup(s); char *s1 = strdup(s);
if (!s1) if (!s1)
@ -561,7 +561,7 @@ char *smb_xstrdup(const char *s)
Like strdup but for memory. Like strdup but for memory.
**/ **/
void *memdup(const void *p, size_t size) _PUBLIC_ void *memdup(const void *p, size_t size)
{ {
void *p2; void *p2;
if (size == 0) if (size == 0)
@ -576,7 +576,7 @@ void *memdup(const void *p, size_t size)
/** /**
A useful function for returning a path in the Samba lock directory. A useful function for returning a path in the Samba lock directory.
**/ **/
char *lock_path(TALLOC_CTX* mem_ctx, const char *name) _PUBLIC_ char *lock_path(TALLOC_CTX* mem_ctx, const char *name)
{ {
char *fname, *dname; char *fname, *dname;
if (name == NULL) { if (name == NULL) {
@ -631,7 +631,7 @@ static char *pid_path(TALLOC_CTX* mem_ctx, const char *name)
* @retval Pointer to a talloc'ed string containing the full path. * @retval Pointer to a talloc'ed string containing the full path.
**/ **/
char *lib_path(TALLOC_CTX* mem_ctx, const char *name) _PUBLIC_ char *lib_path(TALLOC_CTX* mem_ctx, const char *name)
{ {
char *fname; char *fname;
fname = talloc_asprintf(mem_ctx, "%s/%s", dyn_LIBDIR, name); fname = talloc_asprintf(mem_ctx, "%s/%s", dyn_LIBDIR, name);
@ -646,7 +646,7 @@ char *lib_path(TALLOC_CTX* mem_ctx, const char *name)
* *
* @retval Pointer to a talloc'ed string containing the full path. * @retval Pointer to a talloc'ed string containing the full path.
**/ **/
char *private_path(TALLOC_CTX* mem_ctx, const char *name) _PUBLIC_ char *private_path(TALLOC_CTX* mem_ctx, const char *name)
{ {
char *fname; char *fname;
if (name == NULL) { if (name == NULL) {
@ -664,7 +664,7 @@ char *private_path(TALLOC_CTX* mem_ctx, const char *name)
for smbd go. If NULL is passed for name then return the directory for smbd go. If NULL is passed for name then return the directory
path itself path itself
*/ */
char *smbd_tmp_path(TALLOC_CTX *mem_ctx, const char *name) _PUBLIC_ char *smbd_tmp_path(TALLOC_CTX *mem_ctx, const char *name)
{ {
char *fname, *dname; char *fname, *dname;
@ -688,7 +688,7 @@ static char *modules_path(TALLOC_CTX* mem_ctx, const char *name)
return talloc_asprintf(mem_ctx, "%s/%s", dyn_MODULESDIR, name); return talloc_asprintf(mem_ctx, "%s/%s", dyn_MODULESDIR, name);
} }
init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem) _PUBLIC_ init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem)
{ {
char *path = modules_path(mem_ctx, subsystem); char *path = modules_path(mem_ctx, subsystem);
init_module_fn *ret; init_module_fn *ret;
@ -700,7 +700,7 @@ init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem)
return ret; return ret;
} }
void dump_data_pw(const char *msg, const uint8_t * data, size_t len) _PUBLIC_ void dump_data_pw(const char *msg, const uint8_t * data, size_t len)
{ {
#ifdef DEBUG_PASSWORD #ifdef DEBUG_PASSWORD
DEBUG(11, ("%s", msg)); DEBUG(11, ("%s", msg));
@ -716,7 +716,7 @@ void dump_data_pw(const char *msg, const uint8_t * data, size_t len)
* see if a range of memory is all zero. A NULL pointer is considered * see if a range of memory is all zero. A NULL pointer is considered
* to be all zero * to be all zero
*/ */
BOOL all_zero(const uint8_t *ptr, uint_t size) _PUBLIC_ BOOL all_zero(const uint8_t *ptr, uint_t size)
{ {
int i; int i;
if (!ptr) return True; if (!ptr) return True;
@ -729,7 +729,7 @@ BOOL all_zero(const uint8_t *ptr, uint_t size)
/** /**
realloc an array, checking for integer overflow in the array size realloc an array, checking for integer overflow in the array size
*/ */
void *realloc_array(void *ptr, size_t el_size, unsigned count) _PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count)
{ {
#define MAX_MALLOC_SIZE 0x7fffffff #define MAX_MALLOC_SIZE 0x7fffffff
if (count == 0 || if (count == 0 ||

View File

@ -34,7 +34,7 @@ read a line from a file with possible \ continuation chars.
Blanks at the start or end of a line are stripped. Blanks at the start or end of a line are stripped.
The string will be allocated if s2 is NULL The string will be allocated if s2 is NULL
**/ **/
char *fgets_slash(char *s2,int maxlen,XFILE *f) _PUBLIC_ char *fgets_slash(char *s2,int maxlen,XFILE *f)
{ {
char *s=s2; char *s=s2;
int len = 0; int len = 0;
@ -106,7 +106,7 @@ char *fgets_slash(char *s2,int maxlen,XFILE *f)
/** /**
* Read one line (data until next newline or eof) and allocate it * Read one line (data until next newline or eof) and allocate it
*/ */
char *afdgets(int fd, TALLOC_CTX *mem_ctx, size_t hint) _PUBLIC_ char *afdgets(int fd, TALLOC_CTX *mem_ctx, size_t hint)
{ {
char *data = NULL; char *data = NULL;
ssize_t alloc_size = 0, offset = 0, ret; ssize_t alloc_size = 0, offset = 0, ret;
@ -156,8 +156,7 @@ char *afdgets(int fd, TALLOC_CTX *mem_ctx, size_t hint)
/** /**
load a file into memory from a fd. load a file into memory from a fd.
**/ **/
_PUBLIC_ char *fd_load(int fd, size_t *size, TALLOC_CTX *mem_ctx)
char *fd_load(int fd, size_t *size, TALLOC_CTX *mem_ctx)
{ {
struct stat sbuf; struct stat sbuf;
char *p; char *p;
@ -181,7 +180,7 @@ char *fd_load(int fd, size_t *size, TALLOC_CTX *mem_ctx)
/** /**
load a file into memory load a file into memory
**/ **/
char *file_load(const char *fname, size_t *size, TALLOC_CTX *mem_ctx) _PUBLIC_ char *file_load(const char *fname, size_t *size, TALLOC_CTX *mem_ctx)
{ {
int fd; int fd;
char *p; char *p;
@ -202,7 +201,7 @@ char *file_load(const char *fname, size_t *size, TALLOC_CTX *mem_ctx)
/** /**
mmap (if possible) or read a file mmap (if possible) or read a file
**/ **/
void *map_file(const char *fname, size_t size) _PUBLIC_ void *map_file(const char *fname, size_t size)
{ {
size_t s2 = 0; size_t s2 = 0;
void *p = NULL; void *p = NULL;
@ -278,7 +277,7 @@ static char **file_lines_parse(char *p, size_t size, int *numlines, TALLOC_CTX *
load a file into memory and return an array of pointers to lines in the file load a file into memory and return an array of pointers to lines in the file
must be freed with talloc_free(). must be freed with talloc_free().
**/ **/
char **file_lines_load(const char *fname, int *numlines, TALLOC_CTX *mem_ctx) _PUBLIC_ char **file_lines_load(const char *fname, int *numlines, TALLOC_CTX *mem_ctx)
{ {
char *p; char *p;
char **lines; char **lines;
@ -299,7 +298,7 @@ load a fd into memory and return an array of pointers to lines in the file
must be freed with talloc_free(). If convert is true calls unix_to_dos on must be freed with talloc_free(). If convert is true calls unix_to_dos on
the list. the list.
**/ **/
char **fd_lines_load(int fd, int *numlines, TALLOC_CTX *mem_ctx) _PUBLIC_ char **fd_lines_load(int fd, int *numlines, TALLOC_CTX *mem_ctx)
{ {
char *p; char *p;
char **lines; char **lines;
@ -320,7 +319,7 @@ char **fd_lines_load(int fd, int *numlines, TALLOC_CTX *mem_ctx)
take a list of lines and modify them to produce a list where \ continues take a list of lines and modify them to produce a list where \ continues
a line a line
**/ **/
void file_lines_slashcont(char **lines) _PUBLIC_ void file_lines_slashcont(char **lines)
{ {
int i, j; int i, j;
@ -342,7 +341,7 @@ void file_lines_slashcont(char **lines)
/** /**
save a lump of data into a file. Mostly used for debugging save a lump of data into a file. Mostly used for debugging
*/ */
BOOL file_save(const char *fname, const void *packet, size_t length) _PUBLIC_ BOOL file_save(const char *fname, const void *packet, size_t length)
{ {
int fd; int fd;
fd = open(fname, O_WRONLY|O_CREAT|O_TRUNC, 0644); fd = open(fname, O_WRONLY|O_CREAT|O_TRUNC, 0644);
@ -359,7 +358,7 @@ BOOL file_save(const char *fname, const void *packet, size_t length)
/** /**
see if a file exists see if a file exists
*/ */
BOOL file_exists(const char *path) _PUBLIC_ BOOL file_exists(const char *path)
{ {
struct stat st; struct stat st;
return (stat(path, &st) == 0); return (stat(path, &st) == 0);

View File

@ -75,7 +75,7 @@ static const struct {
/** /**
Set user socket options. Set user socket options.
**/ **/
void set_socket_options(int fd, const char *options) _PUBLIC_ void set_socket_options(int fd, const char *options)
{ {
const char **options_list = str_list_make(NULL, options, " \t,"); const char **options_list = str_list_make(NULL, options, " \t,");
int j; int j;

View File

@ -40,7 +40,7 @@
* Based on a routine by GJC@VILLAGE.COM. * Based on a routine by GJC@VILLAGE.COM.
* Extensively modified by Andrew.Tridgell@anu.edu.au * Extensively modified by Andrew.Tridgell@anu.edu.au
**/ **/
BOOL next_token(const char **ptr,char *buff, const char *sep, size_t bufsize) _PUBLIC_ BOOL next_token(const char **ptr,char *buff, const char *sep, size_t bufsize)
{ {
const char *s; const char *s;
BOOL quoted; BOOL quoted;
@ -82,7 +82,7 @@ BOOL next_token(const char **ptr,char *buff, const char *sep, size_t bufsize)
/** /**
Case insensitive string compararison Case insensitive string compararison
**/ **/
int strcasecmp_m(const char *s1, const char *s2) _PUBLIC_ int strcasecmp_m(const char *s1, const char *s2)
{ {
codepoint_t c1=0, c2=0; codepoint_t c1=0, c2=0;
size_t size1, size2; size_t size1, size2;
@ -117,7 +117,7 @@ int strcasecmp_m(const char *s1, const char *s2)
* *
* @note The comparison is case-insensitive. * @note The comparison is case-insensitive.
**/ **/
BOOL strequal(const char *s1, const char *s2) _PUBLIC_ BOOL strequal(const char *s1, const char *s2)
{ {
if (s1 == s2) if (s1 == s2)
return(True); return(True);
@ -130,7 +130,7 @@ BOOL strequal(const char *s1, const char *s2)
/** /**
Compare 2 strings (case sensitive). Compare 2 strings (case sensitive).
**/ **/
BOOL strcsequal(const char *s1,const char *s2) _PUBLIC_ BOOL strcsequal(const char *s1,const char *s2)
{ {
if (s1 == s2) if (s1 == s2)
return(True); return(True);
@ -144,7 +144,7 @@ BOOL strcsequal(const char *s1,const char *s2)
/** /**
Do a case-insensitive, whitespace-ignoring string compare. Do a case-insensitive, whitespace-ignoring string compare.
**/ **/
int strwicmp(const char *psz1, const char *psz2) _PUBLIC_ int strwicmp(const char *psz1, const char *psz2)
{ {
/* if BOTH strings are NULL, return TRUE, if ONE is NULL return */ /* if BOTH strings are NULL, return TRUE, if ONE is NULL return */
/* appropriate value. */ /* appropriate value. */
@ -175,7 +175,7 @@ int strwicmp(const char *psz1, const char *psz2)
String replace. String replace.
NOTE: oldc and newc must be 7 bit characters NOTE: oldc and newc must be 7 bit characters
**/ **/
void string_replace(char *s, char oldc, char newc) _PUBLIC_ void string_replace(char *s, char oldc, char newc)
{ {
while (*s) { while (*s) {
size_t size; size_t size;
@ -190,7 +190,7 @@ void string_replace(char *s, char oldc, char newc)
/** /**
Trim the specified elements off the front and back of a string. Trim the specified elements off the front and back of a string.
**/ **/
BOOL trim_string(char *s,const char *front,const char *back) _PUBLIC_ BOOL trim_string(char *s,const char *front,const char *back)
{ {
BOOL ret = False; BOOL ret = False;
size_t front_len; size_t front_len;
@ -229,7 +229,7 @@ BOOL trim_string(char *s,const char *front,const char *back)
/** /**
Find the number of 'c' chars in a string Find the number of 'c' chars in a string
**/ **/
size_t count_chars(const char *s, char c) _PUBLIC_ size_t count_chars(const char *s, char c)
{ {
size_t count = 0; size_t count = 0;
@ -247,7 +247,7 @@ size_t count_chars(const char *s, char c)
Safe string copy into a known length string. maxlength does not Safe string copy into a known length string. maxlength does not
include the terminating zero. include the terminating zero.
**/ **/
char *safe_strcpy(char *dest,const char *src, size_t maxlength) _PUBLIC_ char *safe_strcpy(char *dest,const char *src, size_t maxlength)
{ {
size_t len; size_t len;
@ -289,7 +289,7 @@ char *safe_strcpy(char *dest,const char *src, size_t maxlength)
Safe string cat into a string. maxlength does not Safe string cat into a string. maxlength does not
include the terminating zero. include the terminating zero.
**/ **/
char *safe_strcat(char *dest, const char *src, size_t maxlength) _PUBLIC_ char *safe_strcat(char *dest, const char *src, size_t maxlength)
{ {
size_t src_len, dest_len; size_t src_len, dest_len;
@ -331,7 +331,7 @@ char *safe_strcat(char *dest, const char *src, size_t maxlength)
characters. Don't change it ! characters. Don't change it !
**/ **/
char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, size_t maxlength) _PUBLIC_ char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, size_t maxlength)
{ {
size_t len, i; size_t len, i;
@ -375,7 +375,7 @@ char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, si
The variable n should always be one less than the available size. The variable n should always be one less than the available size.
**/ **/
char *StrnCpy(char *dest,const char *src,size_t n) _PUBLIC_ char *StrnCpy(char *dest,const char *src,size_t n)
{ {
char *d = dest; char *d = dest;
if (!dest) if (!dest)
@ -401,7 +401,7 @@ char *StrnCpy(char *dest,const char *src,size_t n)
**/ **/
size_t strhex_to_str(char *p, size_t len, const char *strhex) _PUBLIC_ size_t strhex_to_str(char *p, size_t len, const char *strhex)
{ {
size_t i; size_t i;
size_t num_chars = 0; size_t num_chars = 0;
@ -436,7 +436,7 @@ size_t strhex_to_str(char *p, size_t len, const char *strhex)
return num_chars; return num_chars;
} }
DATA_BLOB strhex_to_data_blob(const char *strhex) _PUBLIC_ DATA_BLOB strhex_to_data_blob(const char *strhex)
{ {
DATA_BLOB ret_blob = data_blob(NULL, strlen(strhex)/2+1); DATA_BLOB ret_blob = data_blob(NULL, strlen(strhex)/2+1);
@ -451,7 +451,7 @@ DATA_BLOB strhex_to_data_blob(const char *strhex)
/** /**
* Routine to print a buffer as HEX digits, into an allocated string. * Routine to print a buffer as HEX digits, into an allocated string.
*/ */
void hex_encode(const unsigned char *buff_in, size_t len, char **out_hex_buffer) _PUBLIC_ void hex_encode(const unsigned char *buff_in, size_t len, char **out_hex_buffer)
{ {
int i; int i;
char *hex_buffer; char *hex_buffer;
@ -466,7 +466,7 @@ void hex_encode(const unsigned char *buff_in, size_t len, char **out_hex_buffer)
/** /**
Check if a string is part of a list. Check if a string is part of a list.
**/ **/
BOOL in_list(const char *s, const char *list, BOOL casesensitive) _PUBLIC_ BOOL in_list(const char *s, const char *list, BOOL casesensitive)
{ {
pstring tok; pstring tok;
const char *p=list; const char *p=list;
@ -504,7 +504,7 @@ static BOOL string_init(char **dest,const char *src)
/** /**
Free a string value. Free a string value.
**/ **/
void string_free(char **s) _PUBLIC_ void string_free(char **s)
{ {
if (s) SAFE_FREE(*s); if (s) SAFE_FREE(*s);
} }
@ -513,7 +513,7 @@ void string_free(char **s)
Set a string value, deallocating any existing space, and allocing the space Set a string value, deallocating any existing space, and allocing the space
for the string for the string
**/ **/
BOOL string_set(char **dest, const char *src) _PUBLIC_ BOOL string_set(char **dest, const char *src)
{ {
string_free(dest); string_free(dest);
return string_init(dest,src); return string_init(dest,src);
@ -531,7 +531,7 @@ BOOL string_set(char **dest, const char *src)
use of len==0 which was for no length checks to be done. use of len==0 which was for no length checks to be done.
**/ **/
void string_sub(char *s,const char *pattern, const char *insert, size_t len) _PUBLIC_ void string_sub(char *s,const char *pattern, const char *insert, size_t len)
{ {
char *p; char *p;
ssize_t ls,lp,li, i; ssize_t ls,lp,li, i;
@ -585,7 +585,7 @@ void string_sub(char *s,const char *pattern, const char *insert, size_t len)
use of len==0 which was for no length checks to be done. use of len==0 which was for no length checks to be done.
**/ **/
void all_string_sub(char *s,const char *pattern,const char *insert, size_t len) _PUBLIC_ void all_string_sub(char *s,const char *pattern,const char *insert, size_t len)
{ {
char *p; char *p;
ssize_t ls,lp,li; ssize_t ls,lp,li;
@ -623,7 +623,7 @@ void all_string_sub(char *s,const char *pattern,const char *insert, size_t len)
/** /**
Strchr and strrchr_m are a bit complex on general multi-byte strings. Strchr and strrchr_m are a bit complex on general multi-byte strings.
**/ **/
char *strchr_m(const char *s, char c) _PUBLIC_ char *strchr_m(const char *s, char c)
{ {
/* characters below 0x3F are guaranteed to not appear in /* characters below 0x3F are guaranteed to not appear in
non-initial position in multi-byte charsets */ non-initial position in multi-byte charsets */
@ -643,7 +643,7 @@ char *strchr_m(const char *s, char c)
return NULL; return NULL;
} }
char *strrchr_m(const char *s, char c) _PUBLIC_ char *strrchr_m(const char *s, char c)
{ {
char *ret = NULL; char *ret = NULL;
@ -668,7 +668,7 @@ char *strrchr_m(const char *s, char c)
/* /*
return True if any (multi-byte) character is lower case return True if any (multi-byte) character is lower case
*/ */
BOOL strhaslower(const char *string) _PUBLIC_ BOOL strhaslower(const char *string)
{ {
while (*string) { while (*string) {
size_t c_size; size_t c_size;
@ -691,7 +691,7 @@ BOOL strhaslower(const char *string)
/* /*
return True if any (multi-byte) character is upper case return True if any (multi-byte) character is upper case
*/ */
BOOL strhasupper(const char *string) _PUBLIC_ BOOL strhasupper(const char *string)
{ {
while (*string) { while (*string) {
size_t c_size; size_t c_size;
@ -714,7 +714,7 @@ BOOL strhasupper(const char *string)
/** /**
Convert a string to lower case, allocated with talloc Convert a string to lower case, allocated with talloc
**/ **/
char *strlower_talloc(TALLOC_CTX *ctx, const char *src) _PUBLIC_ char *strlower_talloc(TALLOC_CTX *ctx, const char *src)
{ {
size_t size=0; size_t size=0;
char *dest; char *dest;
@ -749,7 +749,7 @@ char *strlower_talloc(TALLOC_CTX *ctx, const char *src)
/** /**
Convert a string to UPPER case, allocated with talloc Convert a string to UPPER case, allocated with talloc
**/ **/
char *strupper_talloc(TALLOC_CTX *ctx, const char *src) _PUBLIC_ char *strupper_talloc(TALLOC_CTX *ctx, const char *src)
{ {
size_t size=0; size_t size=0;
char *dest; char *dest;
@ -788,7 +788,7 @@ char *strupper_talloc(TALLOC_CTX *ctx, const char *src)
/** /**
Convert a string to lower case. Convert a string to lower case.
**/ **/
void strlower_m(char *s) _PUBLIC_ void strlower_m(char *s)
{ {
char *d; char *d;
@ -824,7 +824,7 @@ void strlower_m(char *s)
/** /**
Convert a string to UPPER case. Convert a string to UPPER case.
**/ **/
void strupper_m(char *s) _PUBLIC_ void strupper_m(char *s)
{ {
char *d; char *d;
@ -862,7 +862,7 @@ void strupper_m(char *s)
be the same as the number of bytes in a string for single byte strings, be the same as the number of bytes in a string for single byte strings,
but will be different for multibyte. but will be different for multibyte.
**/ **/
size_t strlen_m(const char *s) _PUBLIC_ size_t strlen_m(const char *s)
{ {
size_t count = 0; size_t count = 0;
@ -897,7 +897,7 @@ size_t strlen_m(const char *s)
Work out the number of multibyte chars in a string, including the NULL Work out the number of multibyte chars in a string, including the NULL
terminator. terminator.
**/ **/
size_t strlen_m_term(const char *s) _PUBLIC_ size_t strlen_m_term(const char *s)
{ {
if (!s) { if (!s) {
return 0; return 0;
@ -910,7 +910,7 @@ size_t strlen_m_term(const char *s)
Unescape a URL encoded string, in place. Unescape a URL encoded string, in place.
**/ **/
void rfc1738_unescape(char *buf) _PUBLIC_ void rfc1738_unescape(char *buf)
{ {
char *p=buf; char *p=buf;
@ -949,7 +949,7 @@ void rfc1738_unescape(char *buf)
/** /**
* Decode a base64 string into a DATA_BLOB - simple and slow algorithm * Decode a base64 string into a DATA_BLOB - simple and slow algorithm
**/ **/
DATA_BLOB base64_decode_data_blob(TALLOC_CTX *mem_ctx, const char *s) _PUBLIC_ DATA_BLOB base64_decode_data_blob(TALLOC_CTX *mem_ctx, const char *s)
{ {
DATA_BLOB ret = data_blob_talloc(mem_ctx, s, strlen(s)+1); DATA_BLOB ret = data_blob_talloc(mem_ctx, s, strlen(s)+1);
ret.length = ldb_base64_decode((char *)ret.data); ret.length = ldb_base64_decode((char *)ret.data);
@ -959,7 +959,7 @@ DATA_BLOB base64_decode_data_blob(TALLOC_CTX *mem_ctx, const char *s)
/** /**
* Decode a base64 string in-place - wrapper for the above * Decode a base64 string in-place - wrapper for the above
**/ **/
void base64_decode_inplace(char *s) _PUBLIC_ void base64_decode_inplace(char *s)
{ {
ldb_base64_decode(s); ldb_base64_decode(s);
} }
@ -967,7 +967,7 @@ void base64_decode_inplace(char *s)
/** /**
* Encode a base64 string into a talloc()ed string caller to free. * Encode a base64 string into a talloc()ed string caller to free.
**/ **/
char *base64_encode_data_blob(TALLOC_CTX *mem_ctx, DATA_BLOB data) _PUBLIC_ char *base64_encode_data_blob(TALLOC_CTX *mem_ctx, DATA_BLOB data)
{ {
return ldb_base64_encode(mem_ctx, (const char *)data.data, data.length); return ldb_base64_encode(mem_ctx, (const char *)data.data, data.length);
} }
@ -987,7 +987,7 @@ size_t valgrind_strlen(const char *s)
format a string into length-prefixed dotted domain format, as used in NBT format a string into length-prefixed dotted domain format, as used in NBT
and in some ADS structures and in some ADS structures
**/ **/
const char *str_format_nbt_domain(TALLOC_CTX *mem_ctx, const char *s) _PUBLIC_ const char *str_format_nbt_domain(TALLOC_CTX *mem_ctx, const char *s)
{ {
char *ret; char *ret;
int i; int i;
@ -1016,7 +1016,7 @@ const char *str_format_nbt_domain(TALLOC_CTX *mem_ctx, const char *s)
return ret; return ret;
} }
BOOL add_string_to_array(TALLOC_CTX *mem_ctx, _PUBLIC_ BOOL add_string_to_array(TALLOC_CTX *mem_ctx,
const char *str, const char ***strings, int *num) const char *str, const char ***strings, int *num)
{ {
char *dup_str = talloc_strdup(mem_ctx, str); char *dup_str = talloc_strdup(mem_ctx, str);
@ -1039,7 +1039,7 @@ BOOL add_string_to_array(TALLOC_CTX *mem_ctx,
/** /**
varient of strcmp() that handles NULL ptrs varient of strcmp() that handles NULL ptrs
**/ **/
int strcmp_safe(const char *s1, const char *s2) _PUBLIC_ int strcmp_safe(const char *s1, const char *s2)
{ {
if (s1 == s2) { if (s1 == s2) {
return 0; return 0;
@ -1056,7 +1056,7 @@ return the number of bytes occupied by a buffer in ASCII format
the result includes the null termination the result includes the null termination
limited by 'n' bytes limited by 'n' bytes
**/ **/
size_t ascii_len_n(const char *src, size_t n) _PUBLIC_ size_t ascii_len_n(const char *src, size_t n)
{ {
size_t len; size_t len;
@ -1072,7 +1072,7 @@ size_t ascii_len_n(const char *src, size_t n)
/** /**
Return a string representing a CIFS attribute for a file. Return a string representing a CIFS attribute for a file.
**/ **/
char *attrib_string(TALLOC_CTX *mem_ctx, uint32_t attrib) _PUBLIC_ char *attrib_string(TALLOC_CTX *mem_ctx, uint32_t attrib)
{ {
int i, len; int i, len;
const struct { const struct {
@ -1119,7 +1119,7 @@ char *attrib_string(TALLOC_CTX *mem_ctx, uint32_t attrib)
represent a boolean. represent a boolean.
**/ **/
BOOL set_boolean(const char *boolean_string, BOOL *boolean) _PUBLIC_ BOOL set_boolean(const char *boolean_string, BOOL *boolean)
{ {
if (strwicmp(boolean_string, "yes") == 0 || if (strwicmp(boolean_string, "yes") == 0 ||
strwicmp(boolean_string, "true") == 0 || strwicmp(boolean_string, "true") == 0 ||
@ -1137,7 +1137,7 @@ BOOL set_boolean(const char *boolean_string, BOOL *boolean)
return False; return False;
} }
BOOL conv_str_bool(const char * str, BOOL * val) _PUBLIC_ BOOL conv_str_bool(const char * str, BOOL * val)
{ {
char * end = NULL; char * end = NULL;
long lval; long lval;
@ -1158,7 +1158,7 @@ BOOL conv_str_bool(const char * str, BOOL * val)
/** /**
* Convert a size specification like 16K into an integral number of bytes. * Convert a size specification like 16K into an integral number of bytes.
**/ **/
BOOL conv_str_size(const char * str, uint64_t * val) _PUBLIC_ BOOL conv_str_size(const char * str, uint64_t * val)
{ {
char * end = NULL; char * end = NULL;
unsigned long long lval; unsigned long long lval;
@ -1192,7 +1192,7 @@ BOOL conv_str_size(const char * str, uint64_t * val)
return True; return True;
} }
BOOL conv_str_u64(const char * str, uint64_t * val) _PUBLIC_ BOOL conv_str_u64(const char * str, uint64_t * val)
{ {
char * end = NULL; char * end = NULL;
unsigned long long lval; unsigned long long lval;

View File

@ -31,7 +31,7 @@
separator list. The separator list must contain characters less than separator list. The separator list must contain characters less than
or equal to 0x2f for this to work correctly on multi-byte strings or equal to 0x2f for this to work correctly on multi-byte strings
*/ */
const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, const char *sep) _PUBLIC_ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
{ {
int num_elements = 0; int num_elements = 0;
const char **ret = NULL; const char **ret = NULL;
@ -81,7 +81,7 @@ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, const char *
* Entries are seperated by spaces and can be enclosed by quotes. * Entries are seperated by spaces and can be enclosed by quotes.
* Does NOT support escaping * Does NOT support escaping
*/ */
const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep) _PUBLIC_ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
{ {
int num_elements = 0; int num_elements = 0;
const char **ret = NULL; const char **ret = NULL;
@ -140,7 +140,7 @@ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const
/** /**
* join a list back to one string * join a list back to one string
*/ */
char *str_list_join(TALLOC_CTX *mem_ctx, const char **list, char seperator) _PUBLIC_ char *str_list_join(TALLOC_CTX *mem_ctx, const char **list, char seperator)
{ {
char *ret = NULL; char *ret = NULL;
int i; int i;
@ -159,7 +159,7 @@ char *str_list_join(TALLOC_CTX *mem_ctx, const char **list, char seperator)
/** join a list back to one (shell-like) string; entries /** join a list back to one (shell-like) string; entries
* seperated by spaces, using quotes where necessary */ * seperated by spaces, using quotes where necessary */
char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char sep) _PUBLIC_ char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char sep)
{ {
char *ret = NULL; char *ret = NULL;
int i; int i;
@ -185,7 +185,7 @@ char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char sep)
/** /**
return the number of elements in a string list return the number of elements in a string list
*/ */
size_t str_list_length(const char **list) _PUBLIC_ size_t str_list_length(const char **list)
{ {
size_t ret; size_t ret;
for (ret=0;list && list[ret];ret++) /* noop */ ; for (ret=0;list && list[ret];ret++) /* noop */ ;
@ -196,7 +196,7 @@ size_t str_list_length(const char **list)
/** /**
copy a string list copy a string list
*/ */
const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list) _PUBLIC_ const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list)
{ {
int i; int i;
const char **ret = talloc_array(mem_ctx, const char *, str_list_length(list)+1); const char **ret = talloc_array(mem_ctx, const char *, str_list_length(list)+1);
@ -216,7 +216,7 @@ const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list)
/** /**
Return true if all the elements of the list match exactly. Return true if all the elements of the list match exactly.
*/ */
BOOL str_list_equal(const char **list1, const char **list2) _PUBLIC_ BOOL str_list_equal(const char **list1, const char **list2)
{ {
int i; int i;
@ -239,7 +239,7 @@ BOOL str_list_equal(const char **list1, const char **list2)
/** /**
add an entry to a string list add an entry to a string list
*/ */
const char **str_list_add(const char **list, const char *s) _PUBLIC_ const char **str_list_add(const char **list, const char *s)
{ {
size_t len = str_list_length(list); size_t len = str_list_length(list);
const char **ret; const char **ret;
@ -258,7 +258,7 @@ const char **str_list_add(const char **list, const char *s)
/** /**
remove an entry from a string list remove an entry from a string list
*/ */
void str_list_remove(const char **list, const char *s) _PUBLIC_ void str_list_remove(const char **list, const char *s)
{ {
int i; int i;
@ -276,7 +276,7 @@ void str_list_remove(const char **list, const char *s)
/** /**
return True if a string is in a list return True if a string is in a list
*/ */
BOOL str_list_check(const char **list, const char *s) _PUBLIC_ BOOL str_list_check(const char **list, const char *s)
{ {
int i; int i;
@ -289,7 +289,7 @@ BOOL str_list_check(const char **list, const char *s)
/** /**
return True if a string is in a list, case insensitively return True if a string is in a list, case insensitively
*/ */
BOOL str_list_check_ci(const char **list, const char *s) _PUBLIC_ BOOL str_list_check_ci(const char **list, const char *s)
{ {
int i; int i;

View File

@ -30,7 +30,7 @@
/* /*
block until a composite function has completed, then return the status block until a composite function has completed, then return the status
*/ */
NTSTATUS composite_wait(struct composite_context *c) _PUBLIC_ NTSTATUS composite_wait(struct composite_context *c)
{ {
if (c == NULL) return NT_STATUS_NO_MEMORY; if (c == NULL) return NT_STATUS_NO_MEMORY;
@ -50,7 +50,7 @@ NTSTATUS composite_wait(struct composite_context *c)
* Some composite helpers that are handy if you write larger composite * Some composite helpers that are handy if you write larger composite
* functions. * functions.
*/ */
BOOL composite_is_ok(struct composite_context *ctx) _PUBLIC_ BOOL composite_is_ok(struct composite_context *ctx)
{ {
if (NT_STATUS_IS_OK(ctx->status)) { if (NT_STATUS_IS_OK(ctx->status)) {
return True; return True;
@ -85,7 +85,7 @@ static void composite_trigger(struct event_context *ev, struct timed_event *te,
} }
void composite_error(struct composite_context *ctx, NTSTATUS status) _PUBLIC_ void composite_error(struct composite_context *ctx, NTSTATUS status)
{ {
if (!ctx->used_wait && !ctx->async.fn) { if (!ctx->used_wait && !ctx->async.fn) {
event_add_timed(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx); event_add_timed(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx);
@ -94,7 +94,7 @@ void composite_error(struct composite_context *ctx, NTSTATUS status)
SMB_ASSERT(!composite_is_ok(ctx)); SMB_ASSERT(!composite_is_ok(ctx));
} }
BOOL composite_nomem(const void *p, struct composite_context *ctx) _PUBLIC_ BOOL composite_nomem(const void *p, struct composite_context *ctx)
{ {
if (p != NULL) { if (p != NULL) {
return False; return False;
@ -103,7 +103,7 @@ BOOL composite_nomem(const void *p, struct composite_context *ctx)
return True; return True;
} }
void composite_done(struct composite_context *ctx) _PUBLIC_ void composite_done(struct composite_context *ctx)
{ {
if (!ctx->used_wait && !ctx->async.fn) { if (!ctx->used_wait && !ctx->async.fn) {
event_add_timed(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx); event_add_timed(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx);
@ -114,7 +114,7 @@ void composite_done(struct composite_context *ctx)
} }
} }
void composite_continue(struct composite_context *ctx, _PUBLIC_ void composite_continue(struct composite_context *ctx,
struct composite_context *new_ctx, struct composite_context *new_ctx,
void (*continuation)(struct composite_context *), void (*continuation)(struct composite_context *),
void *private_data) void *private_data)
@ -124,7 +124,7 @@ void composite_continue(struct composite_context *ctx,
new_ctx->async.private_data = private_data; new_ctx->async.private_data = private_data;
} }
void composite_continue_rpc(struct composite_context *ctx, _PUBLIC_ void composite_continue_rpc(struct composite_context *ctx,
struct rpc_request *new_req, struct rpc_request *new_req,
void (*continuation)(struct rpc_request *), void (*continuation)(struct rpc_request *),
void *private_data) void *private_data)
@ -134,7 +134,7 @@ void composite_continue_rpc(struct composite_context *ctx,
new_req->async.private = private_data; new_req->async.private = private_data;
} }
void composite_continue_irpc(struct composite_context *ctx, _PUBLIC_ void composite_continue_irpc(struct composite_context *ctx,
struct irpc_request *new_req, struct irpc_request *new_req,
void (*continuation)(struct irpc_request *), void (*continuation)(struct irpc_request *),
void *private_data) void *private_data)
@ -144,7 +144,7 @@ void composite_continue_irpc(struct composite_context *ctx,
new_req->async.private = private_data; new_req->async.private = private_data;
} }
void composite_continue_smb(struct composite_context *ctx, _PUBLIC_ void composite_continue_smb(struct composite_context *ctx,
struct smbcli_request *new_req, struct smbcli_request *new_req,
void (*continuation)(struct smbcli_request *), void (*continuation)(struct smbcli_request *),
void *private_data) void *private_data)
@ -154,7 +154,7 @@ void composite_continue_smb(struct composite_context *ctx,
new_req->async.private = private_data; new_req->async.private = private_data;
} }
void composite_continue_nbt(struct composite_context *ctx, _PUBLIC_ void composite_continue_nbt(struct composite_context *ctx,
struct nbt_name_request *new_req, struct nbt_name_request *new_req,
void (*continuation)(struct nbt_name_request *), void (*continuation)(struct nbt_name_request *),
void *private_data) void *private_data)

View File

@ -32,10 +32,10 @@
/* don't allow an unlimited number of name components */ /* don't allow an unlimited number of name components */
#define MAX_COMPONENTS 10 #define MAX_COMPONENTS 10
/* /**
print a nbt string print a nbt string
*/ */
void ndr_print_nbt_string(struct ndr_print *ndr, const char *name, const char *s) _PUBLIC_ void ndr_print_nbt_string(struct ndr_print *ndr, const char *name, const char *s)
{ {
ndr_print_string(ndr, name, s); ndr_print_string(ndr, name, s);
} }
@ -88,10 +88,10 @@ static NTSTATUS ndr_pull_component(struct ndr_pull *ndr, uint8_t **component,
return NT_STATUS_BAD_NETWORK_NAME; return NT_STATUS_BAD_NETWORK_NAME;
} }
/* /**
pull a nbt_string from the wire pull a nbt_string from the wire
*/ */
NTSTATUS ndr_pull_nbt_string(struct ndr_pull *ndr, int ndr_flags, const char **s) _PUBLIC_ NTSTATUS ndr_pull_nbt_string(struct ndr_pull *ndr, int ndr_flags, const char **s)
{ {
NTSTATUS status; NTSTATUS status;
uint32_t offset = ndr->offset; uint32_t offset = ndr->offset;
@ -132,10 +132,10 @@ NTSTATUS ndr_pull_nbt_string(struct ndr_pull *ndr, int ndr_flags, const char **s
return NT_STATUS_OK; return NT_STATUS_OK;
} }
/* /**
push a nbt string to the wire push a nbt string to the wire
*/ */
NTSTATUS ndr_push_nbt_string(struct ndr_push *ndr, int ndr_flags, const char *s) _PUBLIC_ NTSTATUS ndr_push_nbt_string(struct ndr_push *ndr, int ndr_flags, const char *s)
{ {
if (!(ndr_flags & NDR_SCALARS)) { if (!(ndr_flags & NDR_SCALARS)) {
return NT_STATUS_OK; return NT_STATUS_OK;
@ -274,10 +274,10 @@ static uint8_t *compress_name(TALLOC_CTX *mem_ctx,
} }
/* /**
pull a nbt name from the wire pull a nbt name from the wire
*/ */
NTSTATUS ndr_pull_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_name *r) _PUBLIC_ NTSTATUS ndr_pull_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_name *r)
{ {
NTSTATUS status; NTSTATUS status;
uint8_t *scope; uint8_t *scope;
@ -320,10 +320,10 @@ NTSTATUS ndr_pull_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_name
return NT_STATUS_OK; return NT_STATUS_OK;
} }
/* /**
push a nbt name to the wire push a nbt name to the wire
*/ */
NTSTATUS ndr_push_nbt_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_name *r) _PUBLIC_ NTSTATUS ndr_push_nbt_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_name *r)
{ {
uint8_t *cname, *fullname; uint8_t *cname, *fullname;
NTSTATUS status; NTSTATUS status;
@ -349,10 +349,10 @@ NTSTATUS ndr_push_nbt_name(struct ndr_push *ndr, int ndr_flags, const struct nbt
} }
/* /**
copy a nbt name structure copy a nbt name structure
*/ */
NTSTATUS nbt_name_dup(TALLOC_CTX *mem_ctx, struct nbt_name *name, struct nbt_name *newname) _PUBLIC_ NTSTATUS nbt_name_dup(TALLOC_CTX *mem_ctx, struct nbt_name *name, struct nbt_name *newname)
{ {
*newname = *name; *newname = *name;
newname->name = talloc_strdup(mem_ctx, newname->name); newname->name = talloc_strdup(mem_ctx, newname->name);
@ -364,33 +364,33 @@ NTSTATUS nbt_name_dup(TALLOC_CTX *mem_ctx, struct nbt_name *name, struct nbt_nam
return NT_STATUS_OK; return NT_STATUS_OK;
} }
/* /**
push a nbt name into a blob push a nbt name into a blob
*/ */
NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct nbt_name *name) _PUBLIC_ NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct nbt_name *name)
{ {
return ndr_push_struct_blob(blob, mem_ctx, name, return ndr_push_struct_blob(blob, mem_ctx, name,
(ndr_push_flags_fn_t)ndr_push_nbt_name); (ndr_push_flags_fn_t)ndr_push_nbt_name);
} }
/* /**
pull a nbt name from a blob pull a nbt name from a blob
*/ */
NTSTATUS nbt_name_from_blob(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, struct nbt_name *name) _PUBLIC_ NTSTATUS nbt_name_from_blob(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, struct nbt_name *name)
{ {
return ndr_pull_struct_blob(blob, mem_ctx, name, return ndr_pull_struct_blob(blob, mem_ctx, name,
(ndr_pull_flags_fn_t)ndr_pull_nbt_name); (ndr_pull_flags_fn_t)ndr_pull_nbt_name);
} }
/* /**
choose a name to use when calling a server in a NBT session request. choose a name to use when calling a server in a NBT session request.
we use heuristics to see if the name we have been given is a IP we use heuristics to see if the name we have been given is a IP
address, or a too-long name. If it is then use *SMBSERVER, or a address, or a too-long name. If it is then use *SMBSERVER, or a
truncated name truncated name
*/ */
void nbt_choose_called_name(TALLOC_CTX *mem_ctx, _PUBLIC_ void nbt_choose_called_name(TALLOC_CTX *mem_ctx,
struct nbt_name *n, const char *name, int type) struct nbt_name *n, const char *name, int type)
{ {
n->scope = NULL; n->scope = NULL;
@ -450,10 +450,10 @@ static const char *nbt_hex_encode(TALLOC_CTX *mem_ctx, const char *s)
} }
/* /**
form a string for a NBT name form a string for a NBT name
*/ */
char *nbt_name_string(TALLOC_CTX *mem_ctx, const struct nbt_name *name) _PUBLIC_ char *nbt_name_string(TALLOC_CTX *mem_ctx, const struct nbt_name *name)
{ {
TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx); TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
char *ret; char *ret;
@ -471,10 +471,10 @@ char *nbt_name_string(TALLOC_CTX *mem_ctx, const struct nbt_name *name)
return ret; return ret;
} }
/* /**
pull a nbt name, WINS Replication uses another on wire format for nbt name pull a nbt name, WINS Replication uses another on wire format for nbt name
*/ */
NTSTATUS ndr_pull_wrepl_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_name **_r) _PUBLIC_ NTSTATUS ndr_pull_wrepl_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_name **_r)
{ {
struct nbt_name *r; struct nbt_name *r;
uint8_t *namebuf; uint8_t *namebuf;
@ -532,10 +532,10 @@ NTSTATUS ndr_pull_wrepl_nbt_name(struct ndr_pull *ndr, int ndr_flags, struct nbt
return NT_STATUS_OK; return NT_STATUS_OK;
} }
/* /**
push a nbt name, WINS Replication uses another on wire format for nbt name push a nbt name, WINS Replication uses another on wire format for nbt name
*/ */
NTSTATUS ndr_push_wrepl_nbt_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_name *r) _PUBLIC_ NTSTATUS ndr_push_wrepl_nbt_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_name *r)
{ {
uint8_t *namebuf; uint8_t *namebuf;
uint32_t namebuf_len; uint32_t namebuf_len;
@ -587,7 +587,7 @@ NTSTATUS ndr_push_wrepl_nbt_name(struct ndr_push *ndr, int ndr_flags, const stru
return NT_STATUS_OK; return NT_STATUS_OK;
} }
void ndr_print_wrepl_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r) _PUBLIC_ void ndr_print_wrepl_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r)
{ {
char *s = nbt_name_string(ndr, r); char *s = nbt_name_string(ndr, r);
ndr_print_string(ndr, name, s); ndr_print_string(ndr, name, s);

View File

@ -46,7 +46,7 @@ const struct dcerpc_syntax_id ndr64_transfer_syntax = {
/* /*
work out the number of bytes needed to align on a n byte boundary work out the number of bytes needed to align on a n byte boundary
*/ */
size_t ndr_align_size(uint32_t offset, size_t n) _PUBLIC_ size_t ndr_align_size(uint32_t offset, size_t n)
{ {
if ((offset & (n-1)) == 0) return 0; if ((offset & (n-1)) == 0) return 0;
return n - (offset & (n-1)); return n - (offset & (n-1));
@ -55,7 +55,7 @@ size_t ndr_align_size(uint32_t offset, size_t n)
/* /*
initialise a ndr parse structure from a data blob initialise a ndr parse structure from a data blob
*/ */
struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx) _PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
{ {
struct ndr_pull *ndr; struct ndr_pull *ndr;
@ -72,7 +72,7 @@ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
/* /*
advance by 'size' bytes advance by 'size' bytes
*/ */
NTSTATUS ndr_pull_advance(struct ndr_pull *ndr, uint32_t size) _PUBLIC_ NTSTATUS ndr_pull_advance(struct ndr_pull *ndr, uint32_t size)
{ {
ndr->offset += size; ndr->offset += size;
if (ndr->offset > ndr->data_size) { if (ndr->offset > ndr->data_size) {
@ -98,14 +98,14 @@ static NTSTATUS ndr_pull_set_offset(struct ndr_pull *ndr, uint32_t ofs)
} }
/* save the offset/size of the current ndr state */ /* save the offset/size of the current ndr state */
void ndr_pull_save(struct ndr_pull *ndr, struct ndr_pull_save *save) _PUBLIC_ void ndr_pull_save(struct ndr_pull *ndr, struct ndr_pull_save *save)
{ {
save->offset = ndr->offset; save->offset = ndr->offset;
save->data_size = ndr->data_size; save->data_size = ndr->data_size;
} }
/* restore the size/offset of a ndr structure */ /* restore the size/offset of a ndr structure */
void ndr_pull_restore(struct ndr_pull *ndr, struct ndr_pull_save *save) _PUBLIC_ void ndr_pull_restore(struct ndr_pull *ndr, struct ndr_pull_save *save)
{ {
ndr->offset = save->offset; ndr->offset = save->offset;
ndr->data_size = save->data_size; ndr->data_size = save->data_size;
@ -113,7 +113,7 @@ void ndr_pull_restore(struct ndr_pull *ndr, struct ndr_pull_save *save)
/* create a ndr_push structure, ready for some marshalling */ /* create a ndr_push structure, ready for some marshalling */
struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx) _PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx)
{ {
struct ndr_push *ndr; struct ndr_push *ndr;
@ -134,20 +134,20 @@ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx)
/* create a ndr_push structure, ready for some marshalling */ /* create a ndr_push structure, ready for some marshalling */
struct ndr_push *ndr_push_init(void) _PUBLIC_ struct ndr_push *ndr_push_init(void)
{ {
return ndr_push_init_ctx(NULL); return ndr_push_init_ctx(NULL);
} }
/* free a ndr_push structure */ /* free a ndr_push structure */
void ndr_push_free(struct ndr_push *ndr) _PUBLIC_ void ndr_push_free(struct ndr_push *ndr)
{ {
talloc_free(ndr); talloc_free(ndr);
} }
/* return a DATA_BLOB structure for the current ndr_push marshalled data */ /* return a DATA_BLOB structure for the current ndr_push marshalled data */
DATA_BLOB ndr_push_blob(struct ndr_push *ndr) _PUBLIC_ DATA_BLOB ndr_push_blob(struct ndr_push *ndr)
{ {
DATA_BLOB blob; DATA_BLOB blob;
blob.data = ndr->data; blob.data = ndr->data;
@ -162,7 +162,7 @@ DATA_BLOB ndr_push_blob(struct ndr_push *ndr)
/* /*
expand the available space in the buffer to 'size' expand the available space in the buffer to 'size'
*/ */
NTSTATUS ndr_push_expand(struct ndr_push *ndr, uint32_t size) _PUBLIC_ NTSTATUS ndr_push_expand(struct ndr_push *ndr, uint32_t size)
{ {
if (ndr->alloc_size > size) { if (ndr->alloc_size > size) {
return NT_STATUS_OK; return NT_STATUS_OK;
@ -181,7 +181,7 @@ NTSTATUS ndr_push_expand(struct ndr_push *ndr, uint32_t size)
return NT_STATUS_OK; return NT_STATUS_OK;
} }
void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3) _PUBLIC_ void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)
{ {
va_list ap; va_list ap;
char *s = NULL; char *s = NULL;
@ -217,7 +217,7 @@ static void ndr_print_string_helper(struct ndr_print *ndr, const char *format, .
/* /*
a useful helper function for printing idl structures via DEBUG() a useful helper function for printing idl structures via DEBUG()
*/ */
void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr) _PUBLIC_ void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr)
{ {
struct ndr_print *ndr; struct ndr_print *ndr;
@ -233,7 +233,7 @@ void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr)
/* /*
a useful helper function for printing idl unions via DEBUG() a useful helper function for printing idl unions via DEBUG()
*/ */
void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_t level, void *ptr) _PUBLIC_ void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_t level, void *ptr)
{ {
struct ndr_print *ndr; struct ndr_print *ndr;
@ -250,7 +250,7 @@ void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_t level,
/* /*
a useful helper function for printing idl function calls via DEBUG() a useful helper function for printing idl function calls via DEBUG()
*/ */
void ndr_print_function_debug(ndr_print_function_t fn, const char *name, int flags, void *ptr) _PUBLIC_ void ndr_print_function_debug(ndr_print_function_t fn, const char *name, int flags, void *ptr)
{ {
struct ndr_print *ndr; struct ndr_print *ndr;
@ -267,7 +267,7 @@ void ndr_print_function_debug(ndr_print_function_t fn, const char *name, int fla
/* /*
a useful helper function for printing idl function calls to a string a useful helper function for printing idl function calls to a string
*/ */
char *ndr_print_function_string(TALLOC_CTX *mem_ctx, _PUBLIC_ char *ndr_print_function_string(TALLOC_CTX *mem_ctx,
ndr_print_function_t fn, const char *name, ndr_print_function_t fn, const char *name,
int flags, void *ptr) int flags, void *ptr)
{ {
@ -290,7 +290,7 @@ failed:
return ret; return ret;
} }
void ndr_set_flags(uint32_t *pflags, uint32_t new_flags) _PUBLIC_ void ndr_set_flags(uint32_t *pflags, uint32_t new_flags)
{ {
/* the big/little endian flags are inter-dependent */ /* the big/little endian flags are inter-dependent */
if (new_flags & LIBNDR_FLAG_LITTLE_ENDIAN) { if (new_flags & LIBNDR_FLAG_LITTLE_ENDIAN) {
@ -330,7 +330,7 @@ static NTSTATUS ndr_map_error(enum ndr_err_code err)
/* /*
return and possibly log an NDR error return and possibly log an NDR error
*/ */
NTSTATUS ndr_pull_error(struct ndr_pull *ndr, _PUBLIC_ NTSTATUS ndr_pull_error(struct ndr_pull *ndr,
enum ndr_err_code err, const char *format, ...) _PRINTF_ATTRIBUTE(3,4) enum ndr_err_code err, const char *format, ...) _PRINTF_ATTRIBUTE(3,4)
{ {
char *s=NULL; char *s=NULL;
@ -350,7 +350,7 @@ NTSTATUS ndr_pull_error(struct ndr_pull *ndr,
/* /*
return and possibly log an NDR error return and possibly log an NDR error
*/ */
NTSTATUS ndr_push_error(struct ndr_push *ndr, enum ndr_err_code err, const char *format, ...) _PRINTF_ATTRIBUTE(3,4) _PUBLIC_ NTSTATUS ndr_push_error(struct ndr_push *ndr, enum ndr_err_code err, const char *format, ...) _PRINTF_ATTRIBUTE(3,4)
{ {
char *s=NULL; char *s=NULL;
va_list ap; va_list ap;
@ -370,7 +370,7 @@ NTSTATUS ndr_push_error(struct ndr_push *ndr, enum ndr_err_code err, const char
handle subcontext buffers, which in midl land are user-marshalled, but handle subcontext buffers, which in midl land are user-marshalled, but
we use magic in pidl to make them easier to cope with we use magic in pidl to make them easier to cope with
*/ */
NTSTATUS ndr_pull_subcontext_start(struct ndr_pull *ndr, _PUBLIC_ NTSTATUS ndr_pull_subcontext_start(struct ndr_pull *ndr,
struct ndr_pull **_subndr, struct ndr_pull **_subndr,
size_t header_size, size_t header_size,
ssize_t size_is) ssize_t size_is)
@ -429,7 +429,7 @@ NTSTATUS ndr_pull_subcontext_start(struct ndr_pull *ndr,
return NT_STATUS_OK; return NT_STATUS_OK;
} }
NTSTATUS ndr_pull_subcontext_end(struct ndr_pull *ndr, _PUBLIC_ NTSTATUS ndr_pull_subcontext_end(struct ndr_pull *ndr,
struct ndr_pull *subndr, struct ndr_pull *subndr,
size_t header_size, size_t header_size,
ssize_t size_is) ssize_t size_is)
@ -446,7 +446,7 @@ NTSTATUS ndr_pull_subcontext_end(struct ndr_pull *ndr,
return NT_STATUS_OK; return NT_STATUS_OK;
} }
NTSTATUS ndr_push_subcontext_start(struct ndr_push *ndr, _PUBLIC_ NTSTATUS ndr_push_subcontext_start(struct ndr_push *ndr,
struct ndr_push **_subndr, struct ndr_push **_subndr,
size_t header_size, size_t header_size,
ssize_t size_is) ssize_t size_is)
@ -464,7 +464,7 @@ NTSTATUS ndr_push_subcontext_start(struct ndr_push *ndr,
/* /*
push a subcontext header push a subcontext header
*/ */
NTSTATUS ndr_push_subcontext_end(struct ndr_push *ndr, _PUBLIC_ NTSTATUS ndr_push_subcontext_end(struct ndr_push *ndr,
struct ndr_push *subndr, struct ndr_push *subndr,
size_t header_size, size_t header_size,
ssize_t size_is) ssize_t size_is)
@ -503,7 +503,7 @@ NTSTATUS ndr_push_subcontext_end(struct ndr_push *ndr,
/* /*
store a token in the ndr context, for later retrieval store a token in the ndr context, for later retrieval
*/ */
NTSTATUS ndr_token_store(TALLOC_CTX *mem_ctx, _PUBLIC_ NTSTATUS ndr_token_store(TALLOC_CTX *mem_ctx,
struct ndr_token_list **list, struct ndr_token_list **list,
const void *key, const void *key,
uint32_t value) uint32_t value)
@ -522,7 +522,7 @@ NTSTATUS ndr_token_store(TALLOC_CTX *mem_ctx,
/* /*
retrieve a token from a ndr context, using cmp_fn to match the tokens retrieve a token from a ndr context, using cmp_fn to match the tokens
*/ */
NTSTATUS ndr_token_retrieve_cmp_fn(struct ndr_token_list **list, const void *key, uint32_t *v, _PUBLIC_ NTSTATUS ndr_token_retrieve_cmp_fn(struct ndr_token_list **list, const void *key, uint32_t *v,
comparison_fn_t _cmp_fn, BOOL _remove_tok) comparison_fn_t _cmp_fn, BOOL _remove_tok)
{ {
struct ndr_token_list *tok; struct ndr_token_list *tok;
@ -543,7 +543,7 @@ found:
/* /*
retrieve a token from a ndr context retrieve a token from a ndr context
*/ */
NTSTATUS ndr_token_retrieve(struct ndr_token_list **list, const void *key, uint32_t *v) _PUBLIC_ NTSTATUS ndr_token_retrieve(struct ndr_token_list **list, const void *key, uint32_t *v)
{ {
return ndr_token_retrieve_cmp_fn(list, key, v, NULL, True); return ndr_token_retrieve_cmp_fn(list, key, v, NULL, True);
} }
@ -551,7 +551,7 @@ NTSTATUS ndr_token_retrieve(struct ndr_token_list **list, const void *key, uint3
/* /*
peek at but don't removed a token from a ndr context peek at but don't removed a token from a ndr context
*/ */
uint32_t ndr_token_peek(struct ndr_token_list **list, const void *key) _PUBLIC_ uint32_t ndr_token_peek(struct ndr_token_list **list, const void *key)
{ {
NTSTATUS status; NTSTATUS status;
uint32_t v; uint32_t v;
@ -563,7 +563,7 @@ uint32_t ndr_token_peek(struct ndr_token_list **list, const void *key)
/* /*
pull an array size field and add it to the array_size_list token list pull an array size field and add it to the array_size_list token list
*/ */
NTSTATUS ndr_pull_array_size(struct ndr_pull *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_pull_array_size(struct ndr_pull *ndr, const void *p)
{ {
uint32_t size; uint32_t size;
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &size)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &size));
@ -573,7 +573,7 @@ NTSTATUS ndr_pull_array_size(struct ndr_pull *ndr, const void *p)
/* /*
get the stored array size field get the stored array size field
*/ */
uint32_t ndr_get_array_size(struct ndr_pull *ndr, const void *p) _PUBLIC_ uint32_t ndr_get_array_size(struct ndr_pull *ndr, const void *p)
{ {
return ndr_token_peek(&ndr->array_size_list, p); return ndr_token_peek(&ndr->array_size_list, p);
} }
@ -581,7 +581,7 @@ uint32_t ndr_get_array_size(struct ndr_pull *ndr, const void *p)
/* /*
check the stored array size field check the stored array size field
*/ */
NTSTATUS ndr_check_array_size(struct ndr_pull *ndr, void *p, uint32_t size) _PUBLIC_ NTSTATUS ndr_check_array_size(struct ndr_pull *ndr, void *p, uint32_t size)
{ {
uint32_t stored; uint32_t stored;
stored = ndr_token_peek(&ndr->array_size_list, p); stored = ndr_token_peek(&ndr->array_size_list, p);
@ -596,7 +596,7 @@ NTSTATUS ndr_check_array_size(struct ndr_pull *ndr, void *p, uint32_t size)
/* /*
pull an array length field and add it to the array_length_list token list pull an array length field and add it to the array_length_list token list
*/ */
NTSTATUS ndr_pull_array_length(struct ndr_pull *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_pull_array_length(struct ndr_pull *ndr, const void *p)
{ {
uint32_t length, offset; uint32_t length, offset;
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &offset)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &offset));
@ -611,7 +611,7 @@ NTSTATUS ndr_pull_array_length(struct ndr_pull *ndr, const void *p)
/* /*
get the stored array length field get the stored array length field
*/ */
uint32_t ndr_get_array_length(struct ndr_pull *ndr, const void *p) _PUBLIC_ uint32_t ndr_get_array_length(struct ndr_pull *ndr, const void *p)
{ {
return ndr_token_peek(&ndr->array_length_list, p); return ndr_token_peek(&ndr->array_length_list, p);
} }
@ -619,7 +619,7 @@ uint32_t ndr_get_array_length(struct ndr_pull *ndr, const void *p)
/* /*
check the stored array length field check the stored array length field
*/ */
NTSTATUS ndr_check_array_length(struct ndr_pull *ndr, void *p, uint32_t length) _PUBLIC_ NTSTATUS ndr_check_array_length(struct ndr_pull *ndr, void *p, uint32_t length)
{ {
uint32_t stored; uint32_t stored;
stored = ndr_token_peek(&ndr->array_length_list, p); stored = ndr_token_peek(&ndr->array_length_list, p);
@ -634,17 +634,17 @@ NTSTATUS ndr_check_array_length(struct ndr_pull *ndr, void *p, uint32_t length)
/* /*
store a switch value store a switch value
*/ */
NTSTATUS ndr_push_set_switch_value(struct ndr_push *ndr, const void *p, uint32_t val) _PUBLIC_ NTSTATUS ndr_push_set_switch_value(struct ndr_push *ndr, const void *p, uint32_t val)
{ {
return ndr_token_store(ndr, &ndr->switch_list, p, val); return ndr_token_store(ndr, &ndr->switch_list, p, val);
} }
NTSTATUS ndr_pull_set_switch_value(struct ndr_pull *ndr, const void *p, uint32_t val) _PUBLIC_ NTSTATUS ndr_pull_set_switch_value(struct ndr_pull *ndr, const void *p, uint32_t val)
{ {
return ndr_token_store(ndr, &ndr->switch_list, p, val); return ndr_token_store(ndr, &ndr->switch_list, p, val);
} }
NTSTATUS ndr_print_set_switch_value(struct ndr_print *ndr, const void *p, uint32_t val) _PUBLIC_ NTSTATUS ndr_print_set_switch_value(struct ndr_print *ndr, const void *p, uint32_t val)
{ {
return ndr_token_store(ndr, &ndr->switch_list, p, val); return ndr_token_store(ndr, &ndr->switch_list, p, val);
} }
@ -652,17 +652,17 @@ NTSTATUS ndr_print_set_switch_value(struct ndr_print *ndr, const void *p, uint32
/* /*
retrieve a switch value retrieve a switch value
*/ */
uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p) _PUBLIC_ uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p)
{ {
return ndr_token_peek(&ndr->switch_list, p); return ndr_token_peek(&ndr->switch_list, p);
} }
uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p) _PUBLIC_ uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p)
{ {
return ndr_token_peek(&ndr->switch_list, p); return ndr_token_peek(&ndr->switch_list, p);
} }
uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p) _PUBLIC_ uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p)
{ {
return ndr_token_peek(&ndr->switch_list, p); return ndr_token_peek(&ndr->switch_list, p);
} }
@ -670,7 +670,7 @@ uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p)
/* /*
pull a struct from a blob using NDR pull a struct from a blob using NDR
*/ */
NTSTATUS ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, _PUBLIC_ NTSTATUS ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
ndr_pull_flags_fn_t fn) ndr_pull_flags_fn_t fn)
{ {
struct ndr_pull *ndr; struct ndr_pull *ndr;
@ -684,7 +684,7 @@ NTSTATUS ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *
/* /*
pull a struct from a blob using NDR - failing if all bytes are not consumed pull a struct from a blob using NDR - failing if all bytes are not consumed
*/ */
NTSTATUS ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, _PUBLIC_ NTSTATUS ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
ndr_pull_flags_fn_t fn) ndr_pull_flags_fn_t fn)
{ {
struct ndr_pull *ndr; struct ndr_pull *ndr;
@ -705,7 +705,7 @@ NTSTATUS ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, vo
/* /*
pull a union from a blob using NDR, given the union discriminator pull a union from a blob using NDR, given the union discriminator
*/ */
NTSTATUS ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, _PUBLIC_ NTSTATUS ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
uint32_t level, ndr_pull_flags_fn_t fn) uint32_t level, ndr_pull_flags_fn_t fn)
{ {
struct ndr_pull *ndr; struct ndr_pull *ndr;
@ -727,7 +727,7 @@ NTSTATUS ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p
/* /*
push a struct to a blob using NDR push a struct to a blob using NDR
*/ */
NTSTATUS ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, const void *p, _PUBLIC_ NTSTATUS ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, const void *p,
ndr_push_flags_fn_t fn) ndr_push_flags_fn_t fn)
{ {
NTSTATUS status; NTSTATUS status;
@ -749,7 +749,7 @@ NTSTATUS ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, const void *
/* /*
push a union to a blob using NDR push a union to a blob using NDR
*/ */
NTSTATUS ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, _PUBLIC_ NTSTATUS ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
uint32_t level, ndr_push_flags_fn_t fn) uint32_t level, ndr_push_flags_fn_t fn)
{ {
NTSTATUS status; NTSTATUS status;
@ -772,7 +772,7 @@ NTSTATUS ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
/* /*
generic ndr_size_*() handler for structures generic ndr_size_*() handler for structures
*/ */
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, int flags, ndr_push_flags_fn_t push)
{ {
struct ndr_push *ndr; struct ndr_push *ndr;
NTSTATUS status; NTSTATUS status;
@ -796,7 +796,7 @@ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push)
/* /*
generic ndr_size_*() handler for unions generic ndr_size_*() handler for unions
*/ */
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, int flags, uint32_t level, ndr_push_flags_fn_t push)
{ {
struct ndr_push *ndr; struct ndr_push *ndr;
NTSTATUS status; NTSTATUS status;
@ -821,7 +821,7 @@ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_f
/* /*
get the current base for relative pointers for the push get the current base for relative pointers for the push
*/ */
uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr) _PUBLIC_ uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr)
{ {
return ndr->relative_base_offset; return ndr->relative_base_offset;
} }
@ -829,7 +829,7 @@ uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr)
/* /*
restore the old base for relative pointers for the push restore the old base for relative pointers for the push
*/ */
void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset) _PUBLIC_ void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset)
{ {
ndr->relative_base_offset = offset; ndr->relative_base_offset = offset;
} }
@ -838,7 +838,7 @@ void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset
setup the current base for relative pointers for the push setup the current base for relative pointers for the push
called in the NDR_SCALAR stage called in the NDR_SCALAR stage
*/ */
NTSTATUS ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *p, uint32_t offset) _PUBLIC_ NTSTATUS ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *p, uint32_t offset)
{ {
ndr->relative_base_offset = offset; ndr->relative_base_offset = offset;
return ndr_token_store(ndr, &ndr->relative_base_list, p, offset); return ndr_token_store(ndr, &ndr->relative_base_list, p, offset);
@ -848,7 +848,7 @@ NTSTATUS ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *
setup the current base for relative pointers for the push setup the current base for relative pointers for the push
called in the NDR_BUFFERS stage called in the NDR_BUFFERS stage
*/ */
NTSTATUS ndr_push_setup_relative_base_offset2(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_setup_relative_base_offset2(struct ndr_push *ndr, const void *p)
{ {
return ndr_token_retrieve(&ndr->relative_base_list, p, &ndr->relative_base_offset); return ndr_token_retrieve(&ndr->relative_base_list, p, &ndr->relative_base_offset);
} }
@ -857,7 +857,7 @@ NTSTATUS ndr_push_setup_relative_base_offset2(struct ndr_push *ndr, const void *
push a relative object - stage1 push a relative object - stage1
this is called during SCALARS processing this is called during SCALARS processing
*/ */
NTSTATUS ndr_push_relative_ptr1(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_relative_ptr1(struct ndr_push *ndr, const void *p)
{ {
if (p == NULL) { if (p == NULL) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
@ -872,7 +872,7 @@ NTSTATUS ndr_push_relative_ptr1(struct ndr_push *ndr, const void *p)
push a relative object - stage2 push a relative object - stage2
this is called during buffers processing this is called during buffers processing
*/ */
NTSTATUS ndr_push_relative_ptr2(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_relative_ptr2(struct ndr_push *ndr, const void *p)
{ {
struct ndr_push_save save; struct ndr_push_save save;
uint32_t ptr_offset = 0xFFFFFFFF; uint32_t ptr_offset = 0xFFFFFFFF;
@ -900,7 +900,7 @@ NTSTATUS ndr_push_relative_ptr2(struct ndr_push *ndr, const void *p)
/* /*
get the current base for relative pointers for the pull get the current base for relative pointers for the pull
*/ */
uint32_t ndr_pull_get_relative_base_offset(struct ndr_pull *ndr) _PUBLIC_ uint32_t ndr_pull_get_relative_base_offset(struct ndr_pull *ndr)
{ {
return ndr->relative_base_offset; return ndr->relative_base_offset;
} }
@ -908,7 +908,7 @@ uint32_t ndr_pull_get_relative_base_offset(struct ndr_pull *ndr)
/* /*
restore the old base for relative pointers for the pull restore the old base for relative pointers for the pull
*/ */
void ndr_pull_restore_relative_base_offset(struct ndr_pull *ndr, uint32_t offset) _PUBLIC_ void ndr_pull_restore_relative_base_offset(struct ndr_pull *ndr, uint32_t offset)
{ {
ndr->relative_base_offset = offset; ndr->relative_base_offset = offset;
} }
@ -917,7 +917,7 @@ void ndr_pull_restore_relative_base_offset(struct ndr_pull *ndr, uint32_t offset
setup the current base for relative pointers for the pull setup the current base for relative pointers for the pull
called in the NDR_SCALAR stage called in the NDR_SCALAR stage
*/ */
NTSTATUS ndr_pull_setup_relative_base_offset1(struct ndr_pull *ndr, const void *p, uint32_t offset) _PUBLIC_ NTSTATUS ndr_pull_setup_relative_base_offset1(struct ndr_pull *ndr, const void *p, uint32_t offset)
{ {
ndr->relative_base_offset = offset; ndr->relative_base_offset = offset;
return ndr_token_store(ndr, &ndr->relative_base_list, p, offset); return ndr_token_store(ndr, &ndr->relative_base_list, p, offset);
@ -927,7 +927,7 @@ NTSTATUS ndr_pull_setup_relative_base_offset1(struct ndr_pull *ndr, const void *
setup the current base for relative pointers for the pull setup the current base for relative pointers for the pull
called in the NDR_BUFFERS stage called in the NDR_BUFFERS stage
*/ */
NTSTATUS ndr_pull_setup_relative_base_offset2(struct ndr_pull *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_pull_setup_relative_base_offset2(struct ndr_pull *ndr, const void *p)
{ {
return ndr_token_retrieve(&ndr->relative_base_list, p, &ndr->relative_base_offset); return ndr_token_retrieve(&ndr->relative_base_list, p, &ndr->relative_base_offset);
} }
@ -936,7 +936,7 @@ NTSTATUS ndr_pull_setup_relative_base_offset2(struct ndr_pull *ndr, const void *
pull a relative object - stage1 pull a relative object - stage1
called during SCALARS processing called during SCALARS processing
*/ */
NTSTATUS ndr_pull_relative_ptr1(struct ndr_pull *ndr, const void *p, uint32_t rel_offset) _PUBLIC_ NTSTATUS ndr_pull_relative_ptr1(struct ndr_pull *ndr, const void *p, uint32_t rel_offset)
{ {
rel_offset += ndr->relative_base_offset; rel_offset += ndr->relative_base_offset;
if (rel_offset > ndr->data_size) { if (rel_offset > ndr->data_size) {
@ -951,7 +951,7 @@ NTSTATUS ndr_pull_relative_ptr1(struct ndr_pull *ndr, const void *p, uint32_t re
pull a relative object - stage2 pull a relative object - stage2
called during BUFFERS processing called during BUFFERS processing
*/ */
NTSTATUS ndr_pull_relative_ptr2(struct ndr_pull *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_pull_relative_ptr2(struct ndr_pull *ndr, const void *p)
{ {
uint32_t rel_offset; uint32_t rel_offset;
NDR_CHECK(ndr_token_retrieve(&ndr->relative_list, p, &rel_offset)); NDR_CHECK(ndr_token_retrieve(&ndr->relative_list, p, &rel_offset));

View File

@ -36,7 +36,7 @@
these could also indicate that real structure elements have been these could also indicate that real structure elements have been
mistaken for padding in the IDL mistaken for padding in the IDL
*/ */
void ndr_check_padding(struct ndr_pull *ndr, size_t n) _PUBLIC_ void ndr_check_padding(struct ndr_pull *ndr, size_t n)
{ {
size_t ofs2 = (ndr->offset + (n-1)) & ~(n-1); size_t ofs2 = (ndr->offset + (n-1)) & ~(n-1);
int i; int i;
@ -58,7 +58,7 @@ void ndr_check_padding(struct ndr_pull *ndr, size_t n)
/* /*
parse a int8_t parse a int8_t
*/ */
NTSTATUS ndr_pull_int8(struct ndr_pull *ndr, int ndr_flags, int8_t *v) _PUBLIC_ NTSTATUS ndr_pull_int8(struct ndr_pull *ndr, int ndr_flags, int8_t *v)
{ {
NDR_PULL_NEED_BYTES(ndr, 1); NDR_PULL_NEED_BYTES(ndr, 1);
*v = (int8_t)CVAL(ndr->data, ndr->offset); *v = (int8_t)CVAL(ndr->data, ndr->offset);
@ -69,7 +69,7 @@ NTSTATUS ndr_pull_int8(struct ndr_pull *ndr, int ndr_flags, int8_t *v)
/* /*
parse a uint8_t parse a uint8_t
*/ */
NTSTATUS ndr_pull_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *v) _PUBLIC_ NTSTATUS ndr_pull_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *v)
{ {
NDR_PULL_NEED_BYTES(ndr, 1); NDR_PULL_NEED_BYTES(ndr, 1);
*v = CVAL(ndr->data, ndr->offset); *v = CVAL(ndr->data, ndr->offset);
@ -80,7 +80,7 @@ NTSTATUS ndr_pull_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *v)
/* /*
parse a int16_t parse a int16_t
*/ */
NTSTATUS ndr_pull_int16(struct ndr_pull *ndr, int ndr_flags, int16_t *v) _PUBLIC_ NTSTATUS ndr_pull_int16(struct ndr_pull *ndr, int ndr_flags, int16_t *v)
{ {
NDR_PULL_ALIGN(ndr, 2); NDR_PULL_ALIGN(ndr, 2);
NDR_PULL_NEED_BYTES(ndr, 2); NDR_PULL_NEED_BYTES(ndr, 2);
@ -92,7 +92,7 @@ NTSTATUS ndr_pull_int16(struct ndr_pull *ndr, int ndr_flags, int16_t *v)
/* /*
parse a uint16_t parse a uint16_t
*/ */
NTSTATUS ndr_pull_uint16(struct ndr_pull *ndr, int ndr_flags, uint16_t *v) _PUBLIC_ NTSTATUS ndr_pull_uint16(struct ndr_pull *ndr, int ndr_flags, uint16_t *v)
{ {
NDR_PULL_ALIGN(ndr, 2); NDR_PULL_ALIGN(ndr, 2);
NDR_PULL_NEED_BYTES(ndr, 2); NDR_PULL_NEED_BYTES(ndr, 2);
@ -104,7 +104,7 @@ NTSTATUS ndr_pull_uint16(struct ndr_pull *ndr, int ndr_flags, uint16_t *v)
/* /*
parse a int32_t parse a int32_t
*/ */
NTSTATUS ndr_pull_int32(struct ndr_pull *ndr, int ndr_flags, int32_t *v) _PUBLIC_ NTSTATUS ndr_pull_int32(struct ndr_pull *ndr, int ndr_flags, int32_t *v)
{ {
NDR_PULL_ALIGN(ndr, 4); NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 4); NDR_PULL_NEED_BYTES(ndr, 4);
@ -116,7 +116,7 @@ NTSTATUS ndr_pull_int32(struct ndr_pull *ndr, int ndr_flags, int32_t *v)
/* /*
parse a uint32_t parse a uint32_t
*/ */
NTSTATUS ndr_pull_uint32(struct ndr_pull *ndr, int ndr_flags, uint32_t *v) _PUBLIC_ NTSTATUS ndr_pull_uint32(struct ndr_pull *ndr, int ndr_flags, uint32_t *v)
{ {
NDR_PULL_ALIGN(ndr, 4); NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 4); NDR_PULL_NEED_BYTES(ndr, 4);
@ -128,7 +128,7 @@ NTSTATUS ndr_pull_uint32(struct ndr_pull *ndr, int ndr_flags, uint32_t *v)
/* /*
parse a pointer referent identifier parse a pointer referent identifier
*/ */
NTSTATUS ndr_pull_generic_ptr(struct ndr_pull *ndr, uint32_t *v) _PUBLIC_ NTSTATUS ndr_pull_generic_ptr(struct ndr_pull *ndr, uint32_t *v)
{ {
NTSTATUS status; NTSTATUS status;
status = ndr_pull_uint32(ndr, NDR_SCALARS, v); status = ndr_pull_uint32(ndr, NDR_SCALARS, v);
@ -141,7 +141,7 @@ NTSTATUS ndr_pull_generic_ptr(struct ndr_pull *ndr, uint32_t *v)
/* /*
parse a ref pointer referent identifier parse a ref pointer referent identifier
*/ */
NTSTATUS ndr_pull_ref_ptr(struct ndr_pull *ndr, uint32_t *v) _PUBLIC_ NTSTATUS ndr_pull_ref_ptr(struct ndr_pull *ndr, uint32_t *v)
{ {
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, v)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, v));
/* ref pointers always point to data */ /* ref pointers always point to data */
@ -152,7 +152,7 @@ NTSTATUS ndr_pull_ref_ptr(struct ndr_pull *ndr, uint32_t *v)
/* /*
parse a udlong parse a udlong
*/ */
NTSTATUS ndr_pull_udlong(struct ndr_pull *ndr, int ndr_flags, uint64_t *v) _PUBLIC_ NTSTATUS ndr_pull_udlong(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
{ {
NDR_PULL_ALIGN(ndr, 4); NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 8); NDR_PULL_NEED_BYTES(ndr, 8);
@ -165,7 +165,7 @@ NTSTATUS ndr_pull_udlong(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
/* /*
parse a udlongr parse a udlongr
*/ */
NTSTATUS ndr_pull_udlongr(struct ndr_pull *ndr, int ndr_flags, uint64_t *v) _PUBLIC_ NTSTATUS ndr_pull_udlongr(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
{ {
NDR_PULL_ALIGN(ndr, 4); NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 8); NDR_PULL_NEED_BYTES(ndr, 8);
@ -178,7 +178,7 @@ NTSTATUS ndr_pull_udlongr(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
/* /*
parse a dlong parse a dlong
*/ */
NTSTATUS ndr_pull_dlong(struct ndr_pull *ndr, int ndr_flags, int64_t *v) _PUBLIC_ NTSTATUS ndr_pull_dlong(struct ndr_pull *ndr, int ndr_flags, int64_t *v)
{ {
return ndr_pull_udlong(ndr, ndr_flags, (uint64_t *)v); return ndr_pull_udlong(ndr, ndr_flags, (uint64_t *)v);
} }
@ -186,7 +186,7 @@ NTSTATUS ndr_pull_dlong(struct ndr_pull *ndr, int ndr_flags, int64_t *v)
/* /*
parse a hyper parse a hyper
*/ */
NTSTATUS ndr_pull_hyper(struct ndr_pull *ndr, int ndr_flags, uint64_t *v) _PUBLIC_ NTSTATUS ndr_pull_hyper(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
{ {
NDR_PULL_ALIGN(ndr, 8); NDR_PULL_ALIGN(ndr, 8);
return ndr_pull_udlong(ndr, ndr_flags, v); return ndr_pull_udlong(ndr, ndr_flags, v);
@ -195,7 +195,7 @@ NTSTATUS ndr_pull_hyper(struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
/* /*
parse a pointer parse a pointer
*/ */
NTSTATUS ndr_pull_pointer(struct ndr_pull *ndr, int ndr_flags, void* *v) _PUBLIC_ NTSTATUS ndr_pull_pointer(struct ndr_pull *ndr, int ndr_flags, void* *v)
{ {
intptr_t h; intptr_t h;
NDR_PULL_ALIGN(ndr, sizeof(h)); NDR_PULL_ALIGN(ndr, sizeof(h));
@ -209,7 +209,7 @@ NTSTATUS ndr_pull_pointer(struct ndr_pull *ndr, int ndr_flags, void* *v)
/* /*
pull a NTSTATUS pull a NTSTATUS
*/ */
NTSTATUS ndr_pull_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, NTSTATUS *status) _PUBLIC_ NTSTATUS ndr_pull_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, NTSTATUS *status)
{ {
uint32_t v; uint32_t v;
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
@ -220,12 +220,12 @@ NTSTATUS ndr_pull_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, NTSTATUS *status
/* /*
push a NTSTATUS push a NTSTATUS
*/ */
NTSTATUS ndr_push_NTSTATUS(struct ndr_push *ndr, int ndr_flags, NTSTATUS status) _PUBLIC_ NTSTATUS ndr_push_NTSTATUS(struct ndr_push *ndr, int ndr_flags, NTSTATUS status)
{ {
return ndr_push_uint32(ndr, ndr_flags, NT_STATUS_V(status)); return ndr_push_uint32(ndr, ndr_flags, NT_STATUS_V(status));
} }
void ndr_print_NTSTATUS(struct ndr_print *ndr, const char *name, NTSTATUS r) _PUBLIC_ void ndr_print_NTSTATUS(struct ndr_print *ndr, const char *name, NTSTATUS r)
{ {
ndr->print(ndr, "%-25s: %s", name, nt_errstr(r)); ndr->print(ndr, "%-25s: %s", name, nt_errstr(r));
} }
@ -233,7 +233,7 @@ void ndr_print_NTSTATUS(struct ndr_print *ndr, const char *name, NTSTATUS r)
/* /*
pull a WERROR pull a WERROR
*/ */
NTSTATUS ndr_pull_WERROR(struct ndr_pull *ndr, int ndr_flags, WERROR *status) _PUBLIC_ NTSTATUS ndr_pull_WERROR(struct ndr_pull *ndr, int ndr_flags, WERROR *status)
{ {
uint32_t v; uint32_t v;
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
@ -244,12 +244,12 @@ NTSTATUS ndr_pull_WERROR(struct ndr_pull *ndr, int ndr_flags, WERROR *status)
/* /*
push a WERROR push a WERROR
*/ */
NTSTATUS ndr_push_WERROR(struct ndr_push *ndr, int ndr_flags, WERROR status) _PUBLIC_ NTSTATUS ndr_push_WERROR(struct ndr_push *ndr, int ndr_flags, WERROR status)
{ {
return ndr_push_uint32(ndr, NDR_SCALARS, W_ERROR_V(status)); return ndr_push_uint32(ndr, NDR_SCALARS, W_ERROR_V(status));
} }
void ndr_print_WERROR(struct ndr_print *ndr, const char *name, WERROR r) _PUBLIC_ void ndr_print_WERROR(struct ndr_print *ndr, const char *name, WERROR r)
{ {
ndr->print(ndr, "%-25s: %s", name, win_errstr(r)); ndr->print(ndr, "%-25s: %s", name, win_errstr(r));
} }
@ -257,7 +257,7 @@ void ndr_print_WERROR(struct ndr_print *ndr, const char *name, WERROR r)
/* /*
parse a set of bytes parse a set of bytes
*/ */
NTSTATUS ndr_pull_bytes(struct ndr_pull *ndr, uint8_t *data, uint32_t n) _PUBLIC_ NTSTATUS ndr_pull_bytes(struct ndr_pull *ndr, uint8_t *data, uint32_t n)
{ {
NDR_PULL_NEED_BYTES(ndr, n); NDR_PULL_NEED_BYTES(ndr, n);
memcpy(data, ndr->data + ndr->offset, n); memcpy(data, ndr->data + ndr->offset, n);
@ -268,7 +268,7 @@ NTSTATUS ndr_pull_bytes(struct ndr_pull *ndr, uint8_t *data, uint32_t n)
/* /*
pull an array of uint8 pull an array of uint8
*/ */
NTSTATUS ndr_pull_array_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *data, uint32_t n) _PUBLIC_ NTSTATUS ndr_pull_array_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *data, uint32_t n)
{ {
if (!(ndr_flags & NDR_SCALARS)) { if (!(ndr_flags & NDR_SCALARS)) {
return NT_STATUS_OK; return NT_STATUS_OK;
@ -279,7 +279,7 @@ NTSTATUS ndr_pull_array_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *data
/* /*
push a int8_t push a int8_t
*/ */
NTSTATUS ndr_push_int8(struct ndr_push *ndr, int ndr_flags, int8_t v) _PUBLIC_ NTSTATUS ndr_push_int8(struct ndr_push *ndr, int ndr_flags, int8_t v)
{ {
NDR_PUSH_NEED_BYTES(ndr, 1); NDR_PUSH_NEED_BYTES(ndr, 1);
SCVAL(ndr->data, ndr->offset, (uint8_t)v); SCVAL(ndr->data, ndr->offset, (uint8_t)v);
@ -290,7 +290,7 @@ NTSTATUS ndr_push_int8(struct ndr_push *ndr, int ndr_flags, int8_t v)
/* /*
push a uint8_t push a uint8_t
*/ */
NTSTATUS ndr_push_uint8(struct ndr_push *ndr, int ndr_flags, uint8_t v) _PUBLIC_ NTSTATUS ndr_push_uint8(struct ndr_push *ndr, int ndr_flags, uint8_t v)
{ {
NDR_PUSH_NEED_BYTES(ndr, 1); NDR_PUSH_NEED_BYTES(ndr, 1);
SCVAL(ndr->data, ndr->offset, v); SCVAL(ndr->data, ndr->offset, v);
@ -301,7 +301,7 @@ NTSTATUS ndr_push_uint8(struct ndr_push *ndr, int ndr_flags, uint8_t v)
/* /*
push a int16_t push a int16_t
*/ */
NTSTATUS ndr_push_int16(struct ndr_push *ndr, int ndr_flags, int16_t v) _PUBLIC_ NTSTATUS ndr_push_int16(struct ndr_push *ndr, int ndr_flags, int16_t v)
{ {
NDR_PUSH_ALIGN(ndr, 2); NDR_PUSH_ALIGN(ndr, 2);
NDR_PUSH_NEED_BYTES(ndr, 2); NDR_PUSH_NEED_BYTES(ndr, 2);
@ -313,7 +313,7 @@ NTSTATUS ndr_push_int16(struct ndr_push *ndr, int ndr_flags, int16_t v)
/* /*
push a uint16_t push a uint16_t
*/ */
NTSTATUS ndr_push_uint16(struct ndr_push *ndr, int ndr_flags, uint16_t v) _PUBLIC_ NTSTATUS ndr_push_uint16(struct ndr_push *ndr, int ndr_flags, uint16_t v)
{ {
NDR_PUSH_ALIGN(ndr, 2); NDR_PUSH_ALIGN(ndr, 2);
NDR_PUSH_NEED_BYTES(ndr, 2); NDR_PUSH_NEED_BYTES(ndr, 2);
@ -325,7 +325,7 @@ NTSTATUS ndr_push_uint16(struct ndr_push *ndr, int ndr_flags, uint16_t v)
/* /*
push a int32_t push a int32_t
*/ */
NTSTATUS ndr_push_int32(struct ndr_push *ndr, int ndr_flags, int32_t v) _PUBLIC_ NTSTATUS ndr_push_int32(struct ndr_push *ndr, int ndr_flags, int32_t v)
{ {
NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 4); NDR_PUSH_NEED_BYTES(ndr, 4);
@ -337,7 +337,7 @@ NTSTATUS ndr_push_int32(struct ndr_push *ndr, int ndr_flags, int32_t v)
/* /*
push a uint32_t push a uint32_t
*/ */
NTSTATUS ndr_push_uint32(struct ndr_push *ndr, int ndr_flags, uint32_t v) _PUBLIC_ NTSTATUS ndr_push_uint32(struct ndr_push *ndr, int ndr_flags, uint32_t v)
{ {
NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 4); NDR_PUSH_NEED_BYTES(ndr, 4);
@ -349,7 +349,7 @@ NTSTATUS ndr_push_uint32(struct ndr_push *ndr, int ndr_flags, uint32_t v)
/* /*
push a udlong push a udlong
*/ */
NTSTATUS ndr_push_udlong(struct ndr_push *ndr, int ndr_flags, uint64_t v) _PUBLIC_ NTSTATUS ndr_push_udlong(struct ndr_push *ndr, int ndr_flags, uint64_t v)
{ {
NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 8); NDR_PUSH_NEED_BYTES(ndr, 8);
@ -362,7 +362,7 @@ NTSTATUS ndr_push_udlong(struct ndr_push *ndr, int ndr_flags, uint64_t v)
/* /*
push a udlongr push a udlongr
*/ */
NTSTATUS ndr_push_udlongr(struct ndr_push *ndr, int ndr_flags, uint64_t v) _PUBLIC_ NTSTATUS ndr_push_udlongr(struct ndr_push *ndr, int ndr_flags, uint64_t v)
{ {
NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 8); NDR_PUSH_NEED_BYTES(ndr, 8);
@ -375,7 +375,7 @@ NTSTATUS ndr_push_udlongr(struct ndr_push *ndr, int ndr_flags, uint64_t v)
/* /*
push a dlong push a dlong
*/ */
NTSTATUS ndr_push_dlong(struct ndr_push *ndr, int ndr_flags, int64_t v) _PUBLIC_ NTSTATUS ndr_push_dlong(struct ndr_push *ndr, int ndr_flags, int64_t v)
{ {
return ndr_push_udlong(ndr, NDR_SCALARS, (uint64_t)v); return ndr_push_udlong(ndr, NDR_SCALARS, (uint64_t)v);
} }
@ -383,7 +383,7 @@ NTSTATUS ndr_push_dlong(struct ndr_push *ndr, int ndr_flags, int64_t v)
/* /*
push a hyper push a hyper
*/ */
NTSTATUS ndr_push_hyper(struct ndr_push *ndr, int ndr_flags, uint64_t v) _PUBLIC_ NTSTATUS ndr_push_hyper(struct ndr_push *ndr, int ndr_flags, uint64_t v)
{ {
NDR_PUSH_ALIGN(ndr, 8); NDR_PUSH_ALIGN(ndr, 8);
return ndr_push_udlong(ndr, NDR_SCALARS, v); return ndr_push_udlong(ndr, NDR_SCALARS, v);
@ -392,7 +392,7 @@ NTSTATUS ndr_push_hyper(struct ndr_push *ndr, int ndr_flags, uint64_t v)
/* /*
push a pointer push a pointer
*/ */
NTSTATUS ndr_push_pointer(struct ndr_push *ndr, int ndr_flags, void* v) _PUBLIC_ NTSTATUS ndr_push_pointer(struct ndr_push *ndr, int ndr_flags, void* v)
{ {
intptr_t h = (intptr_t)v; intptr_t h = (intptr_t)v;
NDR_PUSH_ALIGN(ndr, sizeof(h)); NDR_PUSH_ALIGN(ndr, sizeof(h));
@ -402,13 +402,13 @@ NTSTATUS ndr_push_pointer(struct ndr_push *ndr, int ndr_flags, void* v)
return NT_STATUS_OK; return NT_STATUS_OK;
} }
NTSTATUS ndr_push_align(struct ndr_push *ndr, size_t size) _PUBLIC_ NTSTATUS ndr_push_align(struct ndr_push *ndr, size_t size)
{ {
NDR_PUSH_ALIGN(ndr, size); NDR_PUSH_ALIGN(ndr, size);
return NT_STATUS_OK; return NT_STATUS_OK;
} }
NTSTATUS ndr_pull_align(struct ndr_pull *ndr, size_t size) _PUBLIC_ NTSTATUS ndr_pull_align(struct ndr_pull *ndr, size_t size)
{ {
NDR_PULL_ALIGN(ndr, size); NDR_PULL_ALIGN(ndr, size);
return NT_STATUS_OK; return NT_STATUS_OK;
@ -417,7 +417,7 @@ NTSTATUS ndr_pull_align(struct ndr_pull *ndr, size_t size)
/* /*
push some bytes push some bytes
*/ */
NTSTATUS ndr_push_bytes(struct ndr_push *ndr, const uint8_t *data, uint32_t n) _PUBLIC_ NTSTATUS ndr_push_bytes(struct ndr_push *ndr, const uint8_t *data, uint32_t n)
{ {
NDR_PUSH_NEED_BYTES(ndr, n); NDR_PUSH_NEED_BYTES(ndr, n);
memcpy(ndr->data + ndr->offset, data, n); memcpy(ndr->data + ndr->offset, data, n);
@ -428,7 +428,7 @@ NTSTATUS ndr_push_bytes(struct ndr_push *ndr, const uint8_t *data, uint32_t n)
/* /*
push some zero bytes push some zero bytes
*/ */
NTSTATUS ndr_push_zero(struct ndr_push *ndr, uint32_t n) _PUBLIC_ NTSTATUS ndr_push_zero(struct ndr_push *ndr, uint32_t n)
{ {
NDR_PUSH_NEED_BYTES(ndr, n); NDR_PUSH_NEED_BYTES(ndr, n);
memset(ndr->data + ndr->offset, 0, n); memset(ndr->data + ndr->offset, 0, n);
@ -439,7 +439,7 @@ NTSTATUS ndr_push_zero(struct ndr_push *ndr, uint32_t n)
/* /*
push an array of uint8 push an array of uint8
*/ */
NTSTATUS ndr_push_array_uint8(struct ndr_push *ndr, int ndr_flags, const uint8_t *data, uint32_t n) _PUBLIC_ NTSTATUS ndr_push_array_uint8(struct ndr_push *ndr, int ndr_flags, const uint8_t *data, uint32_t n)
{ {
if (!(ndr_flags & NDR_SCALARS)) { if (!(ndr_flags & NDR_SCALARS)) {
return NT_STATUS_OK; return NT_STATUS_OK;
@ -450,7 +450,7 @@ NTSTATUS ndr_push_array_uint8(struct ndr_push *ndr, int ndr_flags, const uint8_t
/* /*
save the current position save the current position
*/ */
void ndr_push_save(struct ndr_push *ndr, struct ndr_push_save *save) _PUBLIC_ void ndr_push_save(struct ndr_push *ndr, struct ndr_push_save *save)
{ {
save->offset = ndr->offset; save->offset = ndr->offset;
} }
@ -458,7 +458,7 @@ void ndr_push_save(struct ndr_push *ndr, struct ndr_push_save *save)
/* /*
restore the position restore the position
*/ */
void ndr_push_restore(struct ndr_push *ndr, struct ndr_push_save *save) _PUBLIC_ void ndr_push_restore(struct ndr_push *ndr, struct ndr_push_save *save)
{ {
ndr->offset = save->offset; ndr->offset = save->offset;
} }
@ -466,7 +466,7 @@ void ndr_push_restore(struct ndr_push *ndr, struct ndr_push_save *save)
/* /*
push a unique non-zero value if a pointer is non-NULL, otherwise 0 push a unique non-zero value if a pointer is non-NULL, otherwise 0
*/ */
NTSTATUS ndr_push_unique_ptr(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_unique_ptr(struct ndr_push *ndr, const void *p)
{ {
uint32_t ptr = 0; uint32_t ptr = 0;
if (p) { if (p) {
@ -480,7 +480,7 @@ NTSTATUS ndr_push_unique_ptr(struct ndr_push *ndr, const void *p)
/* /*
push a 'simple' full non-zero value if a pointer is non-NULL, otherwise 0 push a 'simple' full non-zero value if a pointer is non-NULL, otherwise 0
*/ */
NTSTATUS ndr_push_sptr_ptr(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_sptr_ptr(struct ndr_push *ndr, const void *p)
{ {
uint32_t ptr = 0; uint32_t ptr = 0;
if (p) { if (p) {
@ -493,7 +493,7 @@ NTSTATUS ndr_push_sptr_ptr(struct ndr_push *ndr, const void *p)
/* /*
push always a 0, if a pointer is NULL it's a fatal error push always a 0, if a pointer is NULL it's a fatal error
*/ */
NTSTATUS ndr_push_ref_ptr(struct ndr_push *ndr, const void *p) _PUBLIC_ NTSTATUS ndr_push_ref_ptr(struct ndr_push *ndr, const void *p)
{ {
if (p == NULL) { if (p == NULL) {
return NT_STATUS_INVALID_PARAMETER_MIX; return NT_STATUS_INVALID_PARAMETER_MIX;
@ -505,7 +505,7 @@ NTSTATUS ndr_push_ref_ptr(struct ndr_push *ndr, const void *p)
/* /*
push a NTTIME push a NTTIME
*/ */
NTSTATUS ndr_push_NTTIME(struct ndr_push *ndr, int ndr_flags, NTTIME t) _PUBLIC_ NTSTATUS ndr_push_NTTIME(struct ndr_push *ndr, int ndr_flags, NTTIME t)
{ {
NDR_CHECK(ndr_push_udlong(ndr, ndr_flags, t)); NDR_CHECK(ndr_push_udlong(ndr, ndr_flags, t));
return NT_STATUS_OK; return NT_STATUS_OK;
@ -514,7 +514,7 @@ NTSTATUS ndr_push_NTTIME(struct ndr_push *ndr, int ndr_flags, NTTIME t)
/* /*
pull a NTTIME pull a NTTIME
*/ */
NTSTATUS ndr_pull_NTTIME(struct ndr_pull *ndr, int ndr_flags, NTTIME *t) _PUBLIC_ NTSTATUS ndr_pull_NTTIME(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
{ {
NDR_CHECK(ndr_pull_udlong(ndr, ndr_flags, t)); NDR_CHECK(ndr_pull_udlong(ndr, ndr_flags, t));
return NT_STATUS_OK; return NT_STATUS_OK;
@ -523,7 +523,7 @@ NTSTATUS ndr_pull_NTTIME(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
/* /*
push a NTTIME push a NTTIME
*/ */
NTSTATUS ndr_push_NTTIME_1sec(struct ndr_push *ndr, int ndr_flags, NTTIME t) _PUBLIC_ NTSTATUS ndr_push_NTTIME_1sec(struct ndr_push *ndr, int ndr_flags, NTTIME t)
{ {
t /= 10000000; t /= 10000000;
NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t)); NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t));
@ -533,7 +533,7 @@ NTSTATUS ndr_push_NTTIME_1sec(struct ndr_push *ndr, int ndr_flags, NTTIME t)
/* /*
pull a NTTIME_1sec pull a NTTIME_1sec
*/ */
NTSTATUS ndr_pull_NTTIME_1sec(struct ndr_pull *ndr, int ndr_flags, NTTIME *t) _PUBLIC_ NTSTATUS ndr_pull_NTTIME_1sec(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
{ {
NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t)); NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t));
(*t) *= 10000000; (*t) *= 10000000;
@ -543,7 +543,7 @@ NTSTATUS ndr_pull_NTTIME_1sec(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
/* /*
pull a NTTIME_hyper pull a NTTIME_hyper
*/ */
NTSTATUS ndr_pull_NTTIME_hyper(struct ndr_pull *ndr, int ndr_flags, NTTIME *t) _PUBLIC_ NTSTATUS ndr_pull_NTTIME_hyper(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
{ {
NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t)); NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t));
return NT_STATUS_OK; return NT_STATUS_OK;
@ -552,7 +552,7 @@ NTSTATUS ndr_pull_NTTIME_hyper(struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
/* /*
push a NTTIME_hyper push a NTTIME_hyper
*/ */
NTSTATUS ndr_push_NTTIME_hyper(struct ndr_push *ndr, int ndr_flags, NTTIME t) _PUBLIC_ NTSTATUS ndr_push_NTTIME_hyper(struct ndr_push *ndr, int ndr_flags, NTTIME t)
{ {
NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t)); NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t));
return NT_STATUS_OK; return NT_STATUS_OK;
@ -561,7 +561,7 @@ NTSTATUS ndr_push_NTTIME_hyper(struct ndr_push *ndr, int ndr_flags, NTTIME t)
/* /*
push a time_t push a time_t
*/ */
NTSTATUS ndr_push_time_t(struct ndr_push *ndr, int ndr_flags, time_t t) _PUBLIC_ NTSTATUS ndr_push_time_t(struct ndr_push *ndr, int ndr_flags, time_t t)
{ {
return ndr_push_uint32(ndr, ndr_flags, t); return ndr_push_uint32(ndr, ndr_flags, t);
} }
@ -569,7 +569,7 @@ NTSTATUS ndr_push_time_t(struct ndr_push *ndr, int ndr_flags, time_t t)
/* /*
pull a time_t pull a time_t
*/ */
NTSTATUS ndr_pull_time_t(struct ndr_pull *ndr, int ndr_flags, time_t *t) _PUBLIC_ NTSTATUS ndr_pull_time_t(struct ndr_pull *ndr, int ndr_flags, time_t *t)
{ {
uint32_t tt; uint32_t tt;
NDR_CHECK(ndr_pull_uint32(ndr, ndr_flags, &tt)); NDR_CHECK(ndr_pull_uint32(ndr, ndr_flags, &tt));
@ -581,7 +581,7 @@ NTSTATUS ndr_pull_time_t(struct ndr_pull *ndr, int ndr_flags, time_t *t)
/* /*
pull a ipv4address pull a ipv4address
*/ */
NTSTATUS ndr_pull_ipv4address(struct ndr_pull *ndr, int ndr_flags, const char **address) _PUBLIC_ NTSTATUS ndr_pull_ipv4address(struct ndr_pull *ndr, int ndr_flags, const char **address)
{ {
struct ipv4_addr in; struct ipv4_addr in;
NDR_CHECK(ndr_pull_uint32(ndr, ndr_flags, &in.addr)); NDR_CHECK(ndr_pull_uint32(ndr, ndr_flags, &in.addr));
@ -594,7 +594,7 @@ NTSTATUS ndr_pull_ipv4address(struct ndr_pull *ndr, int ndr_flags, const char **
/* /*
push a ipv4address push a ipv4address
*/ */
NTSTATUS ndr_push_ipv4address(struct ndr_push *ndr, int ndr_flags, const char *address) _PUBLIC_ NTSTATUS ndr_push_ipv4address(struct ndr_push *ndr, int ndr_flags, const char *address)
{ {
uint32_t addr; uint32_t addr;
if (!is_ipaddress(address)) { if (!is_ipaddress(address)) {
@ -610,19 +610,19 @@ NTSTATUS ndr_push_ipv4address(struct ndr_push *ndr, int ndr_flags, const char *a
/* /*
print a ipv4address print a ipv4address
*/ */
void ndr_print_ipv4address(struct ndr_print *ndr, const char *name, _PUBLIC_ void ndr_print_ipv4address(struct ndr_print *ndr, const char *name,
const char *address) const char *address)
{ {
ndr->print(ndr, "%-25s: %s", name, address); ndr->print(ndr, "%-25s: %s", name, address);
} }
void ndr_print_struct(struct ndr_print *ndr, const char *name, const char *type) _PUBLIC_ void ndr_print_struct(struct ndr_print *ndr, const char *name, const char *type)
{ {
ndr->print(ndr, "%s: struct %s", name, type); ndr->print(ndr, "%s: struct %s", name, type);
} }
void ndr_print_enum(struct ndr_print *ndr, const char *name, const char *type, _PUBLIC_ void ndr_print_enum(struct ndr_print *ndr, const char *name, const char *type,
const char *val, uint_t value) const char *val, uint_t value)
{ {
if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) { if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) {
@ -632,7 +632,7 @@ void ndr_print_enum(struct ndr_print *ndr, const char *name, const char *type,
} }
} }
void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_name, uint_t flag, uint_t value) _PUBLIC_ void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_name, uint_t flag, uint_t value)
{ {
/* this is an attempt to support multi-bit bitmap masks */ /* this is an attempt to support multi-bit bitmap masks */
value &= flag; value &= flag;
@ -648,62 +648,62 @@ void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_
} }
} }
void ndr_print_int8(struct ndr_print *ndr, const char *name, int8_t v) _PUBLIC_ void ndr_print_int8(struct ndr_print *ndr, const char *name, int8_t v)
{ {
ndr->print(ndr, "%-25s: %d", name, v); ndr->print(ndr, "%-25s: %d", name, v);
} }
void ndr_print_uint8(struct ndr_print *ndr, const char *name, uint8_t v) _PUBLIC_ void ndr_print_uint8(struct ndr_print *ndr, const char *name, uint8_t v)
{ {
ndr->print(ndr, "%-25s: 0x%02x (%u)", name, v, v); ndr->print(ndr, "%-25s: 0x%02x (%u)", name, v, v);
} }
void ndr_print_int16(struct ndr_print *ndr, const char *name, int16_t v) _PUBLIC_ void ndr_print_int16(struct ndr_print *ndr, const char *name, int16_t v)
{ {
ndr->print(ndr, "%-25s: %d", name, v); ndr->print(ndr, "%-25s: %d", name, v);
} }
void ndr_print_uint16(struct ndr_print *ndr, const char *name, uint16_t v) _PUBLIC_ void ndr_print_uint16(struct ndr_print *ndr, const char *name, uint16_t v)
{ {
ndr->print(ndr, "%-25s: 0x%04x (%u)", name, v, v); ndr->print(ndr, "%-25s: 0x%04x (%u)", name, v, v);
} }
void ndr_print_int32(struct ndr_print *ndr, const char *name, int32_t v) _PUBLIC_ void ndr_print_int32(struct ndr_print *ndr, const char *name, int32_t v)
{ {
ndr->print(ndr, "%-25s: %d", name, v); ndr->print(ndr, "%-25s: %d", name, v);
} }
void ndr_print_uint32(struct ndr_print *ndr, const char *name, uint32_t v) _PUBLIC_ void ndr_print_uint32(struct ndr_print *ndr, const char *name, uint32_t v)
{ {
ndr->print(ndr, "%-25s: 0x%08x (%u)", name, v, v); ndr->print(ndr, "%-25s: 0x%08x (%u)", name, v, v);
} }
void ndr_print_udlong(struct ndr_print *ndr, const char *name, uint64_t v) _PUBLIC_ void ndr_print_udlong(struct ndr_print *ndr, const char *name, uint64_t v)
{ {
ndr->print(ndr, "%-25s: 0x%016llx (%llu)", name, v, v); ndr->print(ndr, "%-25s: 0x%016llx (%llu)", name, v, v);
} }
void ndr_print_udlongr(struct ndr_print *ndr, const char *name, uint64_t v) _PUBLIC_ void ndr_print_udlongr(struct ndr_print *ndr, const char *name, uint64_t v)
{ {
ndr_print_udlong(ndr, name, v); ndr_print_udlong(ndr, name, v);
} }
void ndr_print_dlong(struct ndr_print *ndr, const char *name, int64_t v) _PUBLIC_ void ndr_print_dlong(struct ndr_print *ndr, const char *name, int64_t v)
{ {
ndr->print(ndr, "%-25s: 0x%016llx (%lld)", name, v, v); ndr->print(ndr, "%-25s: 0x%016llx (%lld)", name, v, v);
} }
void ndr_print_hyper(struct ndr_print *ndr, const char *name, uint64_t v) _PUBLIC_ void ndr_print_hyper(struct ndr_print *ndr, const char *name, uint64_t v)
{ {
ndr_print_dlong(ndr, name, v); ndr_print_dlong(ndr, name, v);
} }
void ndr_print_pointer(struct ndr_print *ndr, const char *name, void *v) _PUBLIC_ void ndr_print_pointer(struct ndr_print *ndr, const char *name, void *v)
{ {
ndr->print(ndr, "%-25s: %p", name, v); ndr->print(ndr, "%-25s: %p", name, v);
} }
void ndr_print_ptr(struct ndr_print *ndr, const char *name, const void *p) _PUBLIC_ void ndr_print_ptr(struct ndr_print *ndr, const char *name, const void *p)
{ {
if (p) { if (p) {
ndr->print(ndr, "%-25s: *", name); ndr->print(ndr, "%-25s: *", name);
@ -712,12 +712,12 @@ void ndr_print_ptr(struct ndr_print *ndr, const char *name, const void *p)
} }
} }
void ndr_print_NTTIME(struct ndr_print *ndr, const char *name, NTTIME t) _PUBLIC_ void ndr_print_NTTIME(struct ndr_print *ndr, const char *name, NTTIME t)
{ {
ndr->print(ndr, "%-25s: %s", name, nt_time_string(ndr, t)); ndr->print(ndr, "%-25s: %s", name, nt_time_string(ndr, t));
} }
void ndr_print_NTTIME_1sec(struct ndr_print *ndr, const char *name, NTTIME t) _PUBLIC_ void ndr_print_NTTIME_1sec(struct ndr_print *ndr, const char *name, NTTIME t)
{ {
/* this is a standard NTTIME here /* this is a standard NTTIME here
* as it's already converted in the pull/push code * as it's already converted in the pull/push code
@ -725,12 +725,12 @@ void ndr_print_NTTIME_1sec(struct ndr_print *ndr, const char *name, NTTIME t)
ndr_print_NTTIME(ndr, name, t); ndr_print_NTTIME(ndr, name, t);
} }
void ndr_print_NTTIME_hyper(struct ndr_print *ndr, const char *name, NTTIME t) _PUBLIC_ void ndr_print_NTTIME_hyper(struct ndr_print *ndr, const char *name, NTTIME t)
{ {
ndr_print_NTTIME(ndr, name, t); ndr_print_NTTIME(ndr, name, t);
} }
void ndr_print_time_t(struct ndr_print *ndr, const char *name, time_t t) _PUBLIC_ void ndr_print_time_t(struct ndr_print *ndr, const char *name, time_t t)
{ {
if (t == (time_t)-1 || t == 0) { if (t == (time_t)-1 || t == 0) {
ndr->print(ndr, "%-25s: (time_t)%d", name, (int)t); ndr->print(ndr, "%-25s: (time_t)%d", name, (int)t);
@ -739,7 +739,7 @@ void ndr_print_time_t(struct ndr_print *ndr, const char *name, time_t t)
} }
} }
void ndr_print_union(struct ndr_print *ndr, const char *name, int level, const char *type) _PUBLIC_ void ndr_print_union(struct ndr_print *ndr, const char *name, int level, const char *type)
{ {
if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) { if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) {
ndr->print(ndr, "%-25s: union %s(case 0x%X)", name, type, level); ndr->print(ndr, "%-25s: union %s(case 0x%X)", name, type, level);
@ -748,12 +748,12 @@ void ndr_print_union(struct ndr_print *ndr, const char *name, int level, const c
} }
} }
void ndr_print_bad_level(struct ndr_print *ndr, const char *name, uint16_t level) _PUBLIC_ void ndr_print_bad_level(struct ndr_print *ndr, const char *name, uint16_t level)
{ {
ndr->print(ndr, "UNKNOWN LEVEL %u", level); ndr->print(ndr, "UNKNOWN LEVEL %u", level);
} }
void ndr_print_array_uint8(struct ndr_print *ndr, const char *name, _PUBLIC_ void ndr_print_array_uint8(struct ndr_print *ndr, const char *name,
const uint8_t *data, uint32_t count) const uint8_t *data, uint32_t count)
{ {
int i; int i;
@ -781,7 +781,7 @@ void ndr_print_array_uint8(struct ndr_print *ndr, const char *name,
ndr->depth--; ndr->depth--;
} }
void ndr_print_DATA_BLOB(struct ndr_print *ndr, const char *name, DATA_BLOB r) _PUBLIC_ void ndr_print_DATA_BLOB(struct ndr_print *ndr, const char *name, DATA_BLOB r)
{ {
ndr->print(ndr, "%-25s: DATA_BLOB length=%u", name, r.length); ndr->print(ndr, "%-25s: DATA_BLOB length=%u", name, r.length);
if (r.length) { if (r.length) {
@ -793,7 +793,7 @@ void ndr_print_DATA_BLOB(struct ndr_print *ndr, const char *name, DATA_BLOB r)
/* /*
push a DATA_BLOB onto the wire. push a DATA_BLOB onto the wire.
*/ */
NTSTATUS ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob) _PUBLIC_ NTSTATUS ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob)
{ {
if (ndr->flags & LIBNDR_ALIGN_FLAGS) { if (ndr->flags & LIBNDR_ALIGN_FLAGS) {
if (ndr->flags & LIBNDR_FLAG_ALIGN2) { if (ndr->flags & LIBNDR_FLAG_ALIGN2) {
@ -815,7 +815,7 @@ NTSTATUS ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob)
/* /*
pull a DATA_BLOB from the wire. pull a DATA_BLOB from the wire.
*/ */
NTSTATUS ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flags, DATA_BLOB *blob) _PUBLIC_ NTSTATUS ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flags, DATA_BLOB *blob)
{ {
uint32_t length; uint32_t length;
@ -841,7 +841,7 @@ NTSTATUS ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flags, DATA_BLOB *blob
return NT_STATUS_OK; return NT_STATUS_OK;
} }
uint32_t ndr_size_DATA_BLOB(int ret, const DATA_BLOB *data, int flags) _PUBLIC_ uint32_t ndr_size_DATA_BLOB(int ret, const DATA_BLOB *data, int flags)
{ {
return ret + data->length; return ret + data->length;
} }