/src/libressl/crypto/bio/bio_err.c
Line  | Count  | Source  | 
1  |  | /* $OpenBSD: bio_err.c,v 1.19 2022/07/12 14:42:48 kn Exp $ */  | 
2  |  | /* ====================================================================  | 
3  |  |  * Copyright (c) 1999-2011 The OpenSSL Project.  All rights reserved.  | 
4  |  |  *  | 
5  |  |  * Redistribution and use in source and binary forms, with or without  | 
6  |  |  * modification, are permitted provided that the following conditions  | 
7  |  |  * are met:  | 
8  |  |  *  | 
9  |  |  * 1. Redistributions of source code must retain the above copyright  | 
10  |  |  *    notice, this list of conditions and the following disclaimer.  | 
11  |  |  *  | 
12  |  |  * 2. Redistributions in binary form must reproduce the above copyright  | 
13  |  |  *    notice, this list of conditions and the following disclaimer in  | 
14  |  |  *    the documentation and/or other materials provided with the  | 
15  |  |  *    distribution.  | 
16  |  |  *  | 
17  |  |  * 3. All advertising materials mentioning features or use of this  | 
18  |  |  *    software must display the following acknowledgment:  | 
19  |  |  *    "This product includes software developed by the OpenSSL Project  | 
20  |  |  *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"  | 
21  |  |  *  | 
22  |  |  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to  | 
23  |  |  *    endorse or promote products derived from this software without  | 
24  |  |  *    prior written permission. For written permission, please contact  | 
25  |  |  *    openssl-core@OpenSSL.org.  | 
26  |  |  *  | 
27  |  |  * 5. Products derived from this software may not be called "OpenSSL"  | 
28  |  |  *    nor may "OpenSSL" appear in their names without prior written  | 
29  |  |  *    permission of the OpenSSL Project.  | 
30  |  |  *  | 
31  |  |  * 6. Redistributions of any form whatsoever must retain the following  | 
32  |  |  *    acknowledgment:  | 
33  |  |  *    "This product includes software developed by the OpenSSL Project  | 
34  |  |  *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"  | 
35  |  |  *  | 
36  |  |  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY  | 
37  |  |  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | 
38  |  |  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR  | 
39  |  |  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR  | 
40  |  |  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  | 
41  |  |  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT  | 
42  |  |  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  | 
43  |  |  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  | 
44  |  |  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,  | 
45  |  |  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | 
46  |  |  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED  | 
47  |  |  * OF THE POSSIBILITY OF SUCH DAMAGE.  | 
48  |  |  * ====================================================================  | 
49  |  |  *  | 
50  |  |  * This product includes cryptographic software written by Eric Young  | 
51  |  |  * (eay@cryptsoft.com).  This product includes software written by Tim  | 
52  |  |  * Hudson (tjh@cryptsoft.com).  | 
53  |  |  *  | 
54  |  |  */  | 
55  |  |  | 
56  |  | #include <stdio.h>  | 
57  |  |  | 
58  |  | #include <openssl/opensslconf.h>  | 
59  |  |  | 
60  |  | #include <openssl/err.h>  | 
61  |  | #include <openssl/bio.h>  | 
62  |  |  | 
63  |  | #ifndef OPENSSL_NO_ERR  | 
64  |  |  | 
65  |  | #define ERR_FUNC(func) ERR_PACK(ERR_LIB_BIO,func,0)  | 
66  |  | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_BIO,0,reason)  | 
67  |  |  | 
68  |  | static ERR_STRING_DATA BIO_str_functs[] = { | 
69  |  |   {ERR_FUNC(0xfff), "CRYPTO_internal"}, | 
70  |  |   {0, NULL} | 
71  |  | };  | 
72  |  |  | 
73  |  | static ERR_STRING_DATA BIO_str_reasons[] = { | 
74  |  |   {ERR_REASON(BIO_R_ACCEPT_ERROR)          , "accept error"}, | 
75  |  |   {ERR_REASON(BIO_R_BAD_FOPEN_MODE)        , "bad fopen mode"}, | 
76  |  |   {ERR_REASON(BIO_R_BAD_HOSTNAME_LOOKUP)   , "bad hostname lookup"}, | 
77  |  |   {ERR_REASON(BIO_R_BROKEN_PIPE)           , "broken pipe"}, | 
78  |  |   {ERR_REASON(BIO_R_CONNECT_ERROR)         , "connect error"}, | 
79  |  |   {ERR_REASON(BIO_R_EOF_ON_MEMORY_BIO)     , "EOF on memory BIO"}, | 
80  |  |   {ERR_REASON(BIO_R_ERROR_SETTING_NBIO)    , "error setting nbio"}, | 
81  |  |   {ERR_REASON(BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET), "error setting nbio on accepted socket"}, | 
82  |  |   {ERR_REASON(BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET), "error setting nbio on accept socket"}, | 
83  |  |   {ERR_REASON(BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET), "gethostbyname addr is not af inet"}, | 
84  |  |   {ERR_REASON(BIO_R_INVALID_ARGUMENT)      , "invalid argument"}, | 
85  |  |   {ERR_REASON(BIO_R_INVALID_IP_ADDRESS)    , "invalid ip address"}, | 
86  |  |   {ERR_REASON(BIO_R_INVALID_PORT_NUMBER)   , "invalid port number"}, | 
87  |  |   {ERR_REASON(BIO_R_IN_USE)                , "in use"}, | 
88  |  |   {ERR_REASON(BIO_R_KEEPALIVE)             , "keepalive"}, | 
89  |  |   {ERR_REASON(BIO_R_LENGTH_TOO_LONG)       , "too long"}, | 
90  |  |   {ERR_REASON(BIO_R_NBIO_CONNECT_ERROR)    , "nbio connect error"}, | 
91  |  |   {ERR_REASON(BIO_R_NO_ACCEPT_PORT_SPECIFIED), "no accept port specified"}, | 
92  |  |   {ERR_REASON(BIO_R_NO_HOSTNAME_SPECIFIED) , "no hostname specified"}, | 
93  |  |   {ERR_REASON(BIO_R_NO_PORT_DEFINED)       , "no port defined"}, | 
94  |  |   {ERR_REASON(BIO_R_NO_PORT_SPECIFIED)     , "no port specified"}, | 
95  |  |   {ERR_REASON(BIO_R_NO_SUCH_FILE)          , "no such file"}, | 
96  |  |   {ERR_REASON(BIO_R_NULL_PARAMETER)        , "null parameter"}, | 
97  |  |   {ERR_REASON(BIO_R_TAG_MISMATCH)          , "tag mismatch"}, | 
98  |  |   {ERR_REASON(BIO_R_UNABLE_TO_BIND_SOCKET) , "unable to bind socket"}, | 
99  |  |   {ERR_REASON(BIO_R_UNABLE_TO_CREATE_SOCKET), "unable to create socket"}, | 
100  |  |   {ERR_REASON(BIO_R_UNABLE_TO_LISTEN_SOCKET), "unable to listen socket"}, | 
101  |  |   {ERR_REASON(BIO_R_UNINITIALIZED)         , "uninitialized"}, | 
102  |  |   {ERR_REASON(BIO_R_UNSUPPORTED_METHOD)    , "unsupported method"}, | 
103  |  |   {ERR_REASON(BIO_R_WRITE_TO_READ_ONLY_BIO), "write to read only BIO"}, | 
104  |  |   {ERR_REASON(BIO_R_WSASTARTUP)            , "WSAStartup"}, | 
105  |  |   {0, NULL} | 
106  |  | };  | 
107  |  |  | 
108  |  | #endif  | 
109  |  |  | 
110  |  | void  | 
111  |  | ERR_load_BIO_strings(void)  | 
112  | 2  | { | 
113  | 2  | #ifndef OPENSSL_NO_ERR  | 
114  | 2  |   if (ERR_func_error_string(BIO_str_functs[0].error) == NULL) { | 
115  | 2  |     ERR_load_strings(0, BIO_str_functs);  | 
116  | 2  |     ERR_load_strings(0, BIO_str_reasons);  | 
117  | 2  |   }  | 
118  | 2  | #endif  | 
119  | 2  | }  |