]> xenbits.xensource.com Git - xenclient/toolstack.git/commitdiff
put parameters in the message with proper signature
authorVincent Hanquez <vincent.hanquez@eu.citrix.com>
Mon, 17 Aug 2009 12:10:49 +0000 (13:10 +0100)
committerVincent Hanquez <vincent.hanquez@eu.citrix.com>
Mon, 17 Aug 2009 12:10:49 +0000 (13:10 +0100)
xenvm/xenvmlib.ml

index 20802620b52589b4fd40741b024d1e932f3765e0..29158310642612e3c5e1c8c5c503e458f557faa1 100644 (file)
@@ -154,12 +154,13 @@ let request ?timeout id query =
        let bus = DBus.Bus.get (if using_session then DBus.Bus.Session else DBus.Bus.System) in
        let timeout = match timeout with None -> 0 | Some t -> int_of_float (t *. 1000.) in
 
-       let dest = "org.xen.vm" in
        let intf = Printf.sprintf "org.xen.vm.%s" (String.replace "-" "_" id) in
+       let dest = intf in
 
        let method_name, params = query in
        let msg = DBus.Message.new_method_call dest "/" intf method_name in
-       DBus.Message.append msg [];
+       let params = List.map (fun (k, v) -> DBus.String k, DBus.String v) params in
+       DBus.Message.append msg [ DBus.Array (DBus.Dicts ((DBus.SigString, DBus.SigString), params)) ];
        let reply = DBus.Connection.send_with_reply_and_block bus msg timeout in
        let args = DBus.Message.get reply in
        match DBus.Message.get_type reply, args with