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

Split HTTPS functions into 2 #84

Merged
merged 6 commits into from
Dec 7, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ Unreleased
connection ([#80](https://github.com/anmonteiro/ocaml-h2/pull/80))
- h2: Make H2.Status.t a strict superset of Httpaf.Status.t
([#83](https://github.com/anmonteiro/ocaml-h2/pull/83))
- h2-lwt, h2-lwt-unix: split HTTPS functions in 2: one that sets up a default
secure connection and performs the TLS handshake / accept, and one that is
more "raw", i.e. leaves that responsibility to the caller. Also exposes the
`socket` type to make it easier to abstract over HTTP / HTTPS
([#84](https://github.com/anmonteiro/httpaf/pull/84))

0.4.0 2019-11-05
--------------
Expand Down
6 changes: 3 additions & 3 deletions esy.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
"resolutions": {
"@opam/conf-libev": "esy-packages/libev:package.json#0b5eb66",
"@opam/conf-libssl": "esy-packages/esy-openssl#860ad7f",
"@opam/httpaf": "anmonteiro/httpaf:httpaf.opam#b8d4eb3",
"@opam/httpaf-lwt": "anmonteiro/httpaf:httpaf-lwt.opam#b8d4eb3",
"@opam/httpaf-lwt-unix": "anmonteiro/httpaf:httpaf-lwt-unix.opam#b8d4eb3"
"@opam/httpaf": "anmonteiro/httpaf:httpaf.opam#f4bfd7c",
"@opam/httpaf-lwt": "anmonteiro/httpaf:httpaf-lwt.opam#f4bfd7c",
"@opam/httpaf-lwt-unix": "anmonteiro/httpaf:httpaf-lwt-unix.opam#f4bfd7c"
}
}
374 changes: 187 additions & 187 deletions esy.lock/index.json

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/conduit-lwt.2.0.2/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/conduit-mirage.2.0.2/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/conduit.2.0.2/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion esy.lock/opam/ipaddr-sexp.4.0.0/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/ipaddr.4.0.0/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion esy.lock/opam/macaddr.4.0.0/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/nocrypto.0.5.4-2/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/ocamlformat.0.12/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion esy.lock/opam/odoc.1.4.2/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/tls.0.10.5/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions esy.lock/opam/vchan.5.0.0/opam

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 4 additions & 11 deletions examples/alpn/unix/alpn_server_ssl.ml
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
open Alpn_lib

let http1_handler ssl_server =
let http1_handler =
Httpaf_lwt_unix.Server.SSL.create_connection_handler
~server:ssl_server
?certfile:None
?keyfile:None
?config:None
~request_handler:Http1_handler.request_handler
~error_handler:Http1_handler.error_handler

let h2_handler ssl_server =
let h2_handler =
H2_lwt_unix.Server.SSL.create_connection_handler
~server:ssl_server
?certfile:None
?keyfile:None
?config:None
~request_handler:H2_handler.request_handler
~error_handler:H2_handler.error_handler

Expand Down Expand Up @@ -71,9 +64,9 @@ let start_https_server () =
(* Unable to negotiate a protocol *)
Lwt.return_unit
| Some "http/1.1" ->
http1_handler ssl_server client_addr fd
http1_handler client_addr ssl_server
| Some "h2" ->
h2_handler ssl_server client_addr fd
h2_handler client_addr ssl_server
| Some _ ->
(* Can't really happen - would mean that TLS negotiated a
* protocol that we didn't specify. *)
Expand Down
14 changes: 4 additions & 10 deletions examples/alpn/unix/alpn_server_tls.ml
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
open Alpn_lib

let http1_handler tls_server =
let http1_handler =
Httpaf_lwt_unix.Server.TLS.create_connection_handler
~server:tls_server
?certfile:None
?keyfile:None
?config:None
~request_handler:Http1_handler.request_handler
~error_handler:Http1_handler.error_handler

let h2_handler tls_server =
let h2_handler =
H2_lwt_unix.Server.TLS.create_connection_handler
~server:tls_server
?certfile:None
?keyfile:None
?config:None
~request_handler:H2_handler.request_handler
~error_handler:H2_handler.error_handler
Expand Down Expand Up @@ -66,9 +60,9 @@ let start_https_server () =
(* Unable to negotiate a protocol *)
Lwt.return_unit
| Some "http/1.1" ->
http1_handler tls_server client_addr fd
http1_handler client_addr tls_server
| Some "h2" ->
h2_handler tls_server client_addr fd
h2_handler client_addr tls_server
| _ ->
(* Can't really happen - would mean that TLS negotiated a
* protocol that we didn't specify. *)
Expand Down
3 changes: 2 additions & 1 deletion examples/lwt/lwt_get.ml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ let () =
in
let response_received, notify_response_received = Lwt.wait () in
let response_handler = response_handler notify_response_received in
Client.SSL.create_connection ~error_handler socket >>= fun connection ->
Client.SSL.create_connection_with_default ~error_handler socket
>>= fun connection ->
let request_body =
Client.SSL.request connection request ~error_handler ~response_handler
in
Expand Down
3 changes: 1 addition & 2 deletions examples/lwt/lwt_https_server.ml
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,7 @@ let connection_handler : Unix.sockaddr -> Lwt_unix.file_descr -> unit Lwt.t =
in
let certfile = "./certificates/server.pem" in
let keyfile = "./certificates/server.key" in
H2_lwt_unix.Server.SSL.create_connection_handler
?server:None
H2_lwt_unix.Server.SSL.create_connection_handler_with_default
~certfile
~keyfile
?config:None
Expand Down
Loading