BIO pairs.
[openssl.git] / crypto / bio / bio_lib.c
index 62d2699..b72688e 100644 (file)
@@ -290,7 +290,7 @@ char *BIO_ptr_ctrl(BIO *b, int cmd, long larg)
                return(p);
        }
 
-long BIO_ctrl(BIO *b, int cmd, long larg, char *parg)
+long BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
        {
        long ret;
        long (*cb)();
@@ -317,6 +317,20 @@ long BIO_ctrl(BIO *b, int cmd, long larg, char *parg)
        return(ret);
        }
 
+/* It is unfortunate to duplicate in functions what the BIO_(w)pending macros
+ * do; but those macros have inappropriate return type, and for interfacing
+ * from other programming languages, C macros aren't much of a help anyway. */
+size_t BIO_ctrl_pending(BIO *bio)
+    {
+       return BIO_ctrl(bio, BIO_CTRL_PENDING, 0, NULL);
+       }
+
+size_t BIO_ctrl_wpending(BIO *bio)
+    {
+       return BIO_ctrl(bio, BIO_CTRL_WPENDING, 0, NULL);
+       }
+
+
 /* put the 'bio' on the end of b's list of operators */
 BIO *BIO_push(BIO *b, BIO *bio)
        {