Accessing SVN configuration files. More...
#include <apr.h>#include <apr_pools.h>#include <apr_hash.h>#include "svn_types.h"Go to the source code of this file.
Defines | |
| #define | SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo" |
| #define | SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2 "*.rej *~ #*# .#* .*.swp .DS_Store" |
| #define | SVN_CONFIG_DEFAULT_GLOBAL_IGNORES |
| #define | SVN_CONFIG_TRUE "TRUE" |
| #define | SVN_CONFIG_FALSE "FALSE" |
| #define | SVN_CONFIG_ASK "ASK" |
| #define | SVN_CONFIG_DEFAULT_OPTION_STORE_PASSWORDS TRUE |
| #define | SVN_CONFIG_DEFAULT_OPTION_STORE_PLAINTEXT_PASSWORDS SVN_CONFIG_ASK |
| #define | SVN_CONFIG_DEFAULT_OPTION_STORE_AUTH_CREDS TRUE |
| #define | SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP TRUE |
| #define | SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT SVN_CONFIG_ASK |
| #define | SVN_CONFIG_REALMSTRING_KEY "svn:realmstring" |
| A hash-key pointing to a realmstring. | |
Client configuration files strings | |
| #define | SVN_CONFIG_CATEGORY_SERVERS "servers" |
| #define | SVN_CONFIG_SECTION_GROUPS "groups" |
| #define | SVN_CONFIG_SECTION_GLOBAL "global" |
| #define | SVN_CONFIG_OPTION_HTTP_PROXY_HOST "http-proxy-host" |
| #define | SVN_CONFIG_OPTION_HTTP_PROXY_PORT "http-proxy-port" |
| #define | SVN_CONFIG_OPTION_HTTP_PROXY_USERNAME "http-proxy-username" |
| #define | SVN_CONFIG_OPTION_HTTP_PROXY_PASSWORD "http-proxy-password" |
| #define | SVN_CONFIG_OPTION_HTTP_PROXY_EXCEPTIONS "http-proxy-exceptions" |
| #define | SVN_CONFIG_OPTION_HTTP_TIMEOUT "http-timeout" |
| #define | SVN_CONFIG_OPTION_HTTP_COMPRESSION "http-compression" |
| #define | SVN_CONFIG_OPTION_NEON_DEBUG_MASK "neon-debug-mask" |
| #define | SVN_CONFIG_OPTION_HTTP_AUTH_TYPES "http-auth-types" |
| #define | SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES "ssl-authority-files" |
| #define | SVN_CONFIG_OPTION_SSL_TRUST_DEFAULT_CA "ssl-trust-default-ca" |
| #define | SVN_CONFIG_OPTION_SSL_CLIENT_CERT_FILE "ssl-client-cert-file" |
| #define | SVN_CONFIG_OPTION_SSL_CLIENT_CERT_PASSWORD "ssl-client-cert-password" |
| #define | SVN_CONFIG_OPTION_SSL_PKCS11_PROVIDER "ssl-pkcs11-provider" |
| #define | SVN_CONFIG_OPTION_HTTP_LIBRARY "http-library" |
| #define | SVN_CONFIG_OPTION_STORE_PASSWORDS "store-passwords" |
| #define | SVN_CONFIG_OPTION_STORE_PLAINTEXT_PASSWORDS "store-plaintext-passwords" |
| #define | SVN_CONFIG_OPTION_STORE_AUTH_CREDS "store-auth-creds" |
| #define | SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP "store-ssl-client-cert-pp" |
| #define | SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT "store-ssl-client-cert-pp-plaintext" |
| #define | SVN_CONFIG_OPTION_USERNAME "username" |
| #define | SVN_CONFIG_CATEGORY_CONFIG "config" |
| #define | SVN_CONFIG_SECTION_AUTH "auth" |
| #define | SVN_CONFIG_OPTION_PASSWORD_STORES "password-stores" |
| #define | SVN_CONFIG_OPTION_KWALLET_WALLET "kwallet-wallet" |
| #define | SVN_CONFIG_OPTION_KWALLET_SVN_APPLICATION_NAME_WITH_PID "kwallet-svn-application-name-with-pid" |
| #define | SVN_CONFIG_SECTION_HELPERS "helpers" |
| #define | SVN_CONFIG_OPTION_EDITOR_CMD "editor-cmd" |
| #define | SVN_CONFIG_OPTION_DIFF_CMD "diff-cmd" |
| #define | SVN_CONFIG_OPTION_DIFF3_CMD "diff3-cmd" |
| #define | SVN_CONFIG_OPTION_DIFF3_HAS_PROGRAM_ARG "diff3-has-program-arg" |
| #define | SVN_CONFIG_OPTION_MERGE_TOOL_CMD "merge-tool-cmd" |
| #define | SVN_CONFIG_SECTION_MISCELLANY "miscellany" |
| #define | SVN_CONFIG_OPTION_GLOBAL_IGNORES "global-ignores" |
| #define | SVN_CONFIG_OPTION_LOG_ENCODING "log-encoding" |
| #define | SVN_CONFIG_OPTION_USE_COMMIT_TIMES "use-commit-times" |
| #define | SVN_CONFIG_OPTION_TEMPLATE_ROOT "template-root" |
| #define | SVN_CONFIG_OPTION_ENABLE_AUTO_PROPS "enable-auto-props" |
| #define | SVN_CONFIG_OPTION_NO_UNLOCK "no-unlock" |
| #define | SVN_CONFIG_OPTION_MIMETYPES_FILE "mime-types-file" |
| #define | SVN_CONFIG_OPTION_PRESERVED_CF_EXTS "preserved-conflict-file-exts" |
| #define | SVN_CONFIG_OPTION_INTERACTIVE_CONFLICTS "interactive-conflicts" |
| #define | SVN_CONFIG_SECTION_TUNNELS "tunnels" |
| #define | SVN_CONFIG_SECTION_AUTO_PROPS "auto-props" |
Repository conf directory configuration files strings | |
| #define | SVN_CONFIG_SECTION_GENERAL "general" |
| #define | SVN_CONFIG_OPTION_ANON_ACCESS "anon-access" |
| #define | SVN_CONFIG_OPTION_AUTH_ACCESS "auth-access" |
| #define | SVN_CONFIG_OPTION_PASSWORD_DB "password-db" |
| #define | SVN_CONFIG_OPTION_REALM "realm" |
| #define | SVN_CONFIG_OPTION_AUTHZ_DB "authz-db" |
| #define | SVN_CONFIG_SECTION_SASL "sasl" |
| #define | SVN_CONFIG_OPTION_USE_SASL "use-sasl" |
| #define | SVN_CONFIG_OPTION_MIN_SSF "min-encryption" |
| #define | SVN_CONFIG_OPTION_MAX_SSF "max-encryption" |
| #define | SVN_CONFIG_SECTION_USERS "users" |
Typedefs | |
| typedef struct svn_config_t | svn_config_t |
| Opaque structure describing a set of configuration options. | |
| typedef svn_boolean_t(* | svn_config_section_enumerator_t )(const char *name, void *baton) |
Similar to svn_config_section_enumerator2_t, but is not provided with a memory pool argument. | |
| typedef svn_boolean_t(* | svn_config_section_enumerator2_t )(const char *name, void *baton, apr_pool_t *pool) |
| A callback function used in enumerating config sections. | |
| typedef svn_boolean_t(* | svn_config_enumerator_t )(const char *name, const char *value, void *baton) |
Similar to svn_config_enumerator2_t, but is not provided with a memory pool argument. | |
| typedef svn_boolean_t(* | svn_config_enumerator2_t )(const char *name, const char *value, void *baton, apr_pool_t *pool) |
| A callback function used in enumerating config options. | |
Functions | |
| svn_error_t * | svn_config_get_config (apr_hash_t **cfg_hash, const char *config_dir, apr_pool_t *pool) |
| Read configuration information from the standard sources and merge it into the hash *cfg_hash. | |
| svn_error_t * | svn_config_read (svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, apr_pool_t *pool) |
| Read configuration data from file (a file or registry path) into *cfgp, allocated in pool. | |
| svn_error_t * | svn_config_merge (svn_config_t *cfg, const char *file, svn_boolean_t must_exist) |
| Like svn_config_read(), but merges the configuration data from file (a file or registry path) into *cfg, which was previously returned from svn_config_read(). | |
| void | svn_config_get (svn_config_t *cfg, const char **valuep, const char *section, const char *option, const char *default_value) |
| Find the value of a (section, option) pair in cfg, set *valuep to the value. | |
| void | svn_config_set (svn_config_t *cfg, const char *section, const char *option, const char *value) |
| Add or replace the value of a (section, option) pair in cfg with value. | |
| svn_error_t * | svn_config_get_bool (svn_config_t *cfg, svn_boolean_t *valuep, const char *section, const char *option, svn_boolean_t default_value) |
| Like svn_config_get(), but for boolean values. | |
| void | svn_config_set_bool (svn_config_t *cfg, const char *section, const char *option, svn_boolean_t value) |
| Like svn_config_set(), but for boolean values. | |
| svn_error_t * | svn_config_get_yes_no_ask (svn_config_t *cfg, const char **valuep, const char *section, const char *option, const char *default_value) |
| Like svn_config_get(), but only for yes/no/ask values. | |
| SVN_DEPRECATED int | svn_config_enumerate_sections (svn_config_t *cfg, svn_config_section_enumerator_t callback, void *baton) |
| Similar to svn_config_enumerate_sections2(), but uses a memory pool of cfg instead of one that is explicitely provided. | |
| int | svn_config_enumerate_sections2 (svn_config_t *cfg, svn_config_section_enumerator2_t callback, void *baton, apr_pool_t *pool) |
| Enumerate the sections, passing baton and the current section's name to callback. | |
| SVN_DEPRECATED int | svn_config_enumerate (svn_config_t *cfg, const char *section, svn_config_enumerator_t callback, void *baton) |
| Similar to svn_config_enumerate2(), but uses a memory pool of cfg instead of one that is explicitely provided. | |
| int | svn_config_enumerate2 (svn_config_t *cfg, const char *section, svn_config_enumerator2_t callback, void *baton, apr_pool_t *pool) |
| Enumerate the options in section, passing baton and the current option's name and value to callback. | |
| svn_boolean_t | svn_config_has_section (svn_config_t *cfg, const char *section) |
Return TRUE if section exists in cfg, FALSE otherwise. | |
| const char * | svn_config_find_group (svn_config_t *cfg, const char *key, const char *master_section, apr_pool_t *pool) |
| Enumerate the group master_section in cfg. | |
| const char * | svn_config_get_server_setting (svn_config_t *cfg, const char *server_group, const char *option_name, const char *default_value) |
| Retrieve value corresponding to option_name in cfg, or return default_value if none is found. | |
| svn_error_t * | svn_config_get_server_setting_int (svn_config_t *cfg, const char *server_group, const char *option_name, apr_int64_t default_value, apr_int64_t *result_value, apr_pool_t *pool) |
| Retrieve value into result_value corresponding to option_name for a given server_group in cfg, or return default_value if none is found. | |
| svn_error_t * | svn_config_get_server_setting_bool (svn_config_t *cfg, svn_boolean_t *valuep, const char *server_group, const char *option_name, svn_boolean_t default_value) |
| Set *valuep according to option_name for a given server_group in cfg, or set to default_value if no value is specified. | |
| svn_error_t * | svn_config_ensure (const char *config_dir, apr_pool_t *pool) |
| Try to ensure that the user's ~/.subversion/ area exists, and create no-op template files for any absent config files. | |
| svn_error_t * | svn_config_read_auth_data (apr_hash_t **hash, const char *cred_kind, const char *realmstring, const char *config_dir, apr_pool_t *pool) |
| Use cred_kind and realmstring to locate a file within the ~/.subversion/auth/ area. | |
| svn_error_t * | svn_config_write_auth_data (apr_hash_t *hash, const char *cred_kind, const char *realmstring, const char *config_dir, apr_pool_t *pool) |
| Use cred_kind and realmstring to create or overwrite a file within the ~/.subversion/auth/ area. | |
| svn_error_t * | svn_config_get_user_config_path (const char **path, const char *config_dir, const char *fname, apr_pool_t *pool) |
| Put the absolute path to the user's configuration directory, or to a file within that directory, into *path. | |
Accessing SVN configuration files.
Definition in file svn_config.h.
| #define SVN_CONFIG_DEFAULT_GLOBAL_IGNORES |
SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 " " \
SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2
Definition at line 144 of file svn_config.h.
| typedef svn_boolean_t(* svn_config_enumerator2_t)(const char *name, const char *value, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config options.
See svn_config_enumerate2() for the details of this type.
Definition at line 361 of file svn_config.h.
| typedef svn_boolean_t(* svn_config_enumerator_t)(const char *name, const char *value, void *baton) |
Similar to svn_config_enumerator2_t, but is not provided with a memory pool argument.
See svn_config_enumerate() for the details of this type.
Definition at line 338 of file svn_config.h.
| typedef svn_boolean_t(* svn_config_section_enumerator2_t)(const char *name, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config sections.
See svn_config_enumerate_sections2() for the details of this type.
Definition at line 312 of file svn_config.h.
| typedef svn_boolean_t(* svn_config_section_enumerator_t)(const char *name, void *baton) |
Similar to svn_config_section_enumerator2_t, but is not provided with a memory pool argument.
See svn_config_enumerate_sections() for the details of this type.
Definition at line 292 of file svn_config.h.
| typedef struct svn_config_t svn_config_t |
Opaque structure describing a set of configuration options.
Definition at line 48 of file svn_config.h.
| svn_error_t* svn_config_ensure | ( | const char * | config_dir, | |
| apr_pool_t * | pool | |||
| ) |
Try to ensure that the user's ~/.subversion/ area exists, and create no-op template files for any absent config files.
Use pool for any temporary allocation. If config_dir is not NULL it specifies a directory from which to read the config overriding all other sources.
Don't error if something exists but is the wrong kind (for example, ~/.subversion exists but is a file, or ~/.subversion/servers exists but is a directory).
Also don't error if trying to create something and failing -- it's okay for the config area or its contents not to be created. However, if creating a config template file succeeds, return an error if unable to initialize its contents.
| SVN_DEPRECATED int svn_config_enumerate | ( | svn_config_t * | cfg, | |
| const char * | section, | |||
| svn_config_enumerator_t | callback, | |||
| void * | baton | |||
| ) |
Similar to svn_config_enumerate2(), but uses a memory pool of cfg instead of one that is explicitely provided.
| int svn_config_enumerate2 | ( | svn_config_t * | cfg, | |
| const char * | section, | |||
| svn_config_enumerator2_t | callback, | |||
| void * | baton, | |||
| apr_pool_t * | pool | |||
| ) |
Enumerate the options in section, passing baton and the current option's name and value to callback.
Continue the enumeration if callback returns TRUE. Return the number of times callback was called.
### kff asks: A more usual interface is to continue enumerating while callback does not return error, and if callback does return error, to return the same error (or a wrapping of it) from svn_config_enumerate(). What's the use case for svn_config_enumerate()? Is it more likely to need to break out of an enumeration early, with no error, than an invocation of callback is likely to need to return an error? ###
callback's name and value parameters are only valid for the duration of the call.
| SVN_DEPRECATED int svn_config_enumerate_sections | ( | svn_config_t * | cfg, | |
| svn_config_section_enumerator_t | callback, | |||
| void * | baton | |||
| ) |
Similar to svn_config_enumerate_sections2(), but uses a memory pool of cfg instead of one that is explicitely provided.
| int svn_config_enumerate_sections2 | ( | svn_config_t * | cfg, | |
| svn_config_section_enumerator2_t | callback, | |||
| void * | baton, | |||
| apr_pool_t * | pool | |||
| ) |
Enumerate the sections, passing baton and the current section's name to callback.
Continue the enumeration if callback returns TRUE. Return the number of times callback was called.
### See kff's comment to svn_config_enumerate2(). It applies to this function, too. ###
callback's name parameter is only valid for the duration of the call.
| const char* svn_config_find_group | ( | svn_config_t * | cfg, | |
| const char * | key, | |||
| const char * | master_section, | |||
| apr_pool_t * | pool | |||
| ) |
Enumerate the group master_section in cfg.
Each variable value is interpreted as a list of glob patterns (separated by comma and optional whitespace). Return the name of the first variable whose value matches key, or NULL if no variable matches.
| void svn_config_get | ( | svn_config_t * | cfg, | |
| const char ** | valuep, | |||
| const char * | section, | |||
| const char * | option, | |||
| const char * | default_value | |||
| ) |
Find the value of a (section, option) pair in cfg, set *valuep to the value.
If cfg is NULL, just sets *valuep to default_value. If the value does not exist, expand and return default_value. default_value can be NULL.
The returned value will be valid at least until the next call to svn_config_get(), or for the lifetime of default_value. It is safest to consume the returned value immediately.
This function may change cfg by expanding option values.
| svn_error_t* svn_config_get_bool | ( | svn_config_t * | cfg, | |
| svn_boolean_t * | valuep, | |||
| const char * | section, | |||
| const char * | option, | |||
| svn_boolean_t | default_value | |||
| ) |
Like svn_config_get(), but for boolean values.
Parses the option as a boolean value. The recognized representations are 'TRUE'/'FALSE', 'yes'/'no', 'on'/'off', '1'/'0'; case does not matter. Returns an error if the option doesn't contain a known string.
| svn_error_t* svn_config_get_config | ( | apr_hash_t ** | cfg_hash, | |
| const char * | config_dir, | |||
| apr_pool_t * | pool | |||
| ) |
Read configuration information from the standard sources and merge it into the hash *cfg_hash.
If config_dir is not NULL it specifies a directory from which to read the configuration files, overriding all other sources. Otherwise, first read any system-wide configurations (from a file or from the registry), then merge in personal configurations (again from file or registry). The hash and all its data are allocated in pool.
*cfg_hash is a hash whose keys are const char * configuration categories (SVN_CONFIG_CATEGORY_SERVERS, SVN_CONFIG_CATEGORY_CONFIG, etc.) and whose values are the svn_config_t * items representing the configuration values for that category.
| const char* svn_config_get_server_setting | ( | svn_config_t * | cfg, | |
| const char * | server_group, | |||
| const char * | option_name, | |||
| const char * | default_value | |||
| ) |
Retrieve value corresponding to option_name in cfg, or return default_value if none is found.
The config will first be checked for a default. If server_group is not NULL, the config will also be checked for an override in a server group,
| svn_error_t* svn_config_get_server_setting_bool | ( | svn_config_t * | cfg, | |
| svn_boolean_t * | valuep, | |||
| const char * | server_group, | |||
| const char * | option_name, | |||
| svn_boolean_t | default_value | |||
| ) |
Set *valuep according to option_name for a given server_group in cfg, or set to default_value if no value is specified.
Check first a default, then for an override in a server group. If a value is found but is not a valid boolean, return an SVN_ERR_BAD_CONFIG_VALUE error.
| svn_error_t* svn_config_get_server_setting_int | ( | svn_config_t * | cfg, | |
| const char * | server_group, | |||
| const char * | option_name, | |||
| apr_int64_t | default_value, | |||
| apr_int64_t * | result_value, | |||
| apr_pool_t * | pool | |||
| ) |
Retrieve value into result_value corresponding to option_name for a given server_group in cfg, or return default_value if none is found.
The config will first be checked for a default, then will be checked for an override in a server group. If the value found is not a valid integer, a svn_error_t* will be returned.
| svn_error_t* svn_config_get_yes_no_ask | ( | svn_config_t * | cfg, | |
| const char ** | valuep, | |||
| const char * | section, | |||
| const char * | option, | |||
| const char * | default_value | |||
| ) |
Like svn_config_get(), but only for yes/no/ask values.
Parse option in section and set *valuep to one of SVN_CONFIG_TRUE, SVN_CONFIG_FALSE, or SVN_CONFIG_ASK. If there is no setting for option, then parse default_value and set *valuep accordingly. If default_value is NULL, the result is undefined, and may be an error; we recommend that you pass one of SVN_CONFIG_TRUE, SVN_CONFIG_FALSE, or SVN_CONFIG_ASK for default value.
Valid representations are (at least) "true"/"false", "yes"/"no", "on"/"off", "1"/"0", and "ask"; they are case-insensitive. Return an SVN_ERR_BAD_CONFIG_VALUE error if either default_value or option's value is not a valid representation.
| svn_boolean_t svn_config_has_section | ( | svn_config_t * | cfg, | |
| const char * | section | |||
| ) |
Return TRUE if section exists in cfg, FALSE otherwise.
| svn_error_t* svn_config_merge | ( | svn_config_t * | cfg, | |
| const char * | file, | |||
| svn_boolean_t | must_exist | |||
| ) |
Like svn_config_read(), but merges the configuration data from file (a file or registry path) into *cfg, which was previously returned from svn_config_read().
This function invalidates all value expansions in cfg, so that the next svn_config_get() takes the modifications into account.
| svn_error_t* svn_config_read | ( | svn_config_t ** | cfgp, | |
| const char * | file, | |||
| svn_boolean_t | must_exist, | |||
| apr_pool_t * | pool | |||
| ) |
Read configuration data from file (a file or registry path) into *cfgp, allocated in pool.
If file does not exist, then if must_exist, return an error, otherwise return an empty svn_config_t.
| void svn_config_set | ( | svn_config_t * | cfg, | |
| const char * | section, | |||
| const char * | option, | |||
| const char * | value | |||
| ) |
Add or replace the value of a (section, option) pair in cfg with value.
This function invalidates all value expansions in cfg.
To remove an option, pass NULL for the value.
| void svn_config_set_bool | ( | svn_config_t * | cfg, | |
| const char * | section, | |||
| const char * | option, | |||
| svn_boolean_t | value | |||
| ) |
Like svn_config_set(), but for boolean values.
Sets the option to 'TRUE'/'FALSE', depending on value.
1.6.3