diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2011-09-18 22:50:50 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2011-11-02 11:30:26 +0200 |
commit | 0a5e9cbbcf9a3ebc6c7e3ccd3e7026998d2488d9 (patch) | |
tree | 149c6e1d52a953e512ab15cfb99e8f26f81dd70f /client | |
parent | c73d5c10e677b8ab67101545bb17eb46afd1e251 (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.
(cherry picked from commit f91d202eb3bf631cf5e70277d1aabffec7da9393 branch 0.8)
Diffstat (limited to 'client')
-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 84440c10..4fc442fb 100644 --- a/client/red_client.cpp +++ b/client/red_client.cpp @@ -498,6 +498,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 7b3e5076..20d5ffb7 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); |