mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-29 00:55:22 +00:00
a8743c3938
Since its introduction in 2011 (particularly in commit f4324e3292
),
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>
89 lines
3.4 KiB
C
89 lines
3.4 KiB
C
/*
|
|
* virnetserver.h: generic network RPC server
|
|
*
|
|
* 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 __VIR_NET_SERVER_H__
|
|
# define __VIR_NET_SERVER_H__
|
|
|
|
# ifdef WITH_GNUTLS
|
|
# include "virnettlscontext.h"
|
|
# endif
|
|
# include "virnetserverprogram.h"
|
|
# include "virnetserverclient.h"
|
|
# include "virnetserverservice.h"
|
|
# include "virobject.h"
|
|
# include "virjson.h"
|
|
|
|
|
|
virNetServerPtr virNetServerNew(size_t min_workers,
|
|
size_t max_workers,
|
|
size_t priority_workers,
|
|
size_t max_clients,
|
|
size_t max_anonymous_clients,
|
|
int keepaliveInterval,
|
|
unsigned int keepaliveCount,
|
|
const char *mdnsGroupName,
|
|
virNetServerClientPrivNew clientPrivNew,
|
|
virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
|
|
virFreeCallback clientPrivFree,
|
|
void *clientPrivOpaque);
|
|
|
|
virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
|
|
virNetServerClientPrivNew clientPrivNew,
|
|
virNetServerClientPrivNewPostExecRestart clientPrivNewPostExecRestart,
|
|
virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
|
|
virFreeCallback clientPrivFree,
|
|
void *clientPrivOpaque);
|
|
|
|
void virNetServerClose(virNetServerPtr srv);
|
|
|
|
virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv);
|
|
|
|
int virNetServerAddService(virNetServerPtr srv,
|
|
virNetServerServicePtr svc,
|
|
const char *mdnsEntryName);
|
|
|
|
int virNetServerAddClient(virNetServerPtr srv,
|
|
virNetServerClientPtr client);
|
|
|
|
int virNetServerAddProgram(virNetServerPtr srv,
|
|
virNetServerProgramPtr prog);
|
|
|
|
# if WITH_GNUTLS
|
|
int virNetServerSetTLSContext(virNetServerPtr srv,
|
|
virNetTLSContextPtr tls);
|
|
# endif
|
|
|
|
size_t virNetServerTrackPendingAuth(virNetServerPtr srv);
|
|
size_t virNetServerTrackCompletedAuth(virNetServerPtr srv);
|
|
|
|
int virNetServerAddClient(virNetServerPtr srv,
|
|
virNetServerClientPtr client);
|
|
bool virNetServerHasClients(virNetServerPtr srv);
|
|
void virNetServerProcessClients(virNetServerPtr srv);
|
|
|
|
void virNetServerUpdateServices(virNetServerPtr srv, bool enabled);
|
|
|
|
int virNetServerStart(virNetServerPtr srv);
|
|
|
|
#endif /* __VIR_NET_SERVER_H__ */
|