summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>1999-06-08 10:18:48 +0000
committerBodo Möller <bodo@openssl.org>1999-06-08 10:18:48 +0000
commitc035b0c3b2544e22febfb6b2309eaafb93f54fb4 (patch)
treeed3e59fa97758bbb729951b07cf0adfc61d801eb /crypto
parentf0588887388b186d6dc911a0d1f6d7dfb11fcdb0 (diff)
"request" added.
Diffstat (limited to 'crypto')
-rw-r--r--crypto/bio/bss_bio.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/crypto/bio/bss_bio.c b/crypto/bio/bss_bio.c
index 0ad55e0e53..4636665c8c 100644
--- a/crypto/bio/bss_bio.c
+++ b/crypto/bio/bss_bio.c
@@ -45,16 +45,20 @@ BIO_METHOD *BIO_s_bio(void)
struct bio_bio_st
{
BIO *peer; /* NULL if buf == NULL.
- * If peer != NULL, then peer->ptr is also a bio_bio_st,
- * and its "peer" member points back to us.
- * peer != NULL iff init != 0 in the BIO. */
+ * If peer != NULL, then peer->ptr is also a bio_bio_st,
+ * and its "peer" member points back to us.
+ * peer != NULL iff init != 0 in the BIO. */
/* This is for what we write (i.e. reading uses peer's struct): */
- int closed; /* valid iff peer != NULL */
- size_t len; /* valid iff buf != NULL; 0 if peer == NULL */
- size_t offset; /* valid iff buf != NULL; 0 if len == 0 */
+ int closed; /* valid iff peer != NULL */
+ size_t len; /* valid iff buf != NULL; 0 if peer == NULL */
+ size_t offset; /* valid iff buf != NULL; 0 if len == 0 */
size_t size;
- char *buf; /* "size" elements (if != NULL) */
+ char *buf; /* "size" elements (if != NULL) */
+
+ size_t request; /* valid iff peer != NULL; 0 if len != 0;
+ * otherwise set by peer to number of bytes
+ * it (unsuccesfully) tried to read. */
};
static int bio_new(BIO *bio)
@@ -124,6 +128,7 @@ static long bio_ctrl(BIO *bio, int cmd, long num, char *ptr)
/* - make pair */
/* - destroy pair */
/* - get number of bytes that the next write will accept */
+ /* - get number of bytes requested by peer */
/* - send "close" */
case BIO_CTRL_RESET:
@@ -164,6 +169,8 @@ static long bio_ctrl(BIO *bio, int cmd, long num, char *ptr)
case BIO_CTRL_DUP:
/* XXX */
+ ret = 1;
+ break;
case BIO_CTRL_FLUSH:
ret = 1;
@@ -223,7 +230,11 @@ static int bio_make_pair(BIO *bio1, BIO *bio2)
}
b1->peer = bio2;
+ b1->closed = 0;
+ b1->request = 0;
b2->peer = bio1;
+ b2->closed = 0;
+ b2->request = 0;
bio1->init = 1;
bio2->init = 1;