<div dir="ltr"><div dir="ltr">On Fri, Jun 7, 2019 at 9:08 PM Salman Ahmed <<a href="mailto:salman.isd@gmail.com">salman.isd@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello,</div><div><br></div><div>I am trying to communicate with connman using sdbus from my application. Basically I want to replicate the following cmd line procedure to get values for "object path" and string "Host" (underlined below)<br></div><div>I do<br></div><div><i>dbus-send --system Â  Â  Â  Â  Â  Â  Â --dest=net.connman.vpn Â  --type=method_call Â  Â  Â  Â  Â  Â --print-reply Â  Â  Â  Â  Â  Â  Â  Â  / Â  Â  Â  Â net.connman.vpn.Manager.GetConnections</i></div><div><br></div><div>and I get</div><div><i>   array [<br>  Â  Â  struct {<br>  Â  Â  Â  Â <u>object path "/net/connman/vpn/connection</u>/uk_london_privateinternetaccess_com_privateinternetaccess_com"<br>  Â  Â  Â  Â array [<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "State"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  string "idle"<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Type"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  string "openvpn"<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Name"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  string "PIA VPN"<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Host"<br>  Â  Â  Â  Â  Â  Â  Â <u>variant Â  Â  Â  Â  Â  Â  Â  Â  Â  string "<a href="http://uk-london.privateinternetaccess.com" target="_blank">uk-london.privateinternetaccess.com</a>"</u><br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Index"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  int32 0<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Domain"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  string "<a href="http://privateinternetaccess.com" target="_blank">privateinternetaccess.com</a>"<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Immutable"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  boolean true<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "Nameservers"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  array [<br>  Â  Â  Â  Â  Â  Â  Â  Â  ]<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "UserRoutes"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  array [<br>  Â  Â  Â  Â  Â  Â  Â  Â  ]<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â  Â  dict entry(<br>  Â  Â  Â  Â  Â  Â  Â string "ServerRoutes"<br>  Â  Â  Â  Â  Â  Â  Â variant Â  Â  Â  Â  Â  Â  Â  Â  Â  array [<br>  Â  Â  Â  Â  Â  Â  Â  Â  ]<br>  Â  Â  Â  Â  Â  )<br>  Â  Â  Â  Â ]<br>  Â  Â  }<br>  Â ]</i></div><div><i><br></i></div><div><br></div><div>In my application I am doing</div><div>  Â  Â Â  r = sd_bus_call_method( bus,<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â "net.connman.vpn",<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â "/",<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â "net.connman.vpn.Manager",<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â "GetConnections",<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â &error,<br>  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â &m, Â NULL, NULL);<i><br></i></div><div><i><br></i></div><div>Which succeeds. <br></div><div>Afterwards I want to do  sd_bus_message_read(m, "a(oa{sv})") but I have no idea what kind of arguments should I pass in what order to get object path and host string. I think I got the a(oa{sv}) part right?<br></div></div></blockquote><div><br></div><div>Use sd_bus_message_enter_container() first. Here's a very similar example:</div><div><br></div><div><a href="https://github.com/systemd/systemd/blob/master/src/core/dbus-manager.c#L802">https://github.com/systemd/systemd/blob/master/src/core/dbus-manager.c#L802</a>  Â Â </div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Mantas MikulÄ—nas</div></div></div>