char **vCenterIPAddress)
{
int result = -1;
- char ipAddress[NI_MAXHOST] = "";
+ g_autofree char *ipAddress = NULL;
char *username = NULL;
char *password = NULL;
char *url = NULL;
ESX_VI_CHECK_ARG_LIST(vCenterIPAddress);
- if (esxUtil_ResolveHostname(conn->uri->server, ipAddress, NI_MAXHOST) < 0)
+ if (esxUtil_ResolveHostname(conn->uri->server, &ipAddress) < 0)
return -1;
if (conn->uri->user) {
const char *hostSystemIPAddress)
{
int result = -1;
- char ipAddress[NI_MAXHOST] = "";
+ g_autofree char *ipAddress = NULL;
char *username = NULL;
char *password = NULL;
char *url = NULL;
return -1;
}
- if (esxUtil_ResolveHostname(hostname, ipAddress, NI_MAXHOST) < 0)
+ if (esxUtil_ResolveHostname(hostname, &ipAddress) < 0)
return -1;
if (conn->uri->user) {
virDrvOpenStatus result = VIR_DRV_OPEN_ERROR;
esxPrivate *priv = NULL;
char *potentialVCenterIPAddress = NULL;
- char vCenterIPAddress[NI_MAXHOST] = "";
+ g_autofree char *vCenterIPAddress = NULL;
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
goto cleanup;
}
- if (virStrcpyStatic(vCenterIPAddress,
- potentialVCenterIPAddress) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("vCenter IP address %s too big for destination"),
- potentialVCenterIPAddress);
- goto cleanup;
- }
+ vCenterIPAddress = g_strdup(potentialVCenterIPAddress);
} else {
if (esxUtil_ResolveHostname(priv->parsedUri->vCenter,
- vCenterIPAddress, NI_MAXHOST) < 0) {
+ &vCenterIPAddress) < 0) {
goto cleanup;
}
int
-esxUtil_ResolveHostname(const char *hostname,
- char *ipAddress, size_t ipAddress_length)
+esxUtil_ResolveHostname(const char *hostname, char **ipAddress)
{
struct addrinfo hints;
struct addrinfo *result = NULL;
int errcode;
+ g_autofree char *address = NULL;
memset(&hints, 0, sizeof(hints));
return -1;
}
- errcode = getnameinfo(result->ai_addr, result->ai_addrlen, ipAddress,
- ipAddress_length, NULL, 0, NI_NUMERICHOST);
+ address = g_new0(char, NI_MAXHOST);
+ errcode = getnameinfo(result->ai_addr, result->ai_addrlen, address,
+ NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
freeaddrinfo(result);
if (errcode != 0) {
return -1;
}
+ *ipAddress = g_strdup(address);
+
return 0;
}
int esxUtil_ParseDatastorePath(const char *datastorePath, char **datastoreName,
char **directoryName, char **directoryAndFileName);
-int esxUtil_ResolveHostname(const char *hostname,
- char *ipAddress, size_t ipAddress_length);
+int esxUtil_ResolveHostname(const char *hostname, char **ipAddress);
int esxUtil_ReformatUuid(const char *input, char *output);