From: Vincent Hanquez Date: Mon, 17 Aug 2009 12:10:49 +0000 (+0100) Subject: put parameters in the message with proper signature X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=099966f35b34b756ad1d29c4ace43d93e288c829;p=xenclient%2Ftoolstack.git put parameters in the message with proper signature --- diff --git a/xenvm/xenvmlib.ml b/xenvm/xenvmlib.ml index 2080262..2915831 100644 --- a/xenvm/xenvmlib.ml +++ b/xenvm/xenvmlib.ml @@ -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