broadway: Clean up broadwayd event sending code

Use the right size and put the client serial in the right place.
This commit is contained in:
Alexander Larsson 2013-01-08 17:08:46 +01:00
parent c83d35d1df
commit 6f910e5e02

View File

@ -600,10 +600,12 @@ broadway_events_got_input (BroadwayInputMsg *message,
guint32 daemon_serial;
size = get_event_size (message->base.type);
g_assert (sizeof (BroadwayReplyBase) + size <= sizeof (BroadwayReplyEvent));
memset (&reply_event, 0, sizeof (BroadwayReplyEvent));
daemon_serial = message->base.serial;
reply_event.msg = *message;
memcpy (&reply_event.msg, message, size);
for (l = clients; l != NULL; l = l->next)
{
@ -612,10 +614,10 @@ broadway_events_got_input (BroadwayInputMsg *message,
if (client_id == -1 ||
client->id == client_id)
{
message->base.serial = get_client_serial (client, daemon_serial);
reply_event.msg.base.serial = get_client_serial (client, daemon_serial);
send_reply (client, NULL, (BroadwayReply *)&reply_event,
sizeof (BroadwayReplyBase) + size,
G_STRUCT_OFFSET (BroadwayReplyEvent, msg) + size,
BROADWAY_REPLY_EVENT);
}
}