diff options
author | David Cantrell <dcantrell@redhat.com> | 2006-11-02 02:20:24 +0000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2006-11-02 02:20:24 +0000 |
commit | c89579246f19348d5921e6148b235bf840b24f88 (patch) | |
tree | ae6e06ac2a1b98d7e911e5c8ed4a7013fcbaf245 /loader2 | |
parent | bf05f4da7b9d4e83095a633eef2ef759ded9499b (diff) | |
download | anaconda-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.c | 9 | ||||
-rw-r--r-- | loader2/loader.c | 7 | ||||
-rw-r--r-- | loader2/net.c | 8 | ||||
-rw-r--r-- | loader2/urls.c | 18 |
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; |