Subversion
Defines | Typedefs | Functions
svn_config.h File Reference

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

Strings for the names of files, sections, and options in the client configuration files.

#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_DIFF_EXTENSIONS   "diff-extensions"
#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_OPTION_MEMORY_CACHE_SIZE   "memory-cache-size"
#define SVN_CONFIG_SECTION_TUNNELS   "tunnels"
#define SVN_CONFIG_SECTION_AUTO_PROPS   "auto-props"
Repository conf directory configuration files strings

Strings for the names of sections and options in the repository conf directory configuration files.

#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_OPTION_FORCE_USERNAME_CASE   "force-username-case"
#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_tsvn_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_tsvn_config_create (svn_config_t **cfgp, svn_boolean_t section_names_case_sensitive, apr_pool_t *result_pool)
 Set *cfgp to an empty svn_config_t structure, allocated in result_pool.
svn_error_tsvn_config_read2 (svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, svn_boolean_t section_names_case_sensitive, apr_pool_t *pool)
 Read configuration data from file (a file or registry path) into *cfgp, allocated in pool.
svn_error_tsvn_config_read (svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, apr_pool_t *pool)
 Similar to svn_config_read2, but always passes FALSE to section_names_case_sensitive.
svn_error_tsvn_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_tsvn_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_tsvn_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.
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 explicitly 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.
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 explicitly 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_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_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.

Detailed Description

Accessing SVN configuration files.

Definition in file svn_config.h.


Define Documentation

#define SVN_CONFIG_DEFAULT_GLOBAL_IGNORES
Value:
SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 " " \
  SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2

Definition at line 154 of file svn_config.h.

#define SVN_CONFIG_OPTION_DIFF_EXTENSIONS   "diff-extensions"
Since:
New in 1.7.

Definition at line 101 of file svn_config.h.

#define SVN_CONFIG_OPTION_FORCE_USERNAME_CASE   "force-username-case"
Since:
New in 1.7.

Definition at line 133 of file svn_config.h.


Typedef Documentation

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.

Since:
New in 1.3.

Definition at line 403 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.

Deprecated:
Provided for backwards compatibility with the 1.2 API.

Definition at line 380 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.

Since:
New in 1.3.

Definition at line 354 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.

Deprecated:
Provided for backwards compatibility with the 1.2 API.

Definition at line 334 of file svn_config.h.

typedef struct svn_config_t svn_config_t

Opaque structure describing a set of configuration options.

Definition at line 53 of file svn_config.h.


Function Documentation

svn_error_t* svn_config_create ( svn_config_t **  cfgp,
svn_boolean_t  section_names_case_sensitive,
apr_pool_t *  result_pool 
)

Set *cfgp to an empty svn_config_t structure, allocated in result_pool.

Pass TRUE to section_names_case_sensitive if section names are to be populated case sensitively.

Since:
New in 1.7.
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.

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 explicitly provided.

Deprecated:
Provided for backwards compatibility with the 1.2 API.
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.

Since:
New in 1.3.
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 explicitly provided.

Deprecated:
Provided for backwards compatibility with the 1.2 API.
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.

Since:
New in 1.3.
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.

Since:
New in 1.6.
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.

Since:
New in 1.6.
svn_boolean_t svn_config_has_section ( svn_config_t cfg,
const char *  section 
)

Return TRUE if section exists in cfg, FALSE otherwise.

Since:
New in 1.4.
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 
)

Similar to svn_config_read2, but always passes FALSE to section_names_case_sensitive.

Deprecated:
Provided for backward compatibility with 1.6 API.
svn_error_t* svn_config_read2 ( svn_config_t **  cfgp,
const char *  file,
svn_boolean_t  must_exist,
svn_boolean_t  section_names_case_sensitive,
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.

If section_names_case_sensitive is TRUE, populate section name hashes case sensitively, except for the default SVN_CONFIG__DEFAULT_SECTION.

Since:
New in 1.7.
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.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines