<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hello,<br>
    <br>
    Many thanks for your help. Everything works perfect now.<br>
    I was confused reading the Low-level API it was not obvious that the
    exact type signature shall be given.<br>
    What for is the "r" code then, and when is it used?<br>
    <br>
    To your question: Actually the whole module is written using&nbsp;
    dbus-glib binding. There are only some methods written using
    low-level API.<br>
    They give me more flexibility in addressing of different interfaces
    and objects in the receiver process.<br>
    The whole sender process is a legacy software running on older LINUX
    versions (SuSE 8.2 and SLES 10), so I am not sure if the gdbus would
    be the right solution.<br>
    <br>
    Once more thank you&nbsp; for your help,<br>
    <br>
    with best regards,<br>
    <br>
    Bogdan<br>
    <br>
    &nbsp;<br>
    <br>
    <br>
    On 5/7/2011 13:33, Thiago Macieira wrote:
    <blockquote cite="mid:1396341.h8iMUiIvW4@doriath" type="cite">
      <pre wrap="">On Saturday, 7 de May de 2011 11:13:41 Bogdan Lotko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">     // Open the a structure within an array
     // Here run-time error  !!!!!!!!!!!!!!!!!!!
     dbus_message_iter_open_container( &amp;arr,
                                       DBUS_TYPE_STRUCT,
                                       NULL,
&amp;strct );
</pre>
      </blockquote>
      <pre wrap="">
No, it's not.

The error is actually here:

</pre>
      <blockquote type="cite">
        <pre wrap="">   dbus_message_iter_open_container( &amp;iter,
                                     DBUS_TYPE_ARRAY,
                                     "r",
&amp;arr );
</pre>
      </blockquote>
      <pre wrap="">
It told you:
"process 6585: Array or variant type requires that type struct be 
written, but begin_struct was written"

As you can see, you sent "r". You should pass the actual type of 
the structure you're trying to send. In this case, "(ss)".

By the way, you're using the D-Bus low-level API, but you have glib constructs 
in your code. Why aren't you using dbus-glib or, even better, gdbus?

</pre>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
dbus mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dbus@lists.freedesktop.org">dbus@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/dbus">http://lists.freedesktop.org/mailman/listinfo/dbus</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>