diff options
Diffstat (limited to 'source4/lib/util')
-rw-r--r-- | source4/lib/util/config.mk | 8 | ||||
-rw-r--r-- | source4/lib/util/data_blob.h | 4 | ||||
-rw-r--r-- | source4/lib/util/dprintf.c | 6 | ||||
-rw-r--r-- | source4/lib/util/genrand.c | 8 | ||||
-rw-r--r-- | source4/lib/util/tests/genrand.c | 4 | ||||
-rw-r--r-- | source4/lib/util/util.h | 10 | ||||
-rw-r--r-- | source4/lib/util/util_file.c | 4 | ||||
-rw-r--r-- | source4/lib/util/util_ldb.c | 4 | ||||
-rw-r--r-- | source4/lib/util/util_ldb.h | 26 | ||||
-rw-r--r-- | source4/lib/util/wrap_xattr.h | 12 |
10 files changed, 69 insertions, 17 deletions
diff --git a/source4/lib/util/config.mk b/source4/lib/util/config.mk index 22e6617f7c..0bf0692193 100644 --- a/source4/lib/util/config.mk +++ b/source4/lib/util/config.mk @@ -18,7 +18,8 @@ OBJ_FILES = xfile.o \ ms_fnmatch.o \ mutex.o \ idtree.o \ - become_daemon.o + become_daemon.o \ + params.o PUBLIC_DEPENDENCIES = \ LIBTALLOC LIBCRYPTO \ SOCKET_WRAPPER LIBREPLACE_NETWORK \ @@ -32,13 +33,14 @@ PUBLIC_HEADERS += $(addprefix lib/util/, util.h \ mutex.h \ safe_string.h \ time.h \ + util_ldb.h \ xfile.h) [SUBSYSTEM::ASN1_UTIL] PRIVATE_PROTO_HEADER = asn1_proto.h OBJ_FILES = asn1.o -PUBLIC_HEADERS += lib/util/asn1.h +# PUBLIC_HEADERS += lib/util/asn1.h [SUBSYSTEM::UNIX_PRIVS] PRIVATE_PROTO_HEADER = unix_privs.h @@ -47,7 +49,6 @@ OBJ_FILES = unix_privs.o ################################################ # Start SUBSYSTEM WRAP_XATTR [SUBSYSTEM::WRAP_XATTR] -PRIVATE_PROTO_HEADER = wrap_xattr.h OBJ_FILES = \ wrap_xattr.o PUBLIC_DEPENDENCIES = XATTR @@ -62,7 +63,6 @@ OBJ_FILES = \ PUBLIC_DEPENDENCIES = LIBTDB [SUBSYSTEM::UTIL_LDB] -PRIVATE_PROTO_HEADER = util_ldb.h OBJ_FILES = \ util_ldb.o PUBLIC_DEPENDENCIES = LIBLDB diff --git a/source4/lib/util/data_blob.h b/source4/lib/util/data_blob.h index 1442438dd7..e9dca67772 100644 --- a/source4/lib/util/data_blob.h +++ b/source4/lib/util/data_blob.h @@ -16,6 +16,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* This is a public header file that is installed as part of Samba. + * If you remove any functions or change their signature, update + * the so version number. */ + #ifndef _SAMBA_DATABLOB_H_ #define _SAMBA_DATABLOB_H_ diff --git a/source4/lib/util/dprintf.c b/source4/lib/util/dprintf.c index 308d81b105..e4f02758eb 100644 --- a/source4/lib/util/dprintf.c +++ b/source4/lib/util/dprintf.c @@ -42,7 +42,7 @@ void d_set_iconv(smb_iconv_t cd) display_cd = cd; } -_PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) _PRINTF_ATTRIBUTE(2,0) +_PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) { char *p, *p2; int ret, clen; @@ -85,7 +85,7 @@ _PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) _PRINTF_ATTRIBU } -_PUBLIC_ int d_fprintf(FILE *f, const char *format, ...) _PRINTF_ATTRIBUTE(2,3) +_PUBLIC_ int d_fprintf(FILE *f, const char *format, ...) { int ret; va_list ap; @@ -97,7 +97,7 @@ _PUBLIC_ int d_fprintf(FILE *f, const char *format, ...) _PRINTF_ATTRIBUTE(2,3) return ret; } -_PUBLIC_ int d_printf(const char *format, ...) _PRINTF_ATTRIBUTE(1,2) +_PUBLIC_ int d_printf(const char *format, ...) { int ret; va_list ap; diff --git a/source4/lib/util/genrand.c b/source4/lib/util/genrand.c index 5751db23d6..7df4ec4e20 100644 --- a/source4/lib/util/genrand.c +++ b/source4/lib/util/genrand.c @@ -37,15 +37,17 @@ static unsigned int bytes_since_reseed = 0; static int urand_fd = -1; -static void (*reseed_callback)(int *newseed); +static void (*reseed_callback)(void *userdata, int *newseed); +static void *reseed_callback_userdata = NULL; /** Copy any user given reseed data. **/ -_PUBLIC_ void set_rand_reseed_callback(void (*fn)(int *)) +_PUBLIC_ void set_rand_reseed_callback(void (*fn)(void *, int *), void *userdata) { reseed_callback = fn; + reseed_callback_userdata = userdata; set_need_random_reseed(); } @@ -61,7 +63,7 @@ _PUBLIC_ void set_need_random_reseed(void) static void get_rand_reseed_data(int *reseed_data) { if (reseed_callback) { - reseed_callback(reseed_data); + reseed_callback(reseed_callback_userdata, reseed_data); } else { *reseed_data = 0; } diff --git a/source4/lib/util/tests/genrand.c b/source4/lib/util/tests/genrand.c index 205a66352f..5fe229c089 100644 --- a/source4/lib/util/tests/genrand.c +++ b/source4/lib/util/tests/genrand.c @@ -22,14 +22,14 @@ #include "includes.h" #include "torture/torture.h" -static void dummy_reseed(int *d) +static void dummy_reseed(void *userdata, int *d) { *d = 42; } static bool test_reseed_callback(struct torture_context *tctx) { - set_rand_reseed_callback(dummy_reseed); + set_rand_reseed_callback(dummy_reseed, NULL); return true; } diff --git a/source4/lib/util/util.h b/source4/lib/util/util.h index 550b60c625..60c8437634 100644 --- a/source4/lib/util/util.h +++ b/source4/lib/util/util.h @@ -218,7 +218,7 @@ _PUBLIC_ struct in_addr sys_inet_makeaddr(int net, int host); /** Copy any user given reseed data. **/ -_PUBLIC_ void set_rand_reseed_callback(void (*fn)(int *)); +_PUBLIC_ void set_rand_reseed_callback(void (*fn)(void *, int *), void *); /** * Tell the random number generator it needs to reseed. @@ -795,4 +795,12 @@ _PUBLIC_ int idr_remove(struct idr_context *idp, int id); **/ _PUBLIC_ void become_daemon(bool fork); +/** + * Load a ini-style file. + */ +bool pm_process( const char *fileName, + bool (*sfunc)(const char *, void *), + bool (*pfunc)(const char *, const char *, void *), + void *userdata); + #endif /* _SAMBA_UTIL_H_ */ diff --git a/source4/lib/util/util_file.c b/source4/lib/util/util_file.c index 836e188ac1..c3e22196c0 100644 --- a/source4/lib/util/util_file.c +++ b/source4/lib/util/util_file.c @@ -356,7 +356,7 @@ _PUBLIC_ bool file_save(const char *fname, const void *packet, size_t length) return true; } -_PUBLIC_ int vfdprintf(int fd, const char *format, va_list ap) _PRINTF_ATTRIBUTE(2,0) +_PUBLIC_ int vfdprintf(int fd, const char *format, va_list ap) { char *p; int len, ret; @@ -371,7 +371,7 @@ _PUBLIC_ int vfdprintf(int fd, const char *format, va_list ap) _PRINTF_ATTRIBUTE return ret; } -_PUBLIC_ int fdprintf(int fd, const char *format, ...) _PRINTF_ATTRIBUTE(2,3) +_PUBLIC_ int fdprintf(int fd, const char *format, ...) { va_list ap; int ret; diff --git a/source4/lib/util/util_ldb.c b/source4/lib/util/util_ldb.c index f1b42effd8..38f53c2c66 100644 --- a/source4/lib/util/util_ldb.c +++ b/source4/lib/util/util_ldb.c @@ -33,7 +33,7 @@ int gendb_search_v(struct ldb_context *ldb, struct ldb_message ***msgs, const char * const *attrs, const char *format, - va_list ap) _PRINTF_ATTRIBUTE(6,0) + va_list ap) { enum ldb_scope scope = LDB_SCOPE_SUBTREE; struct ldb_result *res; @@ -85,7 +85,7 @@ int gendb_search(struct ldb_context *ldb, struct ldb_dn *basedn, struct ldb_message ***res, const char * const *attrs, - const char *format, ...) _PRINTF_ATTRIBUTE(6,7) + const char *format, ...) { va_list ap; int count; diff --git a/source4/lib/util/util_ldb.h b/source4/lib/util/util_ldb.h new file mode 100644 index 0000000000..864ce7e8c6 --- /dev/null +++ b/source4/lib/util/util_ldb.h @@ -0,0 +1,26 @@ +#ifndef __LIB_UTIL_UTIL_LDB_H__ +#define __LIB_UTIL_UTIL_LDB_H__ + +int gendb_search_v(struct ldb_context *ldb, + TALLOC_CTX *mem_ctx, + struct ldb_dn *basedn, + struct ldb_message ***msgs, + const char * const *attrs, + const char *format, + va_list ap) _PRINTF_ATTRIBUTE(6,0); +int gendb_search(struct ldb_context *ldb, + TALLOC_CTX *mem_ctx, + struct ldb_dn *basedn, + struct ldb_message ***res, + const char * const *attrs, + const char *format, ...) _PRINTF_ATTRIBUTE(6,7); +int gendb_search_dn(struct ldb_context *ldb, + TALLOC_CTX *mem_ctx, + struct ldb_dn *dn, + struct ldb_message ***res, + const char * const *attrs); +int gendb_add_ldif(struct ldb_context *ldb, const char *ldif_string); +char *wrap_casefold(void *context, void *mem_ctx, const char *s); + +#endif /* __LIB_UTIL_UTIL_LDB_H__ */ + diff --git a/source4/lib/util/wrap_xattr.h b/source4/lib/util/wrap_xattr.h new file mode 100644 index 0000000000..64b28d250c --- /dev/null +++ b/source4/lib/util/wrap_xattr.h @@ -0,0 +1,12 @@ +#ifndef __LIB_UTIL_WRAP_XATTR_H__ +#define __LIB_UTIL_WRAP_XATTR_H__ + +ssize_t wrap_fgetxattr(int fd, const char *name, void *value, size_t size); +ssize_t wrap_getxattr(const char *path, const char *name, void *value, size_t size); +int wrap_fsetxattr(int fd, const char *name, void *value, size_t size, int flags); +int wrap_setxattr(const char *path, const char *name, void *value, size_t size, int flags); +int wrap_fremovexattr(int fd, const char *name); +int wrap_removexattr(const char *path, const char *name); + +#endif /* __LIB_UTIL_WRAP_XATTR_H__ */ + |