config->listen_addr, config->tcp_port);
if (!(svcTCP = virNetServerServiceNewTCP(config->listen_addr,
config->tcp_port,
+ AF_UNSPEC,
config->auth_tcp,
#if WITH_GNUTLS
NULL,
if (!(svcTLS =
virNetServerServiceNewTCP(config->listen_addr,
config->tls_port,
+ AF_UNSPEC,
config->auth_tls,
ctxt,
false,
snprintf(portstr, sizeof(portstr), "%d", port);
- if (virNetSocketNewListenTCP(hostname, portstr, &socks, &nsocks) < 0) {
+ if (virNetSocketNewListenTCP(hostname, portstr,
+ AF_UNSPEC,
+ &socks, &nsocks) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Fail to create socket for incoming migration"));
goto error;
snprintf(portstr, sizeof(portstr), "%d", port);
/* socket connect to dst host:port */
- if (virNetSocketNewConnectTCP(hostname, portstr, &sock) < 0) {
+ if (virNetSocketNewConnectTCP(hostname, portstr,
+ AF_UNSPEC,
+ &sock) < 0) {
virReportSystemError(saved_errno,
_("unable to connect to '%s:%s'"),
hostname, portstr);
if (virSecurityManagerSetSocketLabel(driver->securityManager, vm->def) < 0)
goto cleanup;
- if (virNetSocketNewConnectTCP(host, port, &sock) == 0) {
+ if (virNetSocketNewConnectTCP(host, port,
+ AF_UNSPEC,
+ &sock) == 0) {
spec->dest.fd.qemu = virNetSocketDupFD(sock, true);
virObjectUnref(sock);
}
/*FALLTHROUGH*/
case trans_tcp:
- priv->client = virNetClientNewTCP(priv->hostname, port);
+ priv->client = virNetClientNewTCP(priv->hostname, port, AF_UNSPEC);
if (!priv->client)
goto failed;
priv->client = virNetClientNewLibSSH2(priv->hostname,
port,
+ AF_UNSPEC,
username,
keyfile,
knownHosts,
virNetClientPtr virNetClientNewTCP(const char *nodename,
- const char *service)
+ const char *service,
+ int family)
{
virNetSocketPtr sock;
- if (virNetSocketNewConnectTCP(nodename, service, &sock) < 0)
+ if (virNetSocketNewConnectTCP(nodename, service,
+ family,
+ &sock) < 0)
return NULL;
return virNetClientNew(sock, nodename);
VAR = VAL;
virNetClientPtr virNetClientNewLibSSH2(const char *host,
const char *port,
+ int family,
const char *username,
const char *privkeyPath,
const char *knownHostsPath,
if (!(command = virBufferContentAndReset(&buf)))
goto no_memory;
- if (virNetSocketNewConnectLibSSH2(host, port, username, privkey,
+ if (virNetSocketNewConnectLibSSH2(host, port,
+ family,
+ username, privkey,
knownhosts, knownHostsVerify, authMethods,
command, authPtr, uri, &sock) != 0)
goto cleanup;
const char *binary);
virNetClientPtr virNetClientNewTCP(const char *nodename,
- const char *service);
+ const char *service,
+ int family);
virNetClientPtr virNetClientNewSSH(const char *nodename,
const char *service,
virNetClientPtr virNetClientNewLibSSH2(const char *host,
const char *port,
+ int family,
const char *username,
const char *privkeyPath,
const char *knownHostsPath,
virNetServerServicePtr virNetServerServiceNewTCP(const char *nodename,
const char *service,
+ int family,
int auth,
#if WITH_GNUTLS
virNetTLSContextPtr tls,
if (virNetSocketNewListenTCP(nodename,
service,
+ family,
&svc->socks,
&svc->nsocks) < 0)
goto error;
unsigned int *cur_fd);
virNetServerServicePtr virNetServerServiceNewTCP(const char *nodename,
const char *service,
+ int family,
int auth,
# if WITH_GNUTLS
virNetTLSContextPtr tls,
int virNetSocketNewListenTCP(const char *nodename,
const char *service,
+ int family,
virNetSocketPtr **retsocks,
size_t *nretsocks)
{
*nretsocks = 0;
memset(&hints, 0, sizeof(hints));
+ hints.ai_family = family;
hints.ai_flags = AI_PASSIVE;
hints.ai_socktype = SOCK_STREAM;
int virNetSocketNewConnectTCP(const char *nodename,
const char *service,
+ int family,
virNetSocketPtr *retsock)
{
struct addrinfo *ai = NULL;
memset(&remoteAddr, 0, sizeof(remoteAddr));
memset(&hints, 0, sizeof(hints));
+ hints.ai_family = family;
hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
hints.ai_socktype = SOCK_STREAM;
int
virNetSocketNewConnectLibSSH2(const char *host,
const char *port,
+ int family,
const char *username,
const char *privkey,
const char *knownHosts,
}
/* connect to remote server */
- if ((ret = virNetSocketNewConnectTCP(host, port, &sock)) < 0)
+ if ((ret = virNetSocketNewConnectTCP(host, port, family, &sock)) < 0)
goto error;
/* connect to the host using ssh */
int
virNetSocketNewConnectLibSSH2(const char *host ATTRIBUTE_UNUSED,
const char *port ATTRIBUTE_UNUSED,
+ int family ATTRIBUTE_UNUSED,
const char *username ATTRIBUTE_UNUSED,
const char *privkey ATTRIBUTE_UNUSED,
const char *knownHosts ATTRIBUTE_UNUSED,
int virNetSocketNewListenTCP(const char *nodename,
const char *service,
+ int family,
virNetSocketPtr **addrs,
size_t *naddrs);
int virNetSocketNewConnectTCP(const char *nodename,
const char *service,
+ int family,
virNetSocketPtr *addr);
int virNetSocketNewConnectUNIX(const char *path,
int virNetSocketNewConnectLibSSH2(const char *host,
const char *port,
+ int family,
const char *username,
const char *privkey,
const char *knownHosts,
snprintf(portstr, sizeof(portstr), "%d", data->port);
- if (virNetSocketNewListenTCP(data->lnode, portstr, &lsock, &nlsock) < 0)
+ if (virNetSocketNewListenTCP(data->lnode, portstr,
+ AF_UNSPEC,
+ &lsock, &nlsock) < 0)
goto cleanup;
for (i = 0; i < nlsock; i++) {
goto cleanup;
}
- if (virNetSocketNewConnectTCP(data->cnode, portstr, &csock) < 0)
+ if (virNetSocketNewConnectTCP(data->cnode, portstr,
+ AF_UNSPEC,
+ &csock) < 0)
goto cleanup;
virObjectUnref(csock);