Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use BIO_should_retry in flush #120

Merged
merged 3 commits into from
May 27, 2023
Merged

Use BIO_should_retry in flush #120

merged 3 commits into from
May 27, 2023

Conversation

craff
Copy link
Contributor

@craff craff commented May 27, 2023

No description provided.

@craff craff mentioned this pull request May 27, 2023
anmonteiro
anmonteiro approved these changes May 27, 2023
@anmonteiro anmonteiro merged commit ce6dc62 into savonet:master May 27, 2023
anmonteiro added a commit to anmonteiro/opam-repository that referenced this pull request Jun 2, 2023
CHANGES:

- Raise an error when `Ssl.flush` isn't successful (savonet/ocaml-ssl#104, savonet/ocaml-ssl#120)
- Add an API-compatible `Ssl.Runtime_lock` module. The functions in this module
  don't release the OCaml runtime lock. While they don't allow other OCaml
  threads to run concurrently, they don't perform any copying in the underlying
  data, leading certain workloads to be faster than their counterparts that
  release the lock. (savonet/ocaml-ssl#106)
- Guarantee `Ssl.output_string` writes the whole string by retrying the
  operation with unwritten bytes (savonet/ocaml-ssl#103, savonet/ocaml-ssl#116)
- Fix calls in C stubs that need to call `ERR_clear_error` before the underlying
  OpenSSL call (savonet/ocaml-ssl#118)
- Add a module `Ssl.Error` to retrieve OpenSSL errors in a structured way (savonet/ocaml-ssl#119)
- Deprecate Ssl.{SSLv23,SSLv3,TLSv1,TLSv1_1}, which were were formally
  deprecated in March 2021 and earlier (savonet/ocaml-ssl#115).
anmonteiro pushed a commit to craff/ocaml-ssl that referenced this pull request Jun 2, 2023
bug fixes in c interface

wrong way for checking if we need retry in Ssl.flush

missplaced SSL_clear_error for shutdown and finish all Runtime_lock functions

Added Error_want_retry_verify in ssl.ml/mli

Added a safer conversion to type Ssl.ssl_error

remove all raw_xxx functions and use shadowing

Simplify error treatment

wrong function name in error.

added a comment to explain -2 in flush

Use BIO_should_retry in flush (savonet#120)

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

fix issue savonet#103 for output_string, output_char and input_int (savonet#116)

* fix issue savonet#103 for output_string output_char and input_int

* Update CHANGES.md

* Update CHANGES.md

* Apply suggestions from code review

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

bug fixes in c interface (savonet#118)

* bug fixes in c interface

* wrong way for checking if we need retry in Ssl.flush

* missplaced SSL_clear_error for whutdown

* revert one change to put in a separate PR.

* forgot one case

* Update CHANGES.md

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

added comment not to forget to update macro in ssl_stubs.c when adding errors

revert error treatment
anmonteiro pushed a commit to craff/ocaml-ssl that referenced this pull request Jun 2, 2023
bug fixes in c interface

wrong way for checking if we need retry in Ssl.flush

missplaced SSL_clear_error for shutdown and finish all Runtime_lock functions

Added Error_want_retry_verify in ssl.ml/mli

Added a safer conversion to type Ssl.ssl_error

remove all raw_xxx functions and use shadowing

Simplify error treatment

wrong function name in error.

added a comment to explain -2 in flush

Use BIO_should_retry in flush (savonet#120)

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

fix issue savonet#103 for output_string, output_char and input_int (savonet#116)

* fix issue savonet#103 for output_string output_char and input_int

* Update CHANGES.md

* Update CHANGES.md

* Apply suggestions from code review

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

bug fixes in c interface (savonet#118)

* bug fixes in c interface

* wrong way for checking if we need retry in Ssl.flush

* missplaced SSL_clear_error for whutdown

* revert one change to put in a separate PR.

* forgot one case

* Update CHANGES.md

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

added comment not to forget to update macro in ssl_stubs.c when adding errors

revert error treatment
anmonteiro pushed a commit to craff/ocaml-ssl that referenced this pull request Jun 2, 2023
bug fixes in c interface

wrong way for checking if we need retry in Ssl.flush

missplaced SSL_clear_error for shutdown and finish all Runtime_lock functions

Added Error_want_retry_verify in ssl.ml/mli

Added a safer conversion to type Ssl.ssl_error

remove all raw_xxx functions and use shadowing

Simplify error treatment

wrong function name in error.

added a comment to explain -2 in flush

Use BIO_should_retry in flush (savonet#120)

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

fix issue savonet#103 for output_string, output_char and input_int (savonet#116)

* fix issue savonet#103 for output_string output_char and input_int

* Update CHANGES.md

* Update CHANGES.md

* Apply suggestions from code review

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

bug fixes in c interface (savonet#118)

* bug fixes in c interface

* wrong way for checking if we need retry in Ssl.flush

* missplaced SSL_clear_error for whutdown

* revert one change to put in a separate PR.

* forgot one case

* Update CHANGES.md

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

added comment not to forget to update macro in ssl_stubs.c when adding errors

revert error treatment
anmonteiro pushed a commit that referenced this pull request Jun 2, 2023
bug fixes in c interface

wrong way for checking if we need retry in Ssl.flush

missplaced SSL_clear_error for shutdown and finish all Runtime_lock functions

Added Error_want_retry_verify in ssl.ml/mli

Added a safer conversion to type Ssl.ssl_error

remove all raw_xxx functions and use shadowing

Simplify error treatment

wrong function name in error.

added a comment to explain -2 in flush

Use BIO_should_retry in flush (#120)

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

fix issue #103 for output_string, output_char and input_int (#116)

* fix issue #103 for output_string output_char and input_int

* Update CHANGES.md

* Update CHANGES.md

* Apply suggestions from code review

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

bug fixes in c interface (#118)

* bug fixes in c interface

* wrong way for checking if we need retry in Ssl.flush

* missplaced SSL_clear_error for whutdown

* revert one change to put in a separate PR.

* forgot one case

* Update CHANGES.md

---------

Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>

added comment not to forget to update macro in ssl_stubs.c when adding errors

revert error treatment
anmonteiro added a commit to anmonteiro/opam-repository that referenced this pull request Jun 3, 2023
CHANGES:

- Raise an error when `Ssl.flush` isn't successful (savonet/ocaml-ssl#104, savonet/ocaml-ssl#120)
- Add an API-compatible `Ssl.Runtime_lock` module. The functions in this module
  don't release the OCaml runtime lock. While they don't allow other OCaml
  threads to run concurrently, they don't perform any copying in the underlying
  data, leading certain workloads to be faster than their counterparts that
  release the lock. (savonet/ocaml-ssl#106)
- Guarantee `Ssl.output_string` writes the whole string by retrying the
  operation with unwritten bytes (savonet/ocaml-ssl#103, savonet/ocaml-ssl#116)
- Fix calls in C stubs that need to call `ERR_clear_error` before the underlying
  OpenSSL call (savonet/ocaml-ssl#118)
- Add a module `Ssl.Error` to retrieve OpenSSL errors in a structured way (savonet/ocaml-ssl#119)
- Deprecate Ssl.{SSLv23,SSLv3,TLSv1,TLSv1_1}, which were were formally
  deprecated in March 2021 and earlier (savonet/ocaml-ssl#115).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants