summaryrefslogtreecommitdiffstats
path: root/server/main_channel.c
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2011-08-03 15:43:02 +0300
committerAlon Levy <alevy@redhat.com>2011-08-23 18:23:46 +0300
commit812d01c06090f14ccb65e9a3b81df311c51e4b26 (patch)
tree673f86f7619dca9f611ac038e45e488ba7f97ee8 /server/main_channel.c
parent67671b26097a0d629a42356b22690c8b34db51a5 (diff)
downloadspice-812d01c06090f14ccb65e9a3b81df311c51e4b26.tar.gz
spice-812d01c06090f14ccb65e9a3b81df311c51e4b26.tar.xz
spice-812d01c06090f14ccb65e9a3b81df311c51e4b26.zip
server/red_channel.c: pack all channel callbacks to ChannelCbs
Diffstat (limited to 'server/main_channel.c')
-rw-r--r--server/main_channel.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/server/main_channel.c b/server/main_channel.c
index 3337c469..54b3dff4 100644
--- a/server/main_channel.c
+++ b/server/main_channel.c
@@ -937,23 +937,27 @@ MainChannelClient *main_channel_link(Channel *channel, RedClient *client,
MainChannelClient *mcc;
if (channel->data == NULL) {
+ ChannelCbs channel_cbs;
+
+ channel_cbs.config_socket = main_channel_config_socket;
+ channel_cbs.disconnect = main_channel_client_disconnect;
+ channel_cbs.send_item = main_channel_send_item;
+ channel_cbs.hold_item = main_channel_hold_pipe_item;
+ channel_cbs.release_item = main_channel_release_pipe_item;
+ channel_cbs.alloc_recv_buf = main_channel_alloc_msg_rcv_buf;
+ channel_cbs.release_recv_buf = main_channel_release_msg_rcv_buf;
+ channel_cbs.handle_migrate_flush_mark = main_channel_handle_migrate_flush_mark;
+ channel_cbs.handle_migrate_data = main_channel_handle_migrate_data;
+ channel_cbs.handle_migrate_data_get_serial = main_channel_handle_migrate_data_get_serial;
+
red_printf("create main channel");
channel->data = red_channel_create_parser(
sizeof(MainChannel), core, migration, FALSE /* handle_acks */
- ,main_channel_config_socket
- ,main_channel_client_disconnect
,spice_get_client_channel_parser(SPICE_CHANNEL_MAIN, NULL)
,main_channel_handle_parsed
- ,main_channel_alloc_msg_rcv_buf
- ,main_channel_release_msg_rcv_buf
- ,main_channel_hold_pipe_item
- ,main_channel_send_item
- ,main_channel_release_pipe_item
,main_channel_on_error
,main_channel_on_error
- ,main_channel_handle_migrate_flush_mark
- ,main_channel_handle_migrate_data
- ,main_channel_handle_migrate_data_get_serial);
+ ,&channel_cbs);
ASSERT(channel->data);
}
// TODO - migration - I removed it from channel creation, now put it