summaryrefslogtreecommitdiff
path: root/subversion/svnserve/server.h
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/svnserve/server.h')
-rw-r--r--subversion/svnserve/server.h73
1 files changed, 36 insertions, 37 deletions
diff --git a/subversion/svnserve/server.h b/subversion/svnserve/server.h
index 41ab09c..926a96f 100644
--- a/subversion/svnserve/server.h
+++ b/subversion/svnserve/server.h
@@ -42,6 +42,7 @@ typedef struct server_baton_t {
svn_repos_t *repos;
const char *repos_name; /* URI-encoded name of repository (not for authz) */
svn_fs_t *fs; /* For convenience; same as svn_repos_fs(repos) */
+ const char *base; /* Base directory for config files */
svn_config_t *cfg; /* Parsed repository svnserve.conf */
svn_config_t *pwdb; /* Parsed password database */
svn_authz_t *authzdb; /* Parsed authz rules */
@@ -59,6 +60,7 @@ typedef struct server_baton_t {
svn_boolean_t use_sasl; /* Use Cyrus SASL for authentication;
always false if SVN_HAVE_SASL not defined */
apr_file_t *log_file; /* Log filehandle. */
+ svn_boolean_t vhost; /* Use virtual-host-based path to repo. */
apr_pool_t *pool;
} server_baton_t;
@@ -86,24 +88,15 @@ typedef struct serve_params_t {
which forces all connections to be read-only. */
svn_boolean_t read_only;
+ /* The base directory for any relative configuration files. */
+ const char *base;
+
/* A parsed repository svnserve configuration file, ala
svnserve.conf. If this is NULL, then no configuration file was
specified on the command line. If this is non-NULL, then
per-repository svnserve.conf are not read. */
svn_config_t *cfg;
- /* A parsed repository password database. If this is NULL, then
- either no svnserve configuration file was specified on the
- command line, or it was specified and it did not refer to a
- password database. */
- svn_config_t *pwdb;
-
- /* A parsed repository authorization database. If this is NULL,
- then either no svnserve configuration file was specified on the
- command line, or it was specified and it did not refer to a
- authorization database. */
- svn_authz_t *authzdb;
-
/* A filehandle open for writing logs to; possibly NULL. */
apr_file_t *log_file;
@@ -116,6 +109,9 @@ typedef struct serve_params_t {
/* Enable full-text caching for all FSFS repositories. */
svn_boolean_t cache_fulltexts;
+ /* Enable revprop caching for all FSFS repositories. */
+ svn_boolean_t cache_revprops;
+
/* Size of the in-memory cache (used by FSFS only). */
apr_uint64_t memory_cache_size;
@@ -125,37 +121,40 @@ typedef struct serve_params_t {
Defaults to SVN_DELTA_COMPRESSION_LEVEL_DEFAULT. */
int compression_level;
+ /* Item size up to which we use the zero-copy code path to transmit
+ them over the network. 0 disables that code path. */
+ apr_size_t zero_copy_limit;
+
+ /* Amount of data to send between checks for cancellation requests
+ coming in from the client. */
+ apr_size_t error_check_interval;
+
+ /* Use virtual-host-based path to repo. */
+ svn_boolean_t vhost;
} serve_params_t;
/* Serve the connection CONN according to the parameters PARAMS. */
svn_error_t *serve(svn_ra_svn_conn_t *conn, serve_params_t *params,
apr_pool_t *pool);
-/* Load a svnserve configuration file located at FILENAME into CFG,
- and if such as found, then:
-
- - set *PWDB to any referenced password database,
- - set *AUTHZDB to any referenced authorization database, and
- - set *USERNAME_CASE to the enumerated value of the
- 'force-username-case' configuration value (or its default).
-
- If MUST_EXIST is true and FILENAME does not exist, then return an
- error. BASE may be specified as the base path to any referenced
- password and authorization files found in FILENAME.
-
- If SERVER is not NULL, log the real errors with SERVER and CONN but
- return generic errors to the client. CONN must not be NULL if SERVER
- is not NULL. */
-svn_error_t *load_configs(svn_config_t **cfg,
- svn_config_t **pwdb,
- svn_authz_t **authzdb,
- enum username_case_type *username_case,
- const char *filename,
- svn_boolean_t must_exist,
- const char *base,
- server_baton_t *server,
- svn_ra_svn_conn_t *conn,
- apr_pool_t *pool);
+/* Load the password database for the listening server based on the
+ entries in the SERVER struct.
+
+ SERVER and CONN must not be NULL. The real errors will be logged with
+ SERVER and CONN but return generic errors to the client. */
+svn_error_t *load_pwdb_config(server_baton_t *server,
+ svn_ra_svn_conn_t *conn,
+ apr_pool_t *pool);
+
+/* Load the authz database for the listening server based on the
+ entries in the SERVER struct.
+
+ SERVER and CONN must not be NULL. The real errors will be logged with
+ SERVER and CONN but return generic errors to the client. */
+svn_error_t *load_authz_config(server_baton_t *server,
+ svn_ra_svn_conn_t *conn,
+ const char *repos_root,
+ apr_pool_t *pool);
/* Initialize the Cyrus SASL library. POOL is used for allocations. */
svn_error_t *cyrus_init(apr_pool_t *pool);