summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2006-11-02 02:20:24 +0000
committerDavid Cantrell <dcantrell@redhat.com>2006-11-02 02:20:24 +0000
commitc89579246f19348d5921e6148b235bf840b24f88 (patch)
treeae6e06ac2a1b98d7e911e5c8ed4a7013fcbaf245 /loader2
parentbf05f4da7b9d4e83095a633eef2ef759ded9499b (diff)
downloadanaconda-c89579246f19348d5921e6148b235bf840b24f88.tar.gz
anaconda-c89579246f19348d5921e6148b235bf840b24f88.tar.xz
anaconda-c89579246f19348d5921e6148b235bf840b24f88.zip
Added IPv6 DNS lookup support to libisys.
Diffstat (limited to 'loader2')
-rw-r--r--loader2/ftp.c9
-rw-r--r--loader2/loader.c7
-rw-r--r--loader2/net.c8
-rw-r--r--loader2/urls.c18
4 files changed, 24 insertions, 18 deletions
diff --git a/loader2/ftp.c b/loader2/ftp.c
index c6db27e30..7fe692c5f 100644
--- a/loader2/ftp.c
+++ b/loader2/ftp.c
@@ -221,7 +221,7 @@ static int getHostAddress(const char * host, void * address, int family) {
return FTPERR_BAD_HOST_ADDR;
}
} else {
- if (mygethostbyname(hostname, (struct in_addr *) address)) {
+ if (mygethostbyname(hostname, (struct in_addr *)address, AF_INET)) {
errno = h_errno;
return FTPERR_BAD_HOSTNAME;
} else {
@@ -273,8 +273,8 @@ int ftpOpen(char *host, int family, char *name, char *password,
}
if (proxy) {
- asprintf(&buf, "%s@%s", name, host);
- name = buf;
+ if (asprintf(&buf, "%s@%s", name, host) != -1)
+ name = buf;
host = proxy;
}
@@ -609,7 +609,8 @@ static char *find_header (char *headers, char *to_find)
{
char *start, *end, *searching_for, *retval;
- asprintf (&searching_for, "\r\n%s:", to_find);
+ if (asprintf(&searching_for, "\r\n%s:", to_find) == -1)
+ return NULL;
if ((start = strstr(headers, searching_for)) == NULL) {
free(searching_for);
diff --git a/loader2/loader.c b/loader2/loader.c
index ecd0e9284..13cc14f65 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -747,10 +747,13 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData,
flags |= LOADER_FLAGS_GRAPHICAL;
if (!strncasecmp(argv[i], "vesa", 4)) {
- asprintf(&extraArgs[numExtraArgs], "--xdriver=vesa");
+ if (asprintf(&extraArgs[numExtraArgs],
+ "--xdriver=vesa") == -1)
+ return;
logMessage(WARNING, "\"vesa\" command line argument is deprecated. Use \"xdriver=vesa\".");
} else {
- asprintf(&extraArgs[numExtraArgs], "--%s", argv[i]);
+ if (asprintf(&extraArgs[numExtraArgs],"--%s",argv[i]) == -1)
+ return;
}
numExtraArgs += 1;
diff --git a/loader2/net.c b/loader2/net.c
index 0e1e6c316..88a875390 100644
--- a/loader2/net.c
+++ b/loader2/net.c
@@ -827,7 +827,7 @@ int manualNetConfig(char * device, struct networkDeviceConfig * cfg,
struct networkDeviceConfig * newCfg,
struct intfconfig_s * ipcomps,
int ipv4Choice, int ipv6Choice) {
- int ifour, isix, rows, pos, primary, prefix, cidr;
+ int ifour, isix, rows, pos, primary, prefix, cidr, q;
char *buf = NULL;
char ret[48];
ip_addr_t *tip;
@@ -944,9 +944,9 @@ int manualNetConfig(char * device, struct networkDeviceConfig * cfg,
}
if (cfg->dev.set & PUMP_INTFINFO_HAS_IPV6_PREFIX)
- asprintf(&buf, "%d", cfg->dev.ipv6_prefixlen);
+ q = asprintf(&buf, "%d", cfg->dev.ipv6_prefixlen);
else if (newCfg->dev.set & PUMP_INTFINFO_HAS_IPV6_PREFIX)
- asprintf(&buf, "%d", newCfg->dev.ipv6_prefixlen);
+ q = asprintf(&buf, "%d", newCfg->dev.ipv6_prefixlen);
if (buf) {
newtEntrySet(ipcomps->cidr6Entry, buf, 1);
@@ -1421,7 +1421,7 @@ int findHostAndDomain(struct networkDeviceConfig * dev) {
tip = &(dev->dev.ip);
inet_ntop(tip->sa_family, IP_ADDR(tip), ret, IP_STRLEN(tip));
- name = mygethostbyaddr(ret);
+ name = mygethostbyaddr(ret, tip->sa_family);
if (!FL_CMDLINE(flags))
newtPopWindow();
diff --git a/loader2/urls.c b/loader2/urls.c
index fbf297ad7..9cdd31059 100644
--- a/loader2/urls.c
+++ b/loader2/urls.c
@@ -187,12 +187,10 @@ int urlinstStartTransfer(struct iurlinfo * ui, char * filename,
else if (inet_pton(AF_INET6, hostname, &addr6) >= 1)
family = AF_INET6;
else {
- if (mygethostbyname(hostname, &addr) == 0) {
+ if (mygethostbyname(hostname, &addr, AF_INET) == 0) {
family = AF_INET;
-/*
- } else if (mygethostbyname(hostname, &addr6) == 0) {
+ } else if (mygethostbyname(hostname, &addr6, AF_INET6) == 0) {
family = AF_INET6;
-*/
} else {
logMessage(ERROR, "cannot determine address family of %s",
hostname);
@@ -248,7 +246,9 @@ char * addrToIp(char * hostname) {
return ret;
else if (inet_ntop(AF_INET6, &ad6, ret, INET6_ADDRSTRLEN) != NULL)
return ret;
- else if (mygethostbyname(hostname, &ad) == 0)
+ else if (mygethostbyname(hostname, &ad, AF_INET) == 0)
+ return hostname;
+ else if (mygethostbyname(hostname, &ad6, AF_INET6) == 0)
return hostname;
else
return NULL;
@@ -377,10 +377,12 @@ int urlMainSetupPanel(struct iurlinfo * ui, urlprotocol protocol,
if (ui->prefix) free(ui->prefix);
/* add a slash at the start of the dir if it is missing */
- if (*dir != '/')
- asprintf(&(ui->prefix), "/%s", dir);
- else
+ if (*dir != '/') {
+ if (asprintf(&(ui->prefix), "/%s", dir) == -1)
+ ui->prefix = strdup(dir);
+ } else {
ui->prefix = strdup(dir);
+ }
/* Get rid of trailing /'s */
chptr = ui->prefix + strlen(ui->prefix) - 1;