mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-13 00:01:55 +00:00
a8743c3938
Since its introduction in 2011 (particularly in commit f4324e329275), the option doesn't work. It just effectively disables all incoming connections. That's because the client private data that contain the 'keepalive_supported' boolean, are initialized to zeroes so the bool is false and the only other place where the bool is used is when checking whether the client supports keepalive. Thus, according to the server, no client supports keepalive. Removing this instead of fixing it is better because a) apparently nobody ever tried it since 2011 (4 years without one month) and b) we cannot know whether the client supports keepalive until we get a ping or pong keepalive packet. And that won't happen until after we dispatched the ConnectOpen call. Another two reasons would be c) the keepalive_required was tracked on the server level, but keepalive_supported was in private data of the client as well as the check that was made in the remote layer, thus making all other instances of virNetServer miss this feature unless they all implemented it for themselves and d) we can always add it back in case there is a request and a use-case for it. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
92 lines
2.7 KiB
C
92 lines
2.7 KiB
C
/*
|
|
* libvirtd.h: daemon data structure definitions
|
|
*
|
|
* Copyright (C) 2006-2015 Red Hat, Inc.
|
|
* Copyright (C) 2006 Daniel P. Berrange
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Author: Daniel P. Berrange <berrange@redhat.com>
|
|
*/
|
|
|
|
|
|
#ifndef LIBVIRTD_H__
|
|
# define LIBVIRTD_H__
|
|
|
|
# define VIR_ENUM_SENTINELS
|
|
|
|
# include <rpc/types.h>
|
|
# include <rpc/xdr.h>
|
|
# include "remote_protocol.h"
|
|
# include "admin_protocol.h"
|
|
# include "lxc_protocol.h"
|
|
# include "qemu_protocol.h"
|
|
# include "virthread.h"
|
|
|
|
# if WITH_SASL
|
|
# include "virnetsaslcontext.h"
|
|
# endif
|
|
# include "virnetserverprogram.h"
|
|
|
|
typedef struct daemonClientStream daemonClientStream;
|
|
typedef daemonClientStream *daemonClientStreamPtr;
|
|
typedef struct daemonClientPrivate daemonClientPrivate;
|
|
typedef daemonClientPrivate *daemonClientPrivatePtr;
|
|
typedef struct daemonAdmClientPrivate daemonAdmClientPrivate;
|
|
typedef daemonAdmClientPrivate *daemonAdmClientPrivatePtr;
|
|
typedef struct daemonClientEventCallback daemonClientEventCallback;
|
|
typedef daemonClientEventCallback *daemonClientEventCallbackPtr;
|
|
|
|
/* Stores the per-client connection state */
|
|
struct daemonClientPrivate {
|
|
/* Hold while accessing any data except conn */
|
|
virMutex lock;
|
|
|
|
daemonClientEventCallbackPtr *domainEventCallbacks;
|
|
size_t ndomainEventCallbacks;
|
|
daemonClientEventCallbackPtr *networkEventCallbacks;
|
|
size_t nnetworkEventCallbacks;
|
|
daemonClientEventCallbackPtr *qemuEventCallbacks;
|
|
size_t nqemuEventCallbacks;
|
|
|
|
# if WITH_SASL
|
|
virNetSASLSessionPtr sasl;
|
|
# endif
|
|
|
|
/* This is only valid if a remote open call has been made on this
|
|
* connection, otherwise it will be NULL. Also if remote close is
|
|
* called, it will be set back to NULL if that succeeds.
|
|
*/
|
|
virConnectPtr conn;
|
|
|
|
daemonClientStreamPtr streams;
|
|
};
|
|
|
|
/* Separate private data for admin connection */
|
|
struct daemonAdmClientPrivate {
|
|
/* Just a placeholder, not that there is anything to be locked */
|
|
virMutex lock;
|
|
|
|
virNetDaemonPtr dmn;
|
|
};
|
|
|
|
# if WITH_SASL
|
|
extern virNetSASLContextPtr saslCtxt;
|
|
# endif
|
|
extern virNetServerProgramPtr remoteProgram;
|
|
extern virNetServerProgramPtr qemuProgram;
|
|
|
|
#endif
|