diff options
author | beck <> | 2000-03-19 11:13:58 +0000 |
---|---|---|
committer | beck <> | 2000-03-19 11:13:58 +0000 |
commit | 796d609550df3a33fc11468741c5d2f6d3df4c11 (patch) | |
tree | 6c6d539061caa20372dad0ac4ddb1dfae2fbe7fe /src/lib/libssl/bio_ssl.c | |
parent | 5be3114c1fd7e0dfea1e38d3abb4cbba75244419 (diff) | |
download | openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.gz openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.bz2 openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.zip |
OpenSSL 0.9.5 merge
*warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2
if you are using the ssl26 packages for ssh and other things to work you will
need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
Diffstat (limited to 'src/lib/libssl/bio_ssl.c')
-rw-r--r-- | src/lib/libssl/bio_ssl.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/lib/libssl/bio_ssl.c b/src/lib/libssl/bio_ssl.c index f62cde4e5d..d73c41adcd 100644 --- a/src/lib/libssl/bio_ssl.c +++ b/src/lib/libssl/bio_ssl.c | |||
@@ -71,6 +71,7 @@ static int ssl_puts(BIO *h,char *str); | |||
71 | static long ssl_ctrl(BIO *h,int cmd,long arg1,char *arg2); | 71 | static long ssl_ctrl(BIO *h,int cmd,long arg1,char *arg2); |
72 | static int ssl_new(BIO *h); | 72 | static int ssl_new(BIO *h); |
73 | static int ssl_free(BIO *data); | 73 | static int ssl_free(BIO *data); |
74 | static long ssl_callback_ctrl(BIO *h,int cmd,void (*fp)()); | ||
74 | typedef struct bio_ssl_st | 75 | typedef struct bio_ssl_st |
75 | { | 76 | { |
76 | SSL *ssl; /* The ssl handle :-) */ | 77 | SSL *ssl; /* The ssl handle :-) */ |
@@ -92,6 +93,7 @@ static BIO_METHOD methods_sslp= | |||
92 | ssl_ctrl, | 93 | ssl_ctrl, |
93 | ssl_new, | 94 | ssl_new, |
94 | ssl_free, | 95 | ssl_free, |
96 | ssl_callback_ctrl, | ||
95 | }; | 97 | }; |
96 | 98 | ||
97 | BIO_METHOD *BIO_f_ssl(void) | 99 | BIO_METHOD *BIO_f_ssl(void) |
@@ -444,7 +446,14 @@ static long ssl_ctrl(BIO *b, int cmd, long num, char *ptr) | |||
444 | ret=BIO_ctrl(ssl->rbio,cmd,num,ptr); | 446 | ret=BIO_ctrl(ssl->rbio,cmd,num,ptr); |
445 | break; | 447 | break; |
446 | case BIO_CTRL_SET_CALLBACK: | 448 | case BIO_CTRL_SET_CALLBACK: |
447 | SSL_set_info_callback(ssl,(void (*)())ptr); | 449 | { |
450 | #if 0 /* FIXME: Should this be used? -- Richard Levitte */ | ||
451 | BIOerr(SSL_F_SSL_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
452 | ret = -1; | ||
453 | #else | ||
454 | ret=0; | ||
455 | #endif | ||
456 | } | ||
448 | break; | 457 | break; |
449 | case BIO_CTRL_GET_CALLBACK: | 458 | case BIO_CTRL_GET_CALLBACK: |
450 | { | 459 | { |
@@ -461,6 +470,28 @@ static long ssl_ctrl(BIO *b, int cmd, long num, char *ptr) | |||
461 | return(ret); | 470 | return(ret); |
462 | } | 471 | } |
463 | 472 | ||
473 | static long ssl_callback_ctrl(BIO *b, int cmd, void (*fp)()) | ||
474 | { | ||
475 | SSL *ssl; | ||
476 | BIO_SSL *bs; | ||
477 | long ret=1; | ||
478 | |||
479 | bs=(BIO_SSL *)b->ptr; | ||
480 | ssl=bs->ssl; | ||
481 | switch (cmd) | ||
482 | { | ||
483 | case BIO_CTRL_SET_CALLBACK: | ||
484 | { | ||
485 | SSL_set_info_callback(ssl,fp); | ||
486 | } | ||
487 | break; | ||
488 | default: | ||
489 | ret=BIO_callback_ctrl(ssl->rbio,cmd,fp); | ||
490 | break; | ||
491 | } | ||
492 | return(ret); | ||
493 | } | ||
494 | |||
464 | static int ssl_puts(BIO *bp, char *str) | 495 | static int ssl_puts(BIO *bp, char *str) |
465 | { | 496 | { |
466 | int n,ret; | 497 | int n,ret; |