2000-02-01 09:37:00 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2021-07-06 16:54:39 +08:00
|
|
|
ERR_GET_LIB, ERR_GET_REASON, ERR_FATAL_ERROR
|
2016-12-13 00:14:40 +08:00
|
|
|
- get information from error codes
|
2000-02-01 09:37:00 +08:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/err.h>
|
|
|
|
|
|
|
|
int ERR_GET_LIB(unsigned long e);
|
|
|
|
|
|
|
|
int ERR_GET_REASON(unsigned long e);
|
|
|
|
|
2016-12-09 02:01:31 +08:00
|
|
|
int ERR_FATAL_ERROR(unsigned long e);
|
|
|
|
|
2000-02-01 09:37:00 +08:00
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
The error code returned by ERR_get_error() consists of a library
|
2021-08-19 02:57:57 +08:00
|
|
|
number and reason code. ERR_GET_LIB()
|
2000-02-01 09:37:00 +08:00
|
|
|
and ERR_GET_REASON() can be used to extract these.
|
|
|
|
|
2016-12-09 02:01:31 +08:00
|
|
|
ERR_FATAL_ERROR() indicates whether a given error code is a fatal error.
|
|
|
|
|
2021-08-19 02:57:57 +08:00
|
|
|
The library number describes where the error
|
2000-02-01 09:37:00 +08:00
|
|
|
occurred, the reason code is the information about what went wrong.
|
|
|
|
|
2021-08-19 02:57:57 +08:00
|
|
|
Each sub-library of OpenSSL has a unique library number; the
|
|
|
|
reason code is unique within each sub-library. Note that different
|
|
|
|
libraries may use the same value to signal different reasons.
|
2000-02-01 09:37:00 +08:00
|
|
|
|
|
|
|
B<ERR_R_...> reason codes such as B<ERR_R_MALLOC_FAILURE> are globally
|
|
|
|
unique. However, when checking for sub-library specific reason codes,
|
|
|
|
be sure to also compare the library number.
|
|
|
|
|
2021-07-06 16:54:39 +08:00
|
|
|
ERR_GET_LIB(), ERR_GET_REASON(), and ERR_FATAL_ERROR() are macros.
|
2000-02-01 09:37:00 +08:00
|
|
|
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
2021-08-19 02:57:57 +08:00
|
|
|
The library number, reason code, and whether the error
|
2016-12-09 02:01:31 +08:00
|
|
|
is fatal, respectively.
|
2019-06-01 01:52:45 +08:00
|
|
|
Starting with OpenSSL 3.0.0, the function code is always set to zero.
|
2000-02-01 09:37:00 +08:00
|
|
|
|
2023-01-11 01:54:51 +08:00
|
|
|
=head1 NOTES
|
|
|
|
|
|
|
|
Applications should not make control flow decisions based on specific error
|
|
|
|
codes. Error codes are subject to change at any time (even in patch releases of
|
|
|
|
OpenSSL). A particular error code can only be considered meaningful for control
|
|
|
|
flow decisions if it is explicitly documented as such. New failure codes may
|
|
|
|
still appear at any time.
|
|
|
|
|
2000-02-01 09:37:00 +08:00
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2017-03-02 23:07:21 +08:00
|
|
|
L<ERR_get_error(3)>
|
2000-02-01 09:37:00 +08:00
|
|
|
|
|
|
|
=head1 HISTORY
|
|
|
|
|
2021-07-06 16:54:39 +08:00
|
|
|
ERR_GET_LIB() and ERR_GET_REASON() are available in all versions of OpenSSL.
|
|
|
|
|
|
|
|
ERR_GET_FUNC() was removed in OpenSSL 3.0.
|
2000-02-01 09:37:00 +08:00
|
|
|
|
2016-05-18 23:44:05 +08:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2023-09-07 16:59:15 +08:00
|
|
|
Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved.
|
2016-05-18 23:44:05 +08:00
|
|
|
|
2018-12-06 21:04:44 +08:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-05-18 23:44:05 +08:00
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|