diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2011-09-18 22:50:50 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2011-09-26 12:17:58 +0300 |
commit | f91d202eb3bf631cf5e70277d1aabffec7da9393 (patch) | |
tree | 9556833f2d0b08bd783eb44758adf275595a62e9 | |
parent | 510a4ff7c4f188fe6d0fb12198b8f9fdb74b9a2d (diff) |
client: main channel migration: do partial cleanup when switching hosts
Implement on_disconnect_mig_src and on_connect_mig_target in order to avoid
unnecessary cleanups done in on_(disconnet|connect).
In addition, do not request guest display settings changes after migration.
-rw-r--r-- | client/red_client.cpp | 9 | ||||
-rw-r--r-- | client/red_client.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/client/red_client.cpp b/client/red_client.cpp index f2412de2..3dde7b28 100644 --- a/client/red_client.cpp +++ b/client/red_client.cpp @@ -493,6 +493,15 @@ void RedClient::on_disconnect() (*sync_event)->wait(); } +void RedClient::on_disconnect_mig_src() +{ + _application.deactivate_interval_timer(*_agent_timer); + delete[] _agent_msg_data; + _agent_msg_data = NULL; + _agent_msg_pos = 0; + _agent_tokens = 0; +} + void RedClient::delete_channels() { Lock lock(_channels_lock); diff --git a/client/red_client.h b/client/red_client.h index 1d814683..f47f1cbd 100644 --- a/client/red_client.h +++ b/client/red_client.h @@ -279,6 +279,8 @@ protected: virtual void on_connecting(); virtual void on_connect(); virtual void on_disconnect(); + virtual void on_connect_mig_target() {} + virtual void on_disconnect_mig_src(); private: void on_channel_disconnected(RedChannel& channel); |