42
42
svn_repos_t *repos;
43
43
const char *repos_name; /* URI-encoded name of repository (not for authz) */
44
44
svn_fs_t *fs; /* For convenience; same as svn_repos_fs(repos) */
45
const char *base; /* Base directory for config files */
45
46
svn_config_t *cfg; /* Parsed repository svnserve.conf */
46
47
svn_config_t *pwdb; /* Parsed password database */
47
48
svn_authz_t *authzdb; /* Parsed authz rules */
86
88
which forces all connections to be read-only. */
87
89
svn_boolean_t read_only;
91
/* The base directory for any relative configuration files. */
89
94
/* A parsed repository svnserve configuration file, ala
90
95
svnserve.conf. If this is NULL, then no configuration file was
91
96
specified on the command line. If this is non-NULL, then
92
97
per-repository svnserve.conf are not read. */
95
/* A parsed repository password database. If this is NULL, then
96
either no svnserve configuration file was specified on the
97
command line, or it was specified and it did not refer to a
101
/* A parsed repository authorization database. If this is NULL,
102
then either no svnserve configuration file was specified on the
103
command line, or it was specified and it did not refer to a
104
authorization database. */
105
svn_authz_t *authzdb;
107
100
/* A filehandle open for writing logs to; possibly NULL. */
108
101
apr_file_t *log_file;
116
109
/* Enable full-text caching for all FSFS repositories. */
117
110
svn_boolean_t cache_fulltexts;
112
/* Enable revprop caching for all FSFS repositories. */
113
svn_boolean_t cache_revprops;
119
115
/* Size of the in-memory cache (used by FSFS only). */
120
116
apr_uint64_t memory_cache_size;
125
121
Defaults to SVN_DELTA_COMPRESSION_LEVEL_DEFAULT. */
126
122
int compression_level;
124
/* Item size up to which we use the zero-copy code path to transmit
125
them over the network. 0 disables that code path. */
126
apr_size_t zero_copy_limit;
128
/* Amount of data to send between checks for cancellation requests
129
coming in from the client. */
130
apr_size_t error_check_interval;
132
/* Use virtual-host-based path to repo. */
128
134
} serve_params_t;
130
136
/* Serve the connection CONN according to the parameters PARAMS. */
131
137
svn_error_t *serve(svn_ra_svn_conn_t *conn, serve_params_t *params,
132
138
apr_pool_t *pool);
134
/* Load a svnserve configuration file located at FILENAME into CFG,
135
and if such as found, then:
137
- set *PWDB to any referenced password database,
138
- set *AUTHZDB to any referenced authorization database, and
139
- set *USERNAME_CASE to the enumerated value of the
140
'force-username-case' configuration value (or its default).
142
If MUST_EXIST is true and FILENAME does not exist, then return an
143
error. BASE may be specified as the base path to any referenced
144
password and authorization files found in FILENAME.
146
If SERVER is not NULL, log the real errors with SERVER and CONN but
147
return generic errors to the client. CONN must not be NULL if SERVER
149
svn_error_t *load_configs(svn_config_t **cfg,
151
svn_authz_t **authzdb,
152
enum username_case_type *username_case,
153
const char *filename,
154
svn_boolean_t must_exist,
156
server_baton_t *server,
157
svn_ra_svn_conn_t *conn,
140
/* Load the password database for the listening server based on the
141
entries in the SERVER struct.
143
SERVER and CONN must not be NULL. The real errors will be logged with
144
SERVER and CONN but return generic errors to the client. */
145
svn_error_t *load_pwdb_config(server_baton_t *server,
146
svn_ra_svn_conn_t *conn,
149
/* Load the authz database for the listening server based on the
150
entries in the SERVER struct.
152
SERVER and CONN must not be NULL. The real errors will be logged with
153
SERVER and CONN but return generic errors to the client. */
154
svn_error_t *load_authz_config(server_baton_t *server,
155
svn_ra_svn_conn_t *conn,
156
const char *repos_root,
160
159
/* Initialize the Cyrus SASL library. POOL is used for allocations. */
161
160
svn_error_t *cyrus_init(apr_pool_t *pool);