projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gzip: bbunzip integration fixes
[oweals/busybox.git]
/
include
/
libbb.h
diff --git
a/include/libbb.h
b/include/libbb.h
index bb4a687419c1212012ab73649f7e03101281d248..759eb8d15602cdf9a76a146b6a8c931c3b1e75f7 100644
(file)
--- a/
include/libbb.h
+++ b/
include/libbb.h
@@
-41,6
+41,7
@@
#if ENABLE_SELINUX
#include <selinux/selinux.h>
#if ENABLE_SELINUX
#include <selinux/selinux.h>
+#include <selinux/context.h>
#endif
#if ENABLE_LOCALE_SUPPORT
#endif
#if ENABLE_LOCALE_SUPPORT
@@
-258,8
+259,8
@@
extern int ndelay_off(int fd);
extern DIR *xopendir(const char *path);
extern DIR *warn_opendir(const char *path);
extern DIR *xopendir(const char *path);
extern DIR *warn_opendir(const char *path);
-char *x
getcwd
(char *cwd);
-char *x
readlink
(const char *path);
+char *x
realloc_getcwd_or_warn
(char *cwd);
+char *x
malloc_readlink_or_warn
(const char *path);
char *xmalloc_realpath(const char *path);
extern void xstat(const char *filename, struct stat *buf);
extern pid_t spawn(char **argv);
char *xmalloc_realpath(const char *path);
extern void xstat(const char *filename, struct stat *buf);
extern pid_t spawn(char **argv);
@@
-271,6
+272,7
@@
extern void xdaemon(int nochdir, int noclose);
/* More clever/thorough xdaemon */
extern void bb_sanitize_stdio_maybe_daemonize(int daemonize);
extern void bb_sanitize_stdio(void);
/* More clever/thorough xdaemon */
extern void bb_sanitize_stdio_maybe_daemonize(int daemonize);
extern void bb_sanitize_stdio(void);
+/* NB: be careful: dont open syslog/network sockets before bb_daemonize */
extern void bb_daemonize(void);
extern void xchdir(const char *path);
extern void xsetenv(const char *key, const char *value);
extern void bb_daemonize(void);
extern void xchdir(const char *path);
extern void xsetenv(const char *key, const char *value);
@@
-321,6
+323,7
@@
int xconnect_stream(const len_and_sockaddr *lsa);
len_and_sockaddr* host2sockaddr(const char *host, int port);
/* Version which dies on error */
len_and_sockaddr* xhost2sockaddr(const char *host, int port);
len_and_sockaddr* host2sockaddr(const char *host, int port);
/* Version which dies on error */
len_and_sockaddr* xhost2sockaddr(const char *host, int port);
+len_and_sockaddr* xdotted2sockaddr(const char *host, int port);
#if ENABLE_FEATURE_IPV6
/* Same, useful if you want to force family (e.g. IPv6) */
len_and_sockaddr* host_and_af2sockaddr(const char *host, int port, sa_family_t af);
#if ENABLE_FEATURE_IPV6
/* Same, useful if you want to force family (e.g. IPv6) */
len_and_sockaddr* host_and_af2sockaddr(const char *host, int port, sa_family_t af);
@@
-441,7
+444,10
@@
struct bb_uidgid_t {
uid_t uid;
gid_t gid;
};
uid_t uid;
gid_t gid;
};
+/* always sets uid and gid */
int get_uidgid(struct bb_uidgid_t*, const char*, int numeric_ok);
int get_uidgid(struct bb_uidgid_t*, const char*, int numeric_ok);
+/* chown-like handling of "user[:[group]" */
+void parse_chown_usergroup_or_die(struct bb_uidgid_t *u, char *user_group);
/* what is this? */
/*extern char *bb_getug(char *buffer, char *idname, long id, int bufsize, char prefix);*/
char *bb_getpwuid(char *name, long uid, int bufsize);
/* what is this? */
/*extern char *bb_getug(char *buffer, char *idname, long id, int bufsize, char prefix);*/
char *bb_getpwuid(char *name, long uid, int bufsize);
@@
-470,8
+476,9
@@
typedef struct llist_s {
extern void llist_add_to(llist_t **old_head, void *data);
extern void llist_add_to_end(llist_t **list_head, void *data);
extern void *llist_pop(llist_t **elm);
extern void llist_add_to(llist_t **old_head, void *data);
extern void llist_add_to_end(llist_t **list_head, void *data);
extern void *llist_pop(llist_t **elm);
+extern void llist_unlink(llist_t **head, llist_t *elm);
extern void llist_free(llist_t *elm, void (*freeit)(void *data));
extern void llist_free(llist_t *elm, void (*freeit)(void *data));
-extern llist_t*
rev_llist
(llist_t *list);
+extern llist_t*
llist_rev
(llist_t *list);
enum {
LOGMODE_NONE = 0,
enum {
LOGMODE_NONE = 0,
@@
-508,9
+515,14
@@
int bb_test(int argc, char** argv);
#if ENABLE_ROUTE
void bb_displayroutes(int noresolve, int netstatfmt);
#endif
#if ENABLE_ROUTE
void bb_displayroutes(int noresolve, int netstatfmt);
#endif
+int chown_main(int argc, char **argv);
#if ENABLE_GUNZIP
int gunzip_main(int argc, char **argv);
#endif
#if ENABLE_GUNZIP
int gunzip_main(int argc, char **argv);
#endif
+int bbunpack(char **argv,
+ char* (*make_new_name)(char *filename),
+ USE_DESKTOP(long long) int (*unpacker)(void)
+);
/* Networking */
/* Networking */
@@
-569,7
+581,7
@@
int bb_execvp(const char *file, char *const argv[]);
cmd, __VA_ARGS__)
#else
#define BB_EXECVP(prog,cmd) execvp(prog,cmd)
cmd, __VA_ARGS__)
#else
#define BB_EXECVP(prog,cmd) execvp(prog,cmd)
-#define BB_EXECLP(prog,cmd,...) execlp(prog,cmd, __VA_ARGS__)
+#define BB_EXECLP(prog,cmd,...) execlp(prog,cmd, __VA_ARGS__)
#endif
USE_DESKTOP(long long) int uncompress(int fd_in, int fd_out);
#endif
USE_DESKTOP(long long) int uncompress(int fd_in, int fd_out);
@@
-591,6
+603,9
@@
extern void run_shell(const char *shell, int loginshell, const char *command, co
#if ENABLE_SELINUX
extern void renew_current_security_context(void);
extern void set_current_security_context(security_context_t sid);
#if ENABLE_SELINUX
extern void renew_current_security_context(void);
extern void set_current_security_context(security_context_t sid);
+extern context_t set_security_context_component(security_context_t cur_context,
+ char *user, char *role, char *type, char *range);
+extern void setfscreatecon_or_die(security_context_t scontext);
#endif
extern void selinux_or_die(void);
extern int restricted_shell(const char *shell);
#endif
extern void selinux_or_die(void);
extern int restricted_shell(const char *shell);
@@
-735,7
+750,7
@@
void *md5_end(void *resbuf, md5_ctx_t *ctx);
uint32_t *crc32_filltable(int endian);
uint32_t *crc32_filltable(int endian);
-enum { /* DO NOT CHANGE THESE VALUES! cp.c
depends
on them. */
+enum { /* DO NOT CHANGE THESE VALUES! cp.c
, mv.c, install.c depend
on them. */
FILEUTILS_PRESERVE_STATUS = 1,
FILEUTILS_DEREFERENCE = 2,
FILEUTILS_RECUR = 4,
FILEUTILS_PRESERVE_STATUS = 1,
FILEUTILS_DEREFERENCE = 2,
FILEUTILS_RECUR = 4,
@@
-743,9
+758,13
@@
enum { /* DO NOT CHANGE THESE VALUES! cp.c depends on them. */
FILEUTILS_INTERACTIVE = 0x10,
FILEUTILS_MAKE_HARDLINK = 0x20,
FILEUTILS_MAKE_SOFTLINK = 0x40,
FILEUTILS_INTERACTIVE = 0x10,
FILEUTILS_MAKE_HARDLINK = 0x20,
FILEUTILS_MAKE_SOFTLINK = 0x40,
+#if ENABLE_SELINUX
+ FILEUTILS_PRESERVE_SECURITY_CONTEXT = 0x80,
+ FILEUTILS_SET_SECURITY_CONTEXT = 0x100
+#endif
};
};
-#define FILEUTILS_CP_OPTSTR "pdRfils"
+#define FILEUTILS_CP_OPTSTR "pdRfils" USE_SELINUX("c")
extern const char *applet_name;
extern const char BB_BANNER[];
extern const char *applet_name;
extern const char BB_BANNER[];
@@
-844,7
+863,7
@@
extern const char bb_default_login_shell[];
/* The following devices are the same on devfs and non-devfs systems. */
#define CURRENT_TTY "/dev/tty"
/* The following devices are the same on devfs and non-devfs systems. */
#define CURRENT_TTY "/dev/tty"
-#define
CONSOLE_DEV
"/dev/console"
+#define
DEV_CONSOLE
"/dev/console"
#ifndef RB_POWER_OFF
#ifndef RB_POWER_OFF