diff options
Diffstat (limited to 'system.h')
-rw-r--r-- | system.h | 54 |
1 files changed, 19 insertions, 35 deletions
@@ -1,5 +1,7 @@ /** * \file system.h + * + * Some misc low-level API */ #ifndef H_SYSTEM @@ -78,29 +80,8 @@ char * stpncpy(char * dest, const char * src, size_t n); #endif #endif -#if WITH_SELINUX -#include <selinux/selinux.h> -#include <selinux/label.h> -#include <selinux/avc.h> -#else -typedef char * security_context_t; - -#define freecon(_c) - -#define setfilecon(_fn, _c) (-1) -#define lsetfilecon(_fn, _c) (-1) - -#define is_selinux_enabled() (0) - -#define matchpathcon_init(_fn) (-1) -#define matchpathcon_fini() (0) -#define matchpathcon(_fn, _fm, _c) (-1) - -#define selabel_lookup_raw(_hnd, _scon, _key,_type) (-1) - -#define selinux_file_context_path() (0) - -#define rpm_execcon(_v, _fn, _av, _envp) (0) +#if defined(HAVE_FDATASYNC) && !HAVE_DECL_FDATASYNC +extern int fdatasync(int fildes); #endif #include "rpmio/rpmutil.h" @@ -111,20 +92,23 @@ typedef char * security_context_t; #define xstrdup(_str) rstrdup((_str)) #define _free(_ptr) rfree((_ptr)) -/* Retrofit glibc __progname */ -#if defined __GLIBC__ && __GLIBC__ >= 2 -#if __GLIBC_MINOR__ >= 1 -#define __progname __assert_program_name -#endif -#define setprogname(pn) +/* To extract program's name: use calls (reimplemented or shipped with system): + - void setprogname(const char *pn) + - const char *getprogname(void) + + setprogname(*pn) must be the first call in main() in order to set the name + as soon as possible. */ +#if defined(HAVE_SETPROGNAME) /* BSD'ish systems */ +# include <stdlib.h> /* Make sure this header is included */ +# define xsetprogname(pn) setprogname(pn) +# define xgetprogname(pn) getprogname(pn) +#elif defined(HAVE___PROGNAME) /* glibc and others */ +# define xsetprogname(pn) + extern const char *__progname; +# define xgetprogname(pn) __progname #else -#define __progname program_name -#define setprogname(pn) \ - { if ((__progname = strrchr(pn, '/')) != NULL) __progname++; \ - else __progname = pn; \ - } +# error "Did not find any sutable implementation of xsetprogname/xgetprogname" #endif -extern const char *__progname; /* Take care of NLS matters. */ #if ENABLE_NLS |