mirror of
https://github.com/linuxkit/linuxkit.git
synced 2026-04-04 08:41:45 +00:00
Update https-unikernel to released capnp-rpc 0.1 API
Also, separate out RPC encoding from application logic. Signed-off-by: Thomas Leonard <thomas.leonard@docker.com>
This commit is contained in:
@@ -1,34 +1,32 @@
|
||||
(** Run all the services together in a single process, communicating over Unix-domain sockets. *)
|
||||
|
||||
open Lwt.Infix
|
||||
open Capnp_rpc_lwt
|
||||
|
||||
let switch = Lwt_switch.create ()
|
||||
|
||||
let socket_pair ~switch =
|
||||
let client, server = Unix.(socketpair PF_UNIX SOCK_STREAM 0) in
|
||||
Lwt_switch.add_hook (Some switch) (fun () ->
|
||||
Unix.close client;
|
||||
Unix.close server;
|
||||
Lwt.return ()
|
||||
);
|
||||
(Endpoint.of_socket ~switch client, Endpoint.of_socket ~switch server)
|
||||
let client, server = Lwt_unix.(socketpair PF_UNIX SOCK_STREAM 0) in
|
||||
(Capnp_rpc_unix.endpoint_of_socket ~switch client,
|
||||
Capnp_rpc_unix.endpoint_of_socket ~switch server)
|
||||
|
||||
let store_to_http, http_to_store = socket_pair ~switch
|
||||
let http_to_tls, tls_to_http = socket_pair ~switch
|
||||
|
||||
let () =
|
||||
Common.init_logging ();
|
||||
Logging.init ();
|
||||
Lwt_main.run begin
|
||||
begin
|
||||
Store.service () >>= fun service ->
|
||||
let tags = Logs.Tag.add Common.Actor.tag (`Green, "Store ") Logs.Tag.empty in
|
||||
Store.local () >>= fun service ->
|
||||
let tags = Logs.Tag.add Logging.Actor.tag (`Green, "Store ") Logs.Tag.empty in
|
||||
let _ : CapTP.t = CapTP.connect ~offer:service ~tags ~switch store_to_http in
|
||||
Lwt.return ()
|
||||
end
|
||||
>>= fun () ->
|
||||
begin
|
||||
let tags = Logs.Tag.add Common.Actor.tag (`Red, "HTTP ") Logs.Tag.empty in
|
||||
let tags = Logs.Tag.add Logging.Actor.tag (`Red, "HTTP ") Logs.Tag.empty in
|
||||
let store = CapTP.bootstrap (CapTP.connect ~tags ~switch http_to_store) in
|
||||
let service = Http_server.service store in
|
||||
let service = Http_server.local store in
|
||||
let _ : CapTP.t = CapTP.connect ~offer:service ~tags ~switch http_to_tls in
|
||||
Lwt.return ()
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user