Loading crypto/err/err.h +2 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,8 @@ void ERR_error_string_n(unsigned long e, char *buf, size_t len); const char *ERR_lib_error_string(unsigned long e); const char *ERR_func_error_string(unsigned long e); const char *ERR_reason_error_string(unsigned long e); void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u); #ifndef OPENSSL_NO_FP_API void ERR_print_errors_fp(FILE *fp); #endif Loading crypto/err/err_prn.c +27 −23 Original line number Diff line number Diff line Loading @@ -64,11 +64,12 @@ #include <openssl/err.h> #include <openssl/crypto.h> #ifndef OPENSSL_NO_FP_API void ERR_print_errors_fp(FILE *fp) void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u) { unsigned long l; char buf[200]; char buf[256]; char buf2[4096]; const char *file,*data; int line,flags; unsigned long es; Loading @@ -77,31 +78,34 @@ void ERR_print_errors_fp(FILE *fp) while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) { ERR_error_string_n(l, buf, sizeof buf); fprintf(fp,"%lu:%s:%s:%d:%s\n",es,buf, BIO_snprintf(buf2, sizeof(buf2), "%lu:%s:%s:%d:%s\n", es, buf, file, line, (flags & ERR_TXT_STRING) ? data : ""); cb(buf2, strlen(buf2), u); } } #endif void ERR_print_errors(BIO *bp) #ifndef OPENSSL_NO_FP_API static int print_fp(const char *str, size_t len, FILE *fp) { unsigned long l; char buf[256]; char buf2[256]; const char *file,*data; int line,flags; unsigned long es; return fprintf(fp, "%s", str); } void ERR_print_errors_fp(FILE *fp) { ERR_print_errors_cb( (int (*)(const char *, size_t, void *))print_fp, (void *)fp); } #endif es=CRYPTO_thread_id(); while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) static int print_bio(const char *str, size_t len, BIO *bp) { ERR_error_string_n(l, buf, sizeof buf); sprintf(buf2,"%lu:%s:%s:%d:",es,buf, file,line); BIO_write(bp,buf2,strlen(buf2)); if (flags & ERR_TXT_STRING) BIO_write(bp,data,strlen(data)); BIO_write(bp,"\n",1); return BIO_write(bp, str, len); } void ERR_print_errors(BIO *bp) { ERR_print_errors_cb( (int (*)(const char *, size_t, void *))print_bio, (void *)bp); } Loading
crypto/err/err.h +2 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,8 @@ void ERR_error_string_n(unsigned long e, char *buf, size_t len); const char *ERR_lib_error_string(unsigned long e); const char *ERR_func_error_string(unsigned long e); const char *ERR_reason_error_string(unsigned long e); void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u); #ifndef OPENSSL_NO_FP_API void ERR_print_errors_fp(FILE *fp); #endif Loading
crypto/err/err_prn.c +27 −23 Original line number Diff line number Diff line Loading @@ -64,11 +64,12 @@ #include <openssl/err.h> #include <openssl/crypto.h> #ifndef OPENSSL_NO_FP_API void ERR_print_errors_fp(FILE *fp) void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u) { unsigned long l; char buf[200]; char buf[256]; char buf2[4096]; const char *file,*data; int line,flags; unsigned long es; Loading @@ -77,31 +78,34 @@ void ERR_print_errors_fp(FILE *fp) while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) { ERR_error_string_n(l, buf, sizeof buf); fprintf(fp,"%lu:%s:%s:%d:%s\n",es,buf, BIO_snprintf(buf2, sizeof(buf2), "%lu:%s:%s:%d:%s\n", es, buf, file, line, (flags & ERR_TXT_STRING) ? data : ""); cb(buf2, strlen(buf2), u); } } #endif void ERR_print_errors(BIO *bp) #ifndef OPENSSL_NO_FP_API static int print_fp(const char *str, size_t len, FILE *fp) { unsigned long l; char buf[256]; char buf2[256]; const char *file,*data; int line,flags; unsigned long es; return fprintf(fp, "%s", str); } void ERR_print_errors_fp(FILE *fp) { ERR_print_errors_cb( (int (*)(const char *, size_t, void *))print_fp, (void *)fp); } #endif es=CRYPTO_thread_id(); while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) static int print_bio(const char *str, size_t len, BIO *bp) { ERR_error_string_n(l, buf, sizeof buf); sprintf(buf2,"%lu:%s:%s:%d:",es,buf, file,line); BIO_write(bp,buf2,strlen(buf2)); if (flags & ERR_TXT_STRING) BIO_write(bp,data,strlen(data)); BIO_write(bp,"\n",1); return BIO_write(bp, str, len); } void ERR_print_errors(BIO *bp) { ERR_print_errors_cb( (int (*)(const char *, size_t, void *))print_bio, (void *)bp); }