![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Parse on-disk text based config files into the FreeRADIUS internal format. More...
#include <stddef.h>
#include <stdint.h>
#include <freeradius-devel/server/cf_util.h>
#include <freeradius-devel/util/rb.h>
#include <freeradius-devel/util/syserror.h>
#include <freeradius-devel/util/table.h>
#include <freeradius-devel/util/print.h>
Go to the source code of this file.
Enumerations | |
enum | cf_file_check_err_t { CF_FILE_OK = 0 , CF_FILE_NO_PERMISSION = -1 , CF_FILE_NO_EXIST = -2 , CF_FILE_NO_UNIX_SOCKET = -3 , CF_FILE_OTHER_ERROR = -4 } |
Results of file checks. More... | |
Functions | |
char const * | cf_expand_variables (char const *filename, int lineno, CONF_SECTION *outer_cs, char *output, size_t outsize, char const *input, ssize_t inlen, bool *soft_fail) |
cf_file_check_err_t | cf_file_check (CONF_PAIR *cp, bool check_perms) |
Do some checks on the file as an "input" file. | |
cf_file_check_err_t | cf_file_check_effective (char const *filename, cf_file_check_err_t(*cb)(char const *filename, void *uctx), void *uctx) |
Perform an operation with the effect/group set to conf_check_gid and conf_check_uid. | |
cf_file_check_err_t | cf_file_check_open_read (char const *filename, void *uctx) |
Callback for cf_file_check to open a file and check permissions. | |
void | cf_file_check_set_uid_gid (uid_t uid, gid_t gid) |
Set the euid/egid used when performing file checks. | |
cf_file_check_err_t | cf_file_check_unix_connect (char const *filename, UNUSED void *uctx) |
Check if we can connect to a unix socket. | |
cf_file_check_err_t | cf_file_check_unix_perm (char const *filename, UNUSED void *uctx) |
Check if file exists, and is a socket. | |
void | cf_file_free (CONF_SECTION *cs) |
int | cf_file_read (CONF_SECTION *cs, char const *file) |
void | cf_md5_final (uint8_t *digest) |
void | cf_md5_init (void) |
CONF_ITEM * | cf_reference_item (CONF_SECTION const *parentcs, CONF_SECTION const *outercs, char const *ptr) |
int | cf_section_pass2 (CONF_SECTION *cs) |
void | cf_section_set_unlang (CONF_SECTION *cs) |
int | cf_section_write (FILE *fp, CONF_SECTION *cs, int depth) |
Parse on-disk text based config files into the FreeRADIUS internal format.
Definition in file cf_file.h.
enum cf_file_check_err_t |
char const * cf_expand_variables | ( | char const * | filename, |
int | lineno, | ||
CONF_SECTION * | outer_cs, | ||
char * | output, | ||
size_t | outsize, | ||
char const * | input, | ||
ssize_t | inlen, | ||
bool * | soft_fail | ||
) |
cf_file_check_err_t cf_file_check | ( | CONF_PAIR * | cp, |
bool | check_perms | ||
) |
Do some checks on the file as an "input" file.
i.e. one read by a module.
cp | currently being processed. |
check_perms | If true - will return error if file is world readable, or not readable by the unprivileged user/group. |
Definition at line 907 of file cf_file.c.
cf_file_check_err_t cf_file_check_effective | ( | char const * | filename, |
cf_file_check_err_t(*)(char const *filename, void *uctx) | cb, | ||
void * | uctx | ||
) |
Perform an operation with the effect/group set to conf_check_gid and conf_check_uid.
filename | CONF_PAIR for the file being checked |
cb | callback function to perform the check |
uctx | user context for the callback |
Definition at line 686 of file cf_file.c.
cf_file_check_err_t cf_file_check_open_read | ( | char const * | filename, |
void * | uctx | ||
) |
Callback for cf_file_check to open a file and check permissions.
This is used to check if a file exists, and is readable by the unprivileged user/group.
filename | currently being processed. |
uctx | user context, which is a pointer to cf_file_t |
Definition at line 857 of file cf_file.c.
void cf_file_check_set_uid_gid | ( | uid_t | uid, |
gid_t | gid | ||
) |
Set the euid/egid used when performing file checks.
Sets the euid, and egid used when cf_file_check is called to check permissions on conf items of type CONF_FLAG_FILE_READABLE
uid | to set, (uid_t)-1 to use current euid. |
gid | to set, (gid_t)-1 to use current egid. |
cf_file_check_err_t cf_file_check_unix_connect | ( | char const * | filename, |
UNUSED void * | uctx | ||
) |
Check if we can connect to a unix socket.
[in] | filename | CONF_PAIR for the unix socket path |
[in] | uctx | user context, not used |
Definition at line 738 of file cf_file.c.
cf_file_check_err_t cf_file_check_unix_perm | ( | char const * | filename, |
UNUSED void * | uctx | ||
) |
Check if file exists, and is a socket.
[in] | filename | CONF_PAIR for the unix socket path |
[in] | uctx | user context, not used |
Definition at line 811 of file cf_file.c.
void cf_file_free | ( | CONF_SECTION * | cs | ) |
int cf_file_read | ( | CONF_SECTION * | cs, |
char const * | file | ||
) |
void cf_md5_final | ( | uint8_t * | digest | ) |
void cf_md5_init | ( | void | ) |
CONF_ITEM * cf_reference_item | ( | CONF_SECTION const * | parentcs, |
CONF_SECTION const * | outercs, | ||
char const * | ptr | ||
) |
int cf_section_pass2 | ( | CONF_SECTION * | cs | ) |
void cf_section_set_unlang | ( | CONF_SECTION * | cs | ) |
int cf_section_write | ( | FILE * | fp, |
CONF_SECTION * | cs, | ||
int | depth | ||
) |