connect_and_send addr fd
| NotifyTcp6 _ ->
()
- | NotifyDBus path ->
+ | NotifyDBus (use_session, path) ->
(* path/intf/method arbitrary for now. *)
let dbus_path = sprintf "/org/xen/vm/%s" (String.replace "-" "_" state.vm_uuid) in
let dbus_intf = "xenvm.signal.notify" in
let dbus_meth = "notify" in
- let bus = DBus.Bus.get DBus.Bus.System in
+ let bus = DBus.Bus.get (if use_session then DBus.Bus.Session else DBus.Bus.System) in
let msg = DBus.Message.new_signal dbus_path dbus_intf dbus_meth in
DBus.Message.append msg [ (DBus.String state.vm_uuid);
(DBus.Int32 (Int32.of_int code));
| NotifyTcp6 of string
| NotifyTcp of Unix.inet_addr * int
| NotifyUnix of string
- | NotifyDBus of string option
+ | NotifyDBus of bool * string option
| NotifyNone
let string_of_notify ty =
| NotifyTcp6 s -> sprintf "tcp6,%s" s
| NotifyTcp (iaddr, port) -> sprintf "tcp,%s:%d" "" port
| NotifyUnix path -> sprintf "unix,%s" path
- | NotifyDBus path -> sprintf "dbus%s" (match path with None -> "" | Some path -> "," ^ path)
+ | NotifyDBus (sess, path) -> sprintf "dbus%s" (match path with None -> "" | Some path -> "," ^ path)
| NotifyNone -> ""
type snapshot_mode =
NotifyUnix path
| "dbus" :: args -> (
match args with
- | [] -> NotifyDBus (None)
- | path :: [] -> NotifyDBus (Some path)
+ | [] -> NotifyDBus (false, None)
+ | path :: [] -> NotifyDBus (false, Some path)
| _ -> failwith "notify: bad dbus format"
)
| _ ->