mirror of
https://github.com/mirage/qubes-mirage-firewall.git
synced 2024-10-01 01:05:39 -04:00
fix: uplink is an option, disconnect* return Lwt.return_unit
This commit is contained in:
parent
a7a7ea4c38
commit
f1a333adce
@ -89,7 +89,7 @@ struct
|
|||||||
mutable uplink : uplink option;
|
mutable uplink : uplink option;
|
||||||
}
|
}
|
||||||
|
|
||||||
let create ~config ~clients ~nat ?uplink =
|
let create ~config ~clients ~nat ~uplink =
|
||||||
{
|
{
|
||||||
uplink_connected = Lwt_condition.create ();
|
uplink_connected = Lwt_condition.create ();
|
||||||
uplink_disconnect = Lwt_condition.create ();
|
uplink_disconnect = Lwt_condition.create ();
|
||||||
@ -100,7 +100,7 @@ struct
|
|||||||
uplink;
|
uplink;
|
||||||
}
|
}
|
||||||
|
|
||||||
let update t ~config ?uplink =
|
let update t ~config ~uplink =
|
||||||
t.config <- config;
|
t.config <- config;
|
||||||
t.uplink <- uplink;
|
t.uplink <- uplink;
|
||||||
Lwt.return_unit
|
Lwt.return_unit
|
||||||
@ -518,13 +518,13 @@ struct
|
|||||||
currently we delay 1s as Netif.disconnect is non-blocking... (need to fix upstream?) *)
|
currently we delay 1s as Netif.disconnect is non-blocking... (need to fix upstream?) *)
|
||||||
Log.info (fun f ->
|
Log.info (fun f ->
|
||||||
f "disconnecting from our uplink");
|
f "disconnecting from our uplink");
|
||||||
U.disconnect uplink.udp;
|
U.disconnect uplink.udp >>= fun () ->
|
||||||
I.disconnect uplink.ip;
|
I.disconnect uplink.ip >>= fun () ->
|
||||||
(* mutable fragments : Fragments.Cache.t; *)
|
(* mutable fragments : Fragments.Cache.t; *)
|
||||||
(* interface : interface; *)
|
(* interface : interface; *)
|
||||||
Arp.disconnect uplink.arp;
|
Arp.disconnect uplink.arp >>= fun () ->
|
||||||
UplinkEth.disconnect uplink.eth;
|
UplinkEth.disconnect uplink.eth >>= fun () ->
|
||||||
Netif.disconnect uplink.net;
|
Netif.disconnect uplink.net >>= fun () ->
|
||||||
Lwt_condition.broadcast router.uplink_disconnected ();
|
Lwt_condition.broadcast router.uplink_disconnected ();
|
||||||
Lwt.return_unit
|
Lwt.return_unit
|
||||||
| e -> Lwt.fail e)
|
| e -> Lwt.fail e)
|
||||||
@ -579,7 +579,7 @@ struct
|
|||||||
Dao.read_network_config qubesDB >>= fun config ->
|
Dao.read_network_config qubesDB >>= fun config ->
|
||||||
Dao.print_network_config config;
|
Dao.print_network_config config;
|
||||||
connect config >>= fun uplink ->
|
connect config >>= fun uplink ->
|
||||||
update router ~config ?uplink:(Some uplink) >>= fun () ->
|
update router ~config ~uplink:(Some uplink) >>= fun () ->
|
||||||
Lwt_condition.broadcast router.uplink_connected ();
|
Lwt_condition.broadcast router.uplink_connected ();
|
||||||
Lwt.return_unit
|
Lwt.return_unit
|
||||||
| None, Some _ ->
|
| None, Some _ ->
|
||||||
@ -588,10 +588,10 @@ struct
|
|||||||
Dao.read_network_config qubesDB >>= fun config ->
|
Dao.read_network_config qubesDB >>= fun config ->
|
||||||
Dao.print_network_config config;
|
Dao.print_network_config config;
|
||||||
connect config >>= fun uplink ->
|
connect config >>= fun uplink ->
|
||||||
update router ~config ?uplink:(Some uplink) >>= fun () ->
|
update router ~config ~uplink:(Some uplink) >>= fun () ->
|
||||||
Lwt_condition.broadcast router.uplink_connected ();
|
Lwt_condition.broadcast router.uplink_connected ();
|
||||||
Lwt.return_unit
|
Lwt.return_unit
|
||||||
| Some uplink, None ->
|
| Some _, None ->
|
||||||
(* This currently is never triggered :( *)
|
(* This currently is never triggered :( *)
|
||||||
Log.info (fun f ->
|
Log.info (fun f ->
|
||||||
f "TODO: Our netvm disapeared, troubles are coming!%!");
|
f "TODO: Our netvm disapeared, troubles are coming!%!");
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
let src = Logs.Src.create "memory_pressure" ~doc:"Memory pressure monitor"
|
let src = Logs.Src.create "memory_pressure" ~doc:"Memory pressure monitor"
|
||||||
module Log = (val Logs.src_log src : Logs.LOG)
|
module Log = (val Logs.src_log src : Logs.LOG)
|
||||||
|
|
||||||
let wordsize_in_bytes = Sys.word_size / 8
|
|
||||||
|
|
||||||
let fraction_free stats =
|
let fraction_free stats =
|
||||||
let { Xen_os.Memory.free_words; heap_words; _ } = stats in
|
let { Xen_os.Memory.free_words; heap_words; _ } = stats in
|
||||||
float free_words /. float heap_words
|
float free_words /. float heap_words
|
||||||
|
@ -100,7 +100,7 @@ module Main (R : Mirage_random.S)(Clock : Mirage_clock.MCLOCK)(Time : Mirage_tim
|
|||||||
~config
|
~config
|
||||||
~clients
|
~clients
|
||||||
~nat
|
~nat
|
||||||
?uplink:None
|
~uplink:None
|
||||||
in
|
in
|
||||||
|
|
||||||
let send_dns_query = Dispatcher.send_dns_client_query None in
|
let send_dns_query = Dispatcher.send_dns_client_query None in
|
||||||
|
Loading…
Reference in New Issue
Block a user