5 ERR_get_error, ERR_peek_error, ERR_peek_last_error,
6 ERR_get_error_line, ERR_peek_error_line, ERR_peek_last_error_line,
7 ERR_get_error_line_data, ERR_peek_error_line_data,
8 ERR_peek_last_error_line_data - obtain error code and data
12 #include <openssl/err.h>
14 unsigned long ERR_get_error(void);
15 unsigned long ERR_peek_error(void);
16 unsigned long ERR_peek_last_error(void);
18 unsigned long ERR_get_error_line(const char **file, int *line);
19 unsigned long ERR_peek_error_line(const char **file, int *line);
20 unsigned long ERR_peek_last_error_line(const char **file, int *line);
22 unsigned long ERR_get_error_line_data(const char **file, int *line,
23 const char **data, int *flags);
24 unsigned long ERR_peek_error_line_data(const char **file, int *line,
25 const char **data, int *flags);
26 unsigned long ERR_peek_last_error_line_data(const char **file, int *line,
27 const char **data, int *flags);
31 ERR_get_error() returns the earliest error code from the thread's error
32 queue and removes the entry. This function can be called repeatedly
33 until there are no more error codes to return.
35 ERR_peek_error() returns the earliest error code from the thread's
36 error queue without modifying it.
38 ERR_peek_last_error() returns the latest error code from the thread's
39 error queue without modifying it.
41 See L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> for obtaining information about
42 location and reason of the error, and
43 L<ERR_error_string(3)|ERR_error_string(3)> for human-readable error
46 ERR_get_error_line(), ERR_peek_error_line() and
47 ERR_peek_last_error_line() are the same as the above, but they
48 additionally store the file name and line number where
49 the error occurred in *B<file> and *B<line>, unless these are B<NULL>.
51 ERR_get_error_line_data(), ERR_peek_error_line_data() and
52 ERR_get_last_error_line_data() store additional data and flags
53 associated with the error code in *B<data>
54 and *B<flags>, unless these are B<NULL>. *B<data> contains a string
55 if *B<flags>&B<ERR_TXT_STRING> is true.
57 An application B<MUST NOT> free the *B<data> pointer (or any other pointers
58 returned by these functions) with OPENSSL_free() as freeing is handled
59 automatically by the error library.
63 The error code, or 0 if there is no error in the queue.
67 L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
68 L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
72 ERR_get_error(), ERR_peek_error(), ERR_get_error_line() and
73 ERR_peek_error_line() are available in all versions of SSLeay and
74 OpenSSL. ERR_get_error_line_data() and ERR_peek_error_line_data()
75 were added in SSLeay 0.9.0.
76 ERR_peek_last_error(), ERR_peek_last_error_line() and
77 ERR_peek_last_error_line_data() were added in OpenSSL 0.9.7.