/* SPDX-License-Identifier: LGPL-2.1+ */ | |
/* | |
* SSL helper functions shared by sign-file and extract-cert. | |
*/ | |
static void drain_openssl_errors(int l, int silent) | |
{ | |
const char *file; | |
char buf[120]; | |
int e, line; | |
if (ERR_peek_error() == 0) | |
return; | |
if (!silent) | |
fprintf(stderr, "At main.c:%d:\n", l); | |
while ((e = ERR_peek_error_line(&file, &line))) { | |
ERR_error_string(e, buf); | |
if (!silent) | |
fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line); | |
ERR_get_error(); | |
} | |
} | |
#define ERR(cond, fmt, ...) \ | |
do { \ | |
bool __cond = (cond); \ | |
drain_openssl_errors(__LINE__, 0); \ | |
if (__cond) { \ | |
errx(1, fmt, ## __VA_ARGS__); \ | |
} \ | |
} while (0) |