fi
if test "x$with_gnutls" = "xyes" ; then
- AC_DEFINE_UNQUOTED([HAVE_GNUTLS], 1,
+ AC_DEFINE_UNQUOTED([WITH_GNUTLS], 1,
[whether GNUTLS is available for encryption])
fi
-AM_CONDITIONAL([HAVE_GNUTLS], [test "x$with_gnutls" = "xyes"])
+AM_CONDITIONAL([WITH_GNUTLS], [test "x$with_gnutls" = "xyes"])
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
virNetServerServicePtr svc = NULL;
virNetServerServicePtr svcRO = NULL;
virNetServerServicePtr svcTCP = NULL;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetServerServicePtr svcTLS = NULL;
#endif
gid_t unix_sock_gid = 0;
unix_sock_rw_mask,
unix_sock_gid,
config->auth_unix_rw,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
false,
unix_sock_ro_mask,
unix_sock_gid,
config->auth_unix_ro,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
true,
if (!(svcTCP = virNetServerServiceNewTCP(config->listen_addr,
config->tcp_port,
config->auth_tcp,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
false,
goto error;
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (config->listen_tls) {
virNetTLSContextPtr ctxt = NULL;
#if WITH_SASL
if (config->auth_unix_rw == REMOTE_AUTH_SASL ||
config->auth_unix_ro == REMOTE_AUTH_SASL ||
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
config->auth_tls == REMOTE_AUTH_SASL ||
# endif
config->auth_tcp == REMOTE_AUTH_SASL) {
return 0;
error:
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virObjectUnref(svcTLS);
#endif
virObjectUnref(svcTCP);
if (!sasl)
goto authfail;
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
/* Inform SASL that we've got an external SSF layer from TLS */
if (virNetServerClientHasTLSSession(client)) {
int ssf;
EXTRA_DIST += \
rpc/virnetsshsession.h rpc/virnetsshsession.c
endif
-if HAVE_GNUTLS
+if WITH_GNUTLS
libvirt_net_rpc_la_SOURCES += \
rpc/virnettlscontext.h rpc/virnettlscontext.c
else
#include "configmake.h"
#include "intprops.h"
#include "virconf.h"
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
# include "rpc/virnettlscontext.h"
#endif
#include "vircommand.h"
#endif
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
static int virTLSMutexInit(void **priv)
{
virMutexPtr lock = NULL;
virErrorInitialize() < 0)
goto error;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
gcry_control(GCRYCTL_SET_THREAD_CBS, &virTLSThreadImpl);
gcry_check_version(NULL);
#endif
virLogSetFromEnv();
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virNetTLSInit();
#endif
/* Systemd passes FDs, starting immediately after stderr,
* so the first FD we'll get is '3'. */
if (!(svc = virNetServerServiceNewFD(3, 0,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
false, 1)))
VIR_DEBUG("Setting up networking natively");
if (!(svc = virNetServerServiceNewUNIX(sock_path, 0700, 0, 0,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
false, 1)))
0700,
0,
0,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
NULL,
#endif
false,
#include <config.h>
#include <sys/time.h>
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
# include <gnutls/gnutls.h>
# include <gnutls/x509.h>
#endif
}
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
static char *
qemuDomainExtractTLSSubject(const char *certdir)
{
if (!listenAddr)
listenAddr = driver->vncListen;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
if (driver->vncTLS &&
!(mig->tlsSubject = qemuDomainExtractTLSSubject(driver->vncTLSx509certdir)))
goto error;
if (!listenAddr)
listenAddr = driver->spiceListen;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
if (driver->spiceTLS &&
!(mig->tlsSubject = qemuDomainExtractTLSSubject(driver->spiceTLSx509certdir)))
goto error;
no_memory:
virReportOOMError();
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
error:
#endif
qemuMigrationCookieGraphicsFree(mig);
int counter; /* Serial number for RPC */
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virNetTLSContextPtr tls;
#endif
/* Connect to the remote service. */
switch (transport) {
case trans_tls:
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
priv->tls = virNetTLSContextNewClientPath(pkipath,
geteuid() != 0 ? true : false,
sanity, verify);
if (!priv->client)
goto failed;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
if (priv->tls) {
VIR_DEBUG("Starting TLS session");
if (virNetClientSetTLSSession(priv->client, priv->tls) < 0)
(xdrproc_t) xdr_void, (char *) NULL) == -1)
ret = -1;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virObjectUnref(priv->tls);
priv->tls = NULL;
#endif
saslcb)))
goto cleanup;
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
/* Initialize some connection props we care about */
if (priv->tls) {
if ((ssf = virNetClientGetTLSKeySize(priv->client)) < 0)
virNetSocketPtr sock;
bool asyncIO;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSSessionPtr tls;
#endif
char *hostname;
if (client->sock)
virNetSocketRemoveIOCallback(client->sock);
virObjectUnref(client->sock);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virObjectUnref(client->tls);
#endif
#if WITH_SASL
virObjectUnref(client->sock);
client->sock = NULL;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virObjectUnref(client->tls);
client->tls = NULL;
#endif
#endif
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
int virNetClientSetTLSSession(virNetClientPtr client,
virNetTLSContextPtr tls)
{
{
bool ret = false;
virNetClientLock(client);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (client->tls)
ret = true;
#endif
return virNetSocketRemoteAddrString(client->sock);
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
int virNetClientGetTLSKeySize(virNetClientPtr client)
{
int ret = 0;
#ifndef __VIR_NET_CLIENT_H__
# define __VIR_NET_CLIENT_H__
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
# include "virnettlscontext.h"
# endif
# include "virnetmessage.h"
virNetSASLSessionPtr sasl);
# endif
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
int virNetClientSetTLSSession(virNetClientPtr client,
virNetTLSContextPtr tls);
# endif
const char *virNetClientLocalAddrString(virNetClientPtr client);
const char *virNetClientRemoteAddrString(virNetClientPtr client);
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
int virNetClientGetTLSKeySize(virNetClientPtr client);
# endif
unsigned int quit :1;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virNetTLSContextPtr tls;
#endif
virNetServerServiceGetAuth(svc),
virNetServerServiceIsReadonly(svc),
virNetServerServiceGetMaxRequests(svc),
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetServerServiceGetTLSContext(svc),
#endif
srv->clientPrivNew,
return -1;
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
int virNetServerSetTLSContext(virNetServerPtr srv,
virNetTLSContextPtr tls)
{
# include <signal.h>
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
# include "virnettlscontext.h"
# endif
# include "virnetserverprogram.h"
int virNetServerAddProgram(virNetServerPtr srv,
virNetServerProgramPtr prog);
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
int virNetServerSetTLSContext(virNetServerPtr srv,
virNetTLSContextPtr tls);
# endif
int auth;
bool readonly;
char *identity;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr tlsCtxt;
virNetTLSSessionPtr tls;
#endif
VIR_DEBUG("tls=%p hs=%d, rx=%p tx=%p",
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
client->tls,
client->tls ? virNetTLSSessionGetHandshakeStatus(client->tls) : -1,
#else
if (!client->sock || client->wantClose)
return 0;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (client->tls) {
switch (virNetTLSSessionGetHandshakeStatus(client->tls)) {
case VIR_NET_TLS_HANDSHAKE_RECVING:
then monitor for writability on socket */
if (client->tx)
mode |= VIR_EVENT_HANDLE_WRITABLE;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
}
#endif
VIR_DEBUG("mode=%o", mode);
}
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
/* Check the client's access. */
static int
virNetServerClientCheckAccess(virNetServerClientPtr client)
static virNetServerClientPtr
virNetServerClientNewInternal(virNetSocketPtr sock,
int auth,
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virNetTLSContextPtr tls,
#endif
bool readonly,
client->sock = virObjectRef(sock);
client->auth = auth;
client->readonly = readonly;
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
client->tlsCtxt = virObjectRef(tls);
#endif
client->nrequests_max = nrequests_max;
int auth,
bool readonly,
size_t nrequests_max,
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
virNetTLSContextPtr tls,
#endif
virNetServerClientPrivNew privNew,
virNetServerClientPtr client;
VIR_DEBUG("sock=%p auth=%d tls=%p", sock, auth,
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
tls
#else
NULL
);
if (!(client = virNetServerClientNewInternal(sock, auth,
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
tls,
#endif
readonly, nrequests_max)))
if (!(client = virNetServerClientNewInternal(sock,
auth,
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
NULL,
#endif
readonly,
}
-#ifdef HAVE_GNUTLS
+#ifdef WITH_GNUTLS
bool virNetServerClientHasTLSSession(virNetServerClientPtr client)
{
bool has;
{
bool secure = false;
virNetServerClientLock(client);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (client->tls)
secure = true;
#endif
#endif
if (client->sockTimer > 0)
virEventRemoveTimeout(client->sockTimer);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virObjectUnref(client->tls);
virObjectUnref(client->tlsCtxt);
#endif
if (client->sock)
virNetSocketRemoveIOCallback(client->sock);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (client->tls) {
virObjectUnref(client->tls);
client->tls = NULL;
{
virNetServerClientLock(client);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (!client->tlsCtxt) {
#endif
/* Plain socket, so prepare to read first message */
if (virNetServerClientRegisterEvent(client) < 0)
goto error;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
} else {
int ret;
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
static void
virNetServerClientDispatchHandshake(virNetServerClientPtr client)
{
if (events & (VIR_EVENT_HANDLE_WRITABLE |
VIR_EVENT_HANDLE_READABLE)) {
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (client->tls &&
virNetTLSSessionGetHandshakeStatus(client->tls) !=
VIR_NET_TLS_HANDSHAKE_COMPLETE) {
if (events & VIR_EVENT_HANDLE_READABLE &&
client->rx)
virNetServerClientDispatchRead(client);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
}
#endif
}
int auth,
bool readonly,
size_t nrequests_max,
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
virNetTLSContextPtr tls,
# endif
virNetServerClientPrivNew privNew,
int virNetServerClientGetAuth(virNetServerClientPtr client);
bool virNetServerClientGetReadonly(virNetServerClientPtr client);
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
bool virNetServerClientHasTLSSession(virNetServerClientPtr client);
int virNetServerClientGetTLSKeySize(virNetServerClientPtr client);
# endif
bool readonly;
size_t nrequests_client_max;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr tls;
#endif
virNetServerServicePtr virNetServerServiceNewTCP(const char *nodename,
const char *service,
int auth,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr tls,
#endif
bool readonly,
svc->auth = auth;
svc->readonly = readonly;
svc->nrequests_client_max = nrequests_client_max;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
svc->tls = virObjectRef(tls);
#endif
mode_t mask,
gid_t grp,
int auth,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr tls,
#endif
bool readonly,
svc->auth = auth;
svc->readonly = readonly;
svc->nrequests_client_max = nrequests_client_max;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
svc->tls = virObjectRef(tls);
#endif
virNetServerServicePtr virNetServerServiceNewFD(int fd,
int auth,
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr tls,
#endif
bool readonly,
svc->auth = auth;
svc->readonly = readonly;
svc->nrequests_client_max = nrequests_client_max;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
svc->tls = virObjectRef(tls);
#endif
return svc->nrequests_client_max;
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSContextPtr virNetServerServiceGetTLSContext(virNetServerServicePtr svc)
{
return svc->tls;
virObjectUnref(svc->socks[i]);
VIR_FREE(svc->socks);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virObjectUnref(svc->tls);
#endif
}
virNetServerServicePtr virNetServerServiceNewTCP(const char *nodename,
const char *service,
int auth,
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
virNetTLSContextPtr tls,
# endif
bool readonly,
mode_t mask,
gid_t grp,
int auth,
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
virNetTLSContextPtr tls,
# endif
bool readonly,
size_t nrequests_client_max);
virNetServerServicePtr virNetServerServiceNewFD(int fd,
int auth,
-# if HAVE_GNUTLS
+# if WITH_GNUTLS
virNetTLSContextPtr tls,
# endif
bool readonly,
int virNetServerServiceGetAuth(virNetServerServicePtr svc);
bool virNetServerServiceIsReadonly(virNetServerServicePtr svc);
size_t virNetServerServiceGetMaxRequests(virNetServerServicePtr svc);
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
virNetTLSContextPtr virNetServerServiceGetTLSContext(virNetServerServicePtr svc);
# endif
char *localAddrStr;
char *remoteAddrStr;
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
virNetTLSSessionPtr tlsSession;
#endif
#if WITH_SASL
goto error;
}
#endif
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (sock->tlsSession) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("Unable to save socket state when TLS session is active"));
unlink(sock->localAddr.data.un.sun_path);
#endif
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
/* Make sure it can't send any more I/O during shutdown */
if (sock->tlsSession)
virNetTLSSessionSetIOCallbacks(sock->tlsSession, NULL, NULL, NULL);
}
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
static ssize_t virNetSocketTLSSessionWrite(const char *buf,
size_t len,
void *opaque)
#endif
reread:
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (sock->tlsSession &&
virNetTLSSessionGetHandshakeStatus(sock->tlsSession) ==
VIR_NET_TLS_HANDSHAKE_COMPLETE) {
} else {
#endif
ret = read(sock->fd, buf, len);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
}
#endif
#endif
rewrite:
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
if (sock->tlsSession &&
virNetTLSSessionGetHandshakeStatus(sock->tlsSession) ==
VIR_NET_TLS_HANDSHAKE_COMPLETE) {
} else {
#endif
ret = write(sock->fd, buf, len);
-#if HAVE_GNUTLS
+#if WITH_GNUTLS
}
#endif
# include "virsocketaddr.h"
# include "vircommand.h"
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
# include "virnettlscontext.h"
# endif
# include "virobject.h"
int virNetSocketSendFD(virNetSocketPtr sock, int fd);
int virNetSocketRecvFD(virNetSocketPtr sock, int *fd);
-# ifdef HAVE_GNUTLS
+# ifdef WITH_GNUTLS
void virNetSocketSetTLSSession(virNetSocketPtr sock,
virNetTLSSessionPtr sess);
# endif
sysinfotest \
$(NULL)
-if HAVE_GNUTLS
+if WITH_GNUTLS
test_programs += virnettlscontexttest
endif
virnetsockettest_CFLAGS = -Dabs_builddir="\"$(abs_builddir)\"" $(AM_CFLAGS)
virnetsockettest_LDADD = $(LDADDS)
-if HAVE_GNUTLS
+if WITH_GNUTLS
virnettlscontexttest_SOURCES = \
virnettlscontexttest.c testutils.h testutils.c
virnettlscontexttest_CFLAGS = -Dabs_builddir="\"$(abs_builddir)\"" $(AM_CFLAGS)