From dbefa5616437cb1ab8bb9dab4aae738343f6040e Mon Sep 17 00:00:00 2001 From: Pierre Alain Date: Mon, 6 May 2024 19:11:23 +0200 Subject: [PATCH] allow the firewall to use the router for dns requests (in rules) --- dispatcher.ml | 6 +++--- unikernel.ml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dispatcher.ml b/dispatcher.ml index 856f202..8d1bb8b 100644 --- a/dispatcher.ml +++ b/dispatcher.ml @@ -446,14 +446,14 @@ struct clients := !clients |> Dao.VifMap.add key cleanup))) let send_dns_client_query t ~src_port ~dst ~dst_port buf = - match t with + match t.uplink with | None -> Log.err (fun f -> f "No uplink interface"); Lwt.return (Error (`Msg "failure")) - | Some t -> ( + | Some uplink -> ( Lwt.catch (fun () -> - U.write ~src_port ~dst ~dst_port t.udp buf >|= function + U.write ~src_port ~dst ~dst_port uplink.udp buf >|= function | Error s -> Log.err (fun f -> f "error sending udp packet: %a" U.pp_error s); Error (`Msg "failure") diff --git a/unikernel.ml b/unikernel.ml index e0ceae8..b4e92c7 100644 --- a/unikernel.ml +++ b/unikernel.ml @@ -103,7 +103,7 @@ module Main (R : Mirage_random.S)(Clock : Mirage_clock.MCLOCK)(Time : Mirage_tim ~uplink:None in - let send_dns_query = Dispatcher.send_dns_client_query None in + let send_dns_query = Dispatcher.send_dns_client_query router in let dns_mvar = Lwt_mvar.create_empty () in let nameservers = `Udp, [ config.Dao.dns, 53 ; config.Dao.dns2, 53 ] in let dns_client = Dns_client.create ~nameservers (router, send_dns_query, dns_mvar) in