summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorschwarze <>2016-11-20 19:47:59 +0000
committerschwarze <>2016-11-20 19:47:59 +0000
commit14a4103fd8535acc70b6f69109a4bda04d626ddf (patch)
treeadb668e0da25dd9b3a83cd9776f97ec3d89d6798 /src/lib
parent4a2f61dc956de5709bce944ecf4ea8779bf916b0 (diff)
downloadopenbsd-14a4103fd8535acc70b6f69109a4bda04d626ddf.tar.gz
openbsd-14a4103fd8535acc70b6f69109a4bda04d626ddf.tar.bz2
openbsd-14a4103fd8535acc70b6f69109a4bda04d626ddf.zip
Add Copyright and license.
Merge some typo fixes, a paragraph documenting another flag, and some additional explanations and EXAMPLES from OpenSSL.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/man/CONF_modules_load_file.3142
1 files changed, 138 insertions, 4 deletions
diff --git a/src/lib/libcrypto/man/CONF_modules_load_file.3 b/src/lib/libcrypto/man/CONF_modules_load_file.3
index 6e1a026727..0e594a1544 100644
--- a/src/lib/libcrypto/man/CONF_modules_load_file.3
+++ b/src/lib/libcrypto/man/CONF_modules_load_file.3
@@ -1,6 +1,54 @@
1.\" $OpenBSD: CONF_modules_load_file.3,v 1.3 2016/11/10 14:34:18 jmc Exp $ 1.\" $OpenBSD: CONF_modules_load_file.3,v 1.4 2016/11/20 19:47:59 schwarze Exp $
2.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
2.\" 3.\"
3.Dd $Mdocdate: November 10 2016 $ 4.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
5.\" Copyright (c) 2000, 2015 The OpenSSL Project. All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\"
11.\" 1. Redistributions of source code must retain the above copyright
12.\" notice, this list of conditions and the following disclaimer.
13.\"
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in
16.\" the documentation and/or other materials provided with the
17.\" distribution.
18.\"
19.\" 3. All advertising materials mentioning features or use of this
20.\" software must display the following acknowledgment:
21.\" "This product includes software developed by the OpenSSL Project
22.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
23.\"
24.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
25.\" endorse or promote products derived from this software without
26.\" prior written permission. For written permission, please contact
27.\" openssl-core@openssl.org.
28.\"
29.\" 5. Products derived from this software may not be called "OpenSSL"
30.\" nor may "OpenSSL" appear in their names without prior written
31.\" permission of the OpenSSL Project.
32.\"
33.\" 6. Redistributions of any form whatsoever must retain the following
34.\" acknowledgment:
35.\" "This product includes software developed by the OpenSSL Project
36.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)"
37.\"
38.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
39.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
40.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
41.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
42.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
44.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
45.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
46.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
47.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
48.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
49.\" OF THE POSSIBILITY OF SUCH DAMAGE.
50.\"
51.Dd $Mdocdate: November 20 2016 $
4.Dt CONF_MODULES_LOAD_FILE 3 52.Dt CONF_MODULES_LOAD_FILE 3
5.Os 53.Os
6.Sh NAME 54.Sh NAME
@@ -40,11 +88,11 @@ is
40the standard OpenSSL application name 88the standard OpenSSL application name
41.Qq openssl_conf 89.Qq openssl_conf
42is used. 90is used.
43The behaviour can be cutomized using 91The behaviour can be customized using
44.Fa flags . 92.Fa flags .
45.Pp 93.Pp
46.Fn CONF_modules_load 94.Fn CONF_modules_load
47is idential to 95is identical to
48.Fn CONF_modules_load_file 96.Fn CONF_modules_load_file
49except it reads configuration information from 97except it reads configuration information from
50.Fa cnf . 98.Fa cnf .
@@ -67,12 +115,98 @@ Let
67.Fn CONF_modules_load_file 115.Fn CONF_modules_load_file
68ignore missing configuration files. 116ignore missing configuration files.
69By default, a missing configuration file returns an error. 117By default, a missing configuration file returns an error.
118.It CONF_MFLAGS_DEFAULT_SECTION
119If
120.Fa appname
121is not
122.Dv NULL
123but does not exist, fall back to the default section
124.Qq openssl_conf .
70.El 125.El
126.Pp
127By using
128.Fn CONF_modules_load_file
129with appropriate flags, an application can customise application
130configuration to best suit its needs.
131In some cases the use of a configuration file is optional and its
132absence is not an error: in this case
133.Dv CONF_MFLAGS_IGNORE_MISSING_FILE
134would be set.
135.Pp
136Errors during configuration may also be handled differently by
137different applications.
138For example in some cases an error may simply print out a warning
139message and the application may continue.
140In other cases an application might consider a configuration file
141error fatal and exit immediately.
142.Pp
143Applications can use the
144.Fn CONF_modules_load
145function if they wish to load a configuration file themselves and
146have finer control over how errors are treated.
71.Sh RETURN VALUES 147.Sh RETURN VALUES
72These functions return 1 for success and zero or a negative value for 148These functions return 1 for success and zero or a negative value for
73failure. 149failure.
74If module errors are not ignored, the return code will reflect the return 150If module errors are not ignored, the return code will reflect the return
75value of the failing module (this will always be zero or negative). 151value of the failing module (this will always be zero or negative).
152.Sh EXAMPLES
153Load a configuration file and print out any errors and exit (missing
154file considered fatal):
155.Bd -literal
156if (CONF_modules_load_file(NULL, NULL, 0) <= 0) {
157 fprintf(stderr, "FATAL: error loading configuration file\n");
158 ERR_print_errors_fp(stderr);
159 exit(1);
160}
161.Ed
162.Pp
163Load default configuration file using the section indicated
164by "myapp", tolerate missing files, but exit on other errors:
165.Bd -literal
166if (CONF_modules_load_file(NULL, "myapp",
167 CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
168 fprintf(stderr, "FATAL: error loading configuration file\n");
169 ERR_print_errors_fp(stderr);
170 exit(1);
171}
172.Ed
173.Pp
174Load custom configuration file and section, only print warnings on
175error, missing configuration file ignored:
176.Bd -literal
177if (CONF_modules_load_file("/something/app.cnf", "myapp",
178 CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
179 fprintf(stderr, "WARNING: error loading configuration file\n");
180 ERR_print_errors_fp(stderr);
181}
182.Ed
183.Pp
184Load and parse configuration file manually, custom error handling:
185.Bd -literal
186FILE *fp;
187CONF *cnf = NULL;
188long eline;
189
190fp = fopen("/somepath/app.cnf", "r");
191if (fp == NULL) {
192 fprintf(stderr, "Error opening configuration file\n");
193 /* Other missing configuration file behaviour */
194} else {
195 cnf = NCONF_new(NULL);
196 if (NCONF_load_fp(cnf, fp, &eline) == 0) {
197 fprintf(stderr, "Error on line %ld of configuration file\n",
198 eline);
199 ERR_print_errors_fp(stderr);
200 /* Other malformed configuration file behaviour */
201 } else if (CONF_modules_load(cnf, "appname", 0) <= 0) {
202 fprintf(stderr, "Error configuring application\n");
203 ERR_print_errors_fp(stderr);
204 /* Other configuration error behaviour */
205 }
206 fclose(fp);
207 NCONF_free(cnf);
208}
209.Ed
76.Sh SEE ALSO 210.Sh SEE ALSO
77.Xr CONF_modules_free 3 , 211.Xr CONF_modules_free 3 ,
78.Xr ERR 3 , 212.Xr ERR 3 ,