char *name = NULL;
BusData *bd;
dbus_bool_t retval;
+ char* sender;
_dbus_return_val_if_fail (connection != NULL, FALSE);
_dbus_return_val_if_error_is_set (error, FALSE);
}
bd->unique_name = _dbus_strdup (name);
+
+ /* determine sender once, not for every message */
+ sender = malloc (strlen(name) + 4);
+ if(sender)
+ {
+ strcpy(sender,":1.");
+ strcpy(&sender[3], name);
+ _dbus_verbose ("Message sender: %s\n", sender);
+ dbus_connection_set_sender(connection, sender);
+ }
+
if (bd->unique_name == NULL)
{
_DBUS_SET_OOM (error);
int generation; /**< _dbus_current_generation that should correspond to this connection */
#endif
unsigned int is_kdbus; /* Samsung change: to spare comparing address too often. 0 - uninitialized, 1 - not kdbus, 2 - kdbus */
+ char* sender; /* Samsung change: to spare building sender name for each message sent */
};
static DBusDispatchStatus _dbus_connection_get_dispatch_status_unlocked (DBusConnection *connection);
return NULL;
}
+void dbus_connection_set_sender(DBusConnection *connection, char *value)
+{
+ connection->sender = value;
+}
+
+char* dbus_connection_get_sender(DBusConnection *connection)
+{
+ return connection->sender;
+}
+
unsigned int dbus_connection_get_is_kdbus(DBusConnection *connection)
{
return connection->is_kdbus;
dbus_uint32_t *client_serial)
{
dbus_uint32_t serial;
+ char* sender;
preallocated->queue_link->data = message;
_dbus_list_prepend_link (&connection->outgoing_messages,
if(dbus_transport_is_kdbus(connection))
{
- const char* name;
- char* sender;
-
- name = dbus_bus_get_unique_name(connection);
- sender = malloc (strlen(name) + 4);
- if(sender)
- {
- strcpy(sender,":1.");
- strcpy(&sender[3], name);
- _dbus_verbose ("Message sender: %s\n", sender);
- dbus_message_set_sender(message, sender);
- free((void*)sender);
- }
+ sender = dbus_connection_get_sender(connection);
+ dbus_message_set_sender(message, sender);
}
dbus_message_lock (message);
DBUS_EXPORT
void dbus_connection_set_is_kdbus (DBusConnection *connection, unsigned int value);
DBUS_EXPORT
+void dbus_connection_set_sender (DBusConnection *connection, char *value);
+DBUS_EXPORT
+char* dbus_connection_get_sender (DBusConnection *connection);
+DBUS_EXPORT
dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection);
DBUS_EXPORT
dbus_bool_t dbus_connection_set_is_authenticated (DBusConnection *connection);