Manual Page Result
0
Command: SMIME_crlf_copy | Section: 3 | Source: OpenBSD | File: SMIME_crlf_copy.3
SMIME_CRLF_COPY(3) FreeBSD Library Functions Manual SMIME_CRLF_COPY(3)
NAME
SMIME_crlf_copy - buffered copy between BIOs
SYNOPSIS
int
SMIME_crlf_copy(BIO *in_bio, BIO *out_bio, int flags);
DESCRIPTION
SMIME_crlf_copy() copies data from in_bio to out_bio. To avoid many
small write operations on out_bio, a buffering BIO created with
BIO_f_buffer(3) is temporarily prepended to it.
If the bit SMIME_BINARY is set in the flags argument, all the data is
copied verbatim using BIO_read(3) and BIO_write(3).
Otherwise, the data is read as text. All trailing carriage return and
newline characters are discarded from every input line and a single pair
of carriage return and newline characters is appended to mark the end of
every output line, except that the last output line will end without such
a pair if the last input line does not have a newline character at the
end.
If the bit SMIME_TEXT is set in the flags argument and the bit
SMIME_BINARY is not set, the line "Content-Type: text/plain" is prepended
to the output with two pairs of carriage return and newline characters
after it.
In any case, BIO_flush(3) is called on the output at the end of the
function.
RETURN VALUES
SMIME_crlf_copy() is intended to return 1 on success or 0 on failure.
SEE ALSO
BIO_f_buffer(3), BIO_flush(3), BIO_new(3), BIO_push(3), BIO_read(3),
SMIME_text(3), SMIME_write_ASN1(3)
HISTORY
SMIME_crlf_copy() first appeared in OpenSSL 1.0.0 and has been available
since OpenBSD 4.9.
BUGS
SMIME_crlf_copy() silently ignores most errors and may return 1 even if
it lost part or all of the data in transit.
Only blocking BIOs are supported. If any of the BIO arguments is non-
blocking, part or all of the data is likely to be silently lost in
transit.
FreeBSD 14.1-RELEASE-p8 May 1, 2023 FreeBSD 14.1-RELEASE-p8