Hi Inaky, > +/* > + * Encapsulate information needed to export an SMS message over D-Bus. > + * > + * @dbus_path: path of the object in the D-Bus > + * @dbus_msg: message this originated at > + */ > +struct sms_msg_dbus_data { > + char *dbus_path; > + DBusMessage *dbus_msg; > +}; > + I don't really see a point for this structure. When you send an SMS, assuming the arguments and format were valid, you return straight away. Thus SendMessage should be marked as not being ASYNC and storing of DBusMessage is unnecessary. Rest can be handled by txq_submit and the dbus path can be easily generated based on the UUID. > /* > @@ -590,6 +604,9 @@ static void send_message_destroy(void *data) > * is created by tx_queue_entry_new() and g_queue_push_tail() > * appends that entry to the SMS transmit queue. Then the tx_next() > * function is scheduled to run to process the queue. > + * > + * @sms is the main SMS driver struct, @entry and @msg_list represent > + * the current message being processed. > */ > static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg, > void *data) This chunk seems totally unrelated... Regards, -Denis