max message size ?

Johan Fischer linux at fischaz.com
Mon Feb 14 16:48:24 PST 2005


Hi list, I was trying to update my code after the recent (maybe not 
actually) API change for iter_append_*** and iter_append_basic ... and 
discover 2 problems with my code:

Just quickly how I use the dbus lib:
- system debian Unstable
- dbus CVS HEAD - using just the lib (not the message bus) to connect 
client to server. - using glib binding to manage server / client 
connections, watch, server, handler ....
- It's a C++ code using the dbus lib (well, it was working before so It 
shouldn't matter right ?)

The first problem was when I disconnect the client from the server, the 
server stop listening to new connections. The first connection and 
comms are ok, but after disconnecting and trying to reconnect, the 
server stop listening and don't respond anymore. It seems the problem 
was in the fact that I unref the connection when receiving the 
disconnect signal message. static DBusHandlerResult filter_disconnect 
(DBusConnection *connection,                DBusMessage *message, void 
*user_data)
{
        if (!dbus_message_is_signal (message,                           
      DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL,                             
    "Disconnected"))
                return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
               UserManager *user = static_cast<UserManager*>(user_data);
        user->disconnectSignal (connection, message, NULL);
               //dbus_connection_unref (connection);
               return DBUS_HANDLER_RESULT_HANDLED;
}

As you can see, my quick fix for it to work was to comment the unref 
line... So I wonder if it was/is a pb in my code and that I shouldn't 
have use the unref or a pb in the lib ?


The second one is about the signature and max message size. My server 
seems to crash failing an assert when trying to create a 4kbytes 
message. I'm creating a message using iter_append_basic only so it 
might be too much append for the signature (I'm just guessing)...

The error message :
[ResTradeList] Start nb=31 - messageSize=4189
15860: assertion failed "data_len <= DBUS_MAXIMUM_SIGNATURE_LENGTH" 
file "dbus-marshal-basic.c" line 760 function 
marshal_len_followed_by_bytes

I hope this is enough for a start :) I can provide the dbus debug infos 
as well if requested and more code.

Cheers.
JF.


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-keys
Size: 2071 bytes
Desc: PGP Public Key
Url : http://lists.freedesktop.org/archives/dbus/attachments/20050215/fecf402c/attachment.key


More information about the dbus mailing list