virNetSocketRead;
virNetSocketRecvFD;
virNetSocketRemoteAddrString;
+virNetSocketRemoteAddrStringURI;
virNetSocketRemoveIOCallback;
virNetSocketSendFD;
virNetSocketSetBlocking;
virSocketAddr remoteAddr;
char *localAddrStr;
char *remoteAddrStr;
+ char *remoteAddrStrURI;
#if WITH_GNUTLS
virNetTLSSessionPtr tlsSession;
!(sock->remoteAddrStr = virSocketAddrFormatFull(remoteAddr, true, ";")))
goto error;
+ if (remoteAddr &&
+ !(sock->remoteAddrStrURI = virSocketAddrFormatFull(remoteAddr, true, NULL)))
+ goto error;
+
sock->client = isClient;
PROBE(RPC_SOCKET_NEW,
VIR_FREE(sock->localAddrStr);
VIR_FREE(sock->remoteAddrStr);
+ VIR_FREE(sock->remoteAddrStrURI);
}
return sock->remoteAddrStr;
}
+const char *virNetSocketRemoteAddrStringURI(virNetSocketPtr sock)
+{
+ return sock->remoteAddrStrURI;
+}
#if WITH_GNUTLS
static ssize_t virNetSocketTLSSessionWrite(const char *buf,
const char *virNetSocketLocalAddrString(virNetSocketPtr sock);
const char *virNetSocketRemoteAddrString(virNetSocketPtr sock);
+const char *virNetSocketRemoteAddrStringURI(virNetSocketPtr sock);
int virNetSocketListen(virNetSocketPtr sock, int backlog);
int virNetSocketAccept(virNetSocketPtr sock,
goto cleanup;
}
+ if (STRNEQ(virNetSocketRemoteAddrStringURI(csock), "127.0.0.1:0")) {
+ VIR_DEBUG("Unexpected remote address");
+ goto cleanup;
+ }
+
if (virNetSocketAccept(lsock, &ssock) < 0) {
VIR_DEBUG("Unexpected client socket missing");
goto cleanup;
}
+ if (STRNEQ(virNetSocketRemoteAddrStringURI(ssock), "127.0.0.1:0")) {
+ VIR_DEBUG("Unexpected remote address");
+ goto cleanup;
+ }
+
ret = 0;