On Thu, Oct 27, 2011 at 06:05:44PM +0200, Jiri Denemark wrote:
---
Notes:
ACKed
Version 4:
- no changes
Version 3:
- remoteStartKeepAlive renamed as remoteSetKeepAlive
- clients that implement event loop are required to run it, thus
keepalive is enabled if event loop implementation is found without
the need to call remoteAllowKeepAlive (which was dropped)
- keepalive support is advertised to a server implicitly by asking for
keepalive support between authentication and virConnectOpen
Version 2:
- no changes
src/remote/remote_driver.c | 52 +++++++++++++++++++++++++++
src/rpc/virnetclient.c | 83 +++++++++++++++++++++++++++++++++++++++++--
src/rpc/virnetclient.h | 5 +++
3 files changed, 136 insertions(+), 4 deletions(-)
ACK
@@ -663,6 +665,26 @@ doRemoteOpen (virConnectPtr conn,
if (remoteAuthenticate(conn, priv, auth, authtype) == -1)
goto failed;
+ if (virNetClientKeepAliveIsSupported(priv->client)) {
+ remote_supports_feature_args args =
+ { VIR_DRV_FEATURE_PROGRAM_KEEPALIVE };
+ remote_supports_feature_ret ret = { 0 };
+ int rc;
+
+ rc = call(conn, priv, 0, REMOTE_PROC_SUPPORTS_FEATURE,
+ (xdrproc_t)xdr_remote_supports_feature_args, (char *) &args,
+ (xdrproc_t)xdr_remote_supports_feature_ret, (char *) &ret);
+ if (rc == -1)
+ goto failed;
+
+ if (ret.supported) {
+ priv->serverKeepAlive = true;
+ } else {
+ VIR_WARN("Disabling keepalive protocol since it is not supported"
+ " by the server");
Hmm, won't this cause new clients to always issue a warning when talking to
old servers ? Can probably be dropped to VIR_INFO
ACK
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|