New ctrl to set current certificate.
[openssl.git] / doc / crypto / BIO_ctrl.pod
index dfec0196146e871aafb555f2493db58271c0ad95..722e8b8f46c9c5b202bb4283338e7411d582f2d7 100644 (file)
@@ -2,7 +2,10 @@
 
 =head1 NAME
 
 
 =head1 NAME
 
-       BIO_ctrl, BIO_callback_ctrl, BIO_ptr_ctrl, BIO_int_ctrl - BIO control operations
+BIO_ctrl, BIO_callback_ctrl, BIO_ptr_ctrl, BIO_int_ctrl, BIO_reset,
+BIO_seek, BIO_tell, BIO_flush, BIO_eof, BIO_set_close, BIO_get_close,
+BIO_pending, BIO_wpending, BIO_ctrl_pending, BIO_ctrl_wpending,
+BIO_get_info_callback, BIO_set_info_callback - BIO control operations
 
 =head1 SYNOPSIS
 
 
 =head1 SYNOPSIS
 
@@ -14,6 +17,8 @@
  long BIO_int_ctrl(BIO *bp,int cmd,long larg,int iarg);
 
  int BIO_reset(BIO *b);
  long BIO_int_ctrl(BIO *bp,int cmd,long larg,int iarg);
 
  int BIO_reset(BIO *b);
+ int BIO_seek(BIO *b, int ofs);
+ int BIO_tell(BIO *b);
  int BIO_flush(BIO *b);
  int BIO_eof(BIO *b);
  int BIO_set_close(BIO *b,long flag);
  int BIO_flush(BIO *b);
  int BIO_eof(BIO *b);
  int BIO_set_close(BIO *b,long flag);
@@ -38,8 +43,14 @@ specific to a particular type of BIO are described in the specific
 BIOs manual page as well as any special features of the standard
 calls.
 
 BIOs manual page as well as any special features of the standard
 calls.
 
-BIO_reset() typically reset a BIO to some initial state, in the case
-of file related BIOs for example it rewinds the file pointer.
+BIO_reset() typically resets a BIO to some initial state, in the case
+of file related BIOs for example it rewinds the file pointer to the
+start of the file.
+
+BIO_seek() resets a file related BIO's (that is file descriptor and
+FILE BIOs) file position pointer to B<ofs> bytes from start of file.
+
+BIO_tell() returns the current file position of a file related BIO.
 
 BIO_flush() normally writes out any internally buffered data, in some
 cases it is used to signal EOF and that no more data will be written.
 
 BIO_flush() normally writes out any internally buffered data, in some
 cases it is used to signal EOF and that no more data will be written.
@@ -55,14 +66,19 @@ be closed when the BIO is freed.
 BIO_get_close() returns the BIOs close flag.
 
 BIO_pending(), BIO_ctrl_pending(), BIO_wpending() and BIO_ctrl_wpending()
 BIO_get_close() returns the BIOs close flag.
 
 BIO_pending(), BIO_ctrl_pending(), BIO_wpending() and BIO_ctrl_wpending()
-return the number of pending characterers in the BIOs read and write buffers.
+return the number of pending characters in the BIOs read and write buffers.
 Not all BIOs support these calls. BIO_ctrl_pending() and BIO_ctrl_wpending()
 return a size_t type and are functions, BIO_pending() and BIO_wpending() are
 macros which call BIO_ctrl().
 
 =head1 RETURN VALUES
 
 Not all BIOs support these calls. BIO_ctrl_pending() and BIO_ctrl_wpending()
 return a size_t type and are functions, BIO_pending() and BIO_wpending() are
 macros which call BIO_ctrl().
 
 =head1 RETURN VALUES
 
-BIO_reset() returns 1 fo success and 0 for failure.
+BIO_reset() normally returns 1 for success and 0 or -1 for failure. File
+BIOs are an exception, they return 0 for success and -1 for failure.
+
+BIO_seek() and BIO_tell() both return the current file position on success
+and -1 for failure, except file BIOs which for BIO_seek() always return 0
+for success and -1 for failure.
 
 BIO_flush() returns 1 for success and 0 or -1 for failure.
 
 
 BIO_flush() returns 1 for success and 0 or -1 for failure.
 
@@ -88,6 +104,25 @@ case of a file BIO some data may be available in the FILE structures
 internal buffers but it is not possible to determine this in a
 portably way. For other types of BIO they may not be supported.
 
 internal buffers but it is not possible to determine this in a
 portably way. For other types of BIO they may not be supported.
 
+Filter BIOs if they do not internally handle a particular BIO_ctrl()
+operation usually pass the operation to the next BIO in the chain.
+This often means there is no need to locate the required BIO for
+a particular operation, it can be called on a chain and it will
+be automatically passed to the relevant BIO. However this can cause
+unexpected results: for example no current filter BIOs implement
+BIO_seek(), but this may still succeed if the chain ends in a FILE
+or file descriptor BIO.
+
+Source/sink BIOs return an 0 if they do not recognize the BIO_ctrl()
+operation.
+
+=head1 BUGS
+
+Some of the return values are ambiguous and care should be taken. In
+particular a return value of 0 can be returned if an operation is not
+supported, if an error occurred, if EOF has not been reached and in
+the case of BIO_seek() on a file BIO for a successful operation. 
+
 =head1 SEE ALSO
 
 TBA
 =head1 SEE ALSO
 
 TBA