• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mbarbin / eio-rpc / 94

04 Apr 2025 11:55AM UTC coverage: 82.218% (-0.1%) from 82.332%
94

push

github

mbarbin
Fix use of reuse_port for unix sockets

1 of 2 new or added lines in 1 file covered. (50.0%)

467 of 568 relevant lines covered (82.22%)

3846.66 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.24
/example/keyval/lib/keyval_cli/src/cmd__server.ml
1
let run_cmd =
2
  Command.make
69✔
3
    ~summary:"run the server"
4
    (let open Command.Std in
5
     let+ listening_config = Grpc_discovery.Listening_config.arg
6
     and+ verbose = Arg.flag [ "verbose" ] ~doc:"be more verbose" in
69✔
7
     let%bind listening_config = listening_config in
8
     Eio_main.run
8✔
9
     @@ fun env ->
10
     let net = Eio.Stdenv.net env in
8✔
11
     Eio.Switch.run
8✔
12
     @@ fun sw ->
13
     let server = Keyval_server.create () in
8✔
14
     let grpc_server = Keyval_server.implement_rpcs server in
8✔
15
     let listening_socket =
8✔
16
       let reuse_port =
17
         match listening_config.specification with
NEW
18
         | Tcp { port = `Supplied (_ : int) } -> true
×
19
         | Tcp { port = `Chosen_by_OS } | Unix _ -> false
1✔
20
       in
21
       Eio.Net.listen
8✔
22
         net
23
         ~sw
24
         ~reuse_addr:true
25
         ~reuse_port
26
         ~backlog:5
27
         (Grpc_discovery.Listening_config.sockaddr listening_config)
8✔
28
     in
29
     Grpc_discovery.Listening_config.advertize listening_config ~env ~sw ~listening_socket;
30
     if verbose
8✔
31
     then
32
       Eio.traceln
33
         "Listening for connections on %a"
34
         Eio.Net.Sockaddr.pp
35
         (Eio.Net.listening_addr listening_socket) [@coverage off];
36
     let stop, stop_u = Eio.Promise.create () in
8✔
37
     Stdlib.Sys.set_signal
8✔
38
       Stdlib.Sys.sigterm
39
       (Signal_handle (fun (_ : int) -> Eio.Promise.resolve stop_u ()));
8✔
40
     Eio.Net.run_server
8✔
41
       listening_socket
42
       (Grpc_server.connection_handler grpc_server ~sw)
8✔
43
       ~stop
44
       ~on_error:(Eio.traceln "Error handling connection: %a" Fmt.exn)
8✔
45
       ~max_connections:1000;
46
     return ())
8✔
47
;;
48

49
let main = Command.group ~summary:"manage the server" [ "run", run_cmd ]
69✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc