Ejemplo n.º 1
0
int
tls_set_error_libssl(struct tls *ctx, const char *fmt, ...)
{
	va_list ap;
	int rv;
	const char *msg = NULL;
	char *old;
	int err;

	err = ERR_peek_error();
	if (err != 0)
		msg = ERR_reason_error_string(err);

	va_start(ap, fmt);
	rv = tls_set_verror(ctx, -1, fmt, ap);
	va_end(ap);
	if (rv != 0 || msg == NULL)
		return rv;

	old = ctx->errmsg;
	ctx->errmsg = NULL;
	if (asprintf(&ctx->errmsg, "%s: %s", old, msg) == -1) {
		ctx->errmsg = old;
		return 0;
	}
	free(old);

	return 0;
}
Ejemplo n.º 2
0
int
tls_set_errorx(struct tls *ctx, const char *fmt, ...)
{
	va_list ap;
	int rv;

	va_start(ap, fmt);
	rv = tls_set_verror(ctx, -1, fmt, ap);
	va_end(ap);

	return (rv);
}
Ejemplo n.º 3
0
int
tls_set_error(struct tls *ctx, const char *fmt, ...)
{
	va_list ap;
	int rv;

	ctx->errnum = errno;

	va_start(ap, fmt);
	rv = tls_set_verror(ctx, ctx->errnum, fmt, ap);
	va_end(ap);

	return (rv);
}