diff options
author | Matt Caswell <matt@openssl.org> | 2016-10-20 09:56:18 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-10-28 09:48:54 +0100 |
commit | b055fceb9bd8f613f39dab9df4d77b2a95231755 (patch) | |
tree | a772ae80ddbbc7e830c380ff30f7ceb453cd2e2f /doc/man3/BIO_set_callback.pod | |
parent | 98e553d2ce31e2179be68d6a60b5bec765cd9768 (diff) |
Document the new BIO functions introduced as part of the size_t work
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'doc/man3/BIO_set_callback.pod')
-rw-r--r-- | doc/man3/BIO_set_callback.pod | 135 |
1 files changed, 112 insertions, 23 deletions
diff --git a/doc/man3/BIO_set_callback.pod b/doc/man3/BIO_set_callback.pod index 113b416488..6e5656fb73 100644 --- a/doc/man3/BIO_set_callback.pod +++ b/doc/man3/BIO_set_callback.pod @@ -2,17 +2,23 @@ =head1 NAME -BIO_set_callback, BIO_get_callback, BIO_set_callback_arg, BIO_get_callback_arg, -BIO_debug_callback - BIO callback functions +BIO_set_callback_ex, BIO_get_callback_ex, BIO_set_callback, BIO_get_callback, +BIO_set_callback_arg, BIO_get_callback_arg, BIO_debug_callback +- BIO callback functions =head1 SYNOPSIS #include <openssl/bio.h> - + typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, + size_t len, int argi, + long argl, int ret, size_t *processed); typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, long argl, long ret); + void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); + BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); + void BIO_set_callback(BIO *b, BIO_callack_fn cb); BIO_callack_fn BIO_get_callback(BIO *b); void BIO_set_callback_arg(BIO *b, char *arg); @@ -23,10 +29,15 @@ BIO_debug_callback - BIO callback functions =head1 DESCRIPTION -BIO_set_callback() and BIO_get_callback() set and retrieve the BIO callback, -they are both macros. The callback is called during most high level BIO -operations. It can be used for debugging purposes to trace operations on -a BIO or to modify its operation. +BIO_set_callback_ex() and BIO_get_callback_ex() set and retrieve the BIO +callback. The callback is called during most high level BIO operations. It can +be used for debugging purposes to trace operations on a BIO or to modify its +operation. + +BIO_set_callback() and BIO_get_callback() set and retrieve the old format BIO +callback. New code should not use these functions, but they are retained for +backwards compatbility. Any callback set via BIO_set_callback_ex() will get +called in preference to any set by BIO_set_callback(). BIO_set_callback_arg() and BIO_get_callback_arg() are macros which can be used to set and retrieve an argument for use in the callback. @@ -36,8 +47,9 @@ out information relating to each BIO operation. If the callback argument is set it is interpreted as a BIO to send the information to, otherwise stderr is used. -BIO_callback_fn() is the type of the callback function. The meaning of each -argument is described below: +BIO_callback_fn_ex() is the type of the callback function and BIO_callback_fn() +is the type of the old format callback function. The meaning of each argument +is described below: =over @@ -51,11 +63,22 @@ B<oper> is set to the operation being performed. For some operations the callback is called twice, once before and once after the actual operation, the latter case has B<oper> or'ed with BIO_CB_RETURN. +=item B<len> + +The length of the data requested to be read or written. This is only useful if +B<oper> is BIO_CB_READ, BIO_CB_WRITE or BIO_CB_GETS. + =item B<argp> B<argi> B<argl> The meaning of the arguments B<argp>, B<argi> and B<argl> depends on the value of B<oper>, that is the operation being performed. +=item B<processed> + +B<processed> is a pointer to a location which will be updated with the amount of +data that was actually read or written. Only used for BIO_CB_READ, BIO_CB_WRITE, +BIO_CB_GETS and BIO_CB_PUTS. + =item B<ret> B<ret> is the return value that would be returned to the @@ -80,37 +103,103 @@ function that is called. =item B<BIO_free(b)> -callback(b, BIO_CB_FREE, NULL, 0L, 0L, 1L) is called before the -free operation. + callback_ex(b, BIO_CB_FREE, NULL, 0, 0, 0L, 1L, NULL) + +or + + callback(b, BIO_CB_FREE, NULL, 0L, 0L, 1L) + +is called before the free operation. + +=item B<BIO_read_ex(b, out, outl, read)> -=item B<BIO_read(b, out, outl)> + callback_ex(b, BIO_CB_READ, out, outl, 0, 0L, 1L, read) + +or + + callback(b, BIO_CB_READ, out, outl, 0L, 1L) + +is called before the read and + + callback_ex(b, BIO_CB_READ | BIO_CB_RETURN, out, outl, 0, 0L, retvalue, read) + +or + + callback(b, BIO_CB_READ|BIO_CB_RETURN, out, outl, 0L, retvalue) -callback(b, BIO_CB_READ, out, outl, 0L, 1L) is called before -the read and callback(b, BIO_CB_READ|BIO_CB_RETURN, out, outl, 0L, retvalue) after. -=item B<BIO_write(b, in, inl)> +=item B<BIO_write(b, in, inl, written)> + + callback_ex(b, BIO_CB_WRITE, in, inl, 0, 0L, 1L, written) + +or + + callback(b, BIO_CB_WRITE, in, inl, 0L, 1L) + +is called before the write and + + callback_ex(b, BIO_CB_WRITE | BIO_CB_RETURN, in, inl, 0, 0L, retvalue, written) + +or + + callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, inl, 0L, retvalue) -callback(b, BIO_CB_WRITE, in, inl, 0L, 1L) is called before -the write and callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, inl, 0L, retvalue) after. =item B<BIO_gets(b, out, outl)> -callback(b, BIO_CB_GETS, out, outl, 0L, 1L) is called before -the operation and callback(b, BIO_CB_GETS|BIO_CB_RETURN, out, outl, 0L, retvalue) + callback_ex(b, BIO_CB_GETS, out, outl, 0, 0L, 1, NULL, NULL) + +or + + callback(b, BIO_CB_GETS, out, outl, 0L, 1L) + +is called before the operation and + + callback_ex(b, BIO_CB_GETS | BIO_CB_RETURN, out, outl, 0, 0L, retvalue, read) + +or + + callback(b, BIO_CB_GETS|BIO_CB_RETURN, out, outl, 0L, retvalue) + after. =item B<BIO_puts(b, in)> -callback(b, BIO_CB_WRITE, in, 0, 0L, 1L) is called before -the operation and callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, 0, 0L, retvalue) + callback_ex(b, BIO_CB_PUTS, in, 0, 0, 0L, 1L, NULL); + +or + + callback(b, BIO_CB_PUTS, in, 0, 0L, 1L) + +is called before the operation and + + callback_ex(b, BIO_CB_PUTS | BIO_CB_RETURN, in, 0, 0, 0L, retvalue, written) + +or + + callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, 0, 0L, retvalue) + after. =item B<BIO_ctrl(BIO *b, int cmd, long larg, void *parg)> -callback(b, BIO_CB_CTRL, parg, cmd, larg, 1L) is called before the call and -callback(b, BIO_CB_CTRL|BIO_CB_RETURN, parg, cmd, larg, ret) after. + callback_ex(b, BIO_CB_CTRL, parg, 0, cmd, larg, 1L, NULL) + +or + + callback(b, BIO_CB_CTRL, parg, cmd, larg, 1L) + +is called before the call and + + callback_ex(b, BIO_CB_CTRL | BIO_CB_RETURN, parg, 0, cmd, larg, ret, NULL) + +or + + callback(b, BIO_CB_CTRL|BIO_CB_RETURN, parg, cmd, larg, ret) + +after. =back |