1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-29 08:08:37 +00:00

sync with usr.bin/telnet/commands.c 1.21 -> 1.22. pierre.dampure@alveley.org

This commit is contained in:
Jun-ichiro itojun Hagino 2000-07-07 12:35:05 +00:00
parent dd25cbc7d1
commit 7e154dad2e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=62773
2 changed files with 32 additions and 36 deletions

View File

@ -2468,7 +2468,19 @@ tn(argc, argv)
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
error = getaddrinfo(hostname, portp, &hints, &res);
if (error == 0) {
if (error) {
hints.ai_flags = AI_CANONNAME;
error = getaddrinfo(hostname, portp, &hints, &res);
}
if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
if (hints.ai_flags == AI_NUMERICHOST) {
/* hostname has numeric */
int gni_err = 1;
if (doaddrlookup)
@ -2476,19 +2488,11 @@ tn(argc, argv)
_hostname, sizeof(_hostname) - 1, NULL, 0,
NI_NAMEREQD);
if (gni_err != 0)
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
_hostname[sizeof(_hostname)-1] = '\0';
hostname = _hostname;
} else if (error == EAI_NONAME) {
hints.ai_flags = AI_CANONNAME;
error = getaddrinfo(hostname, portp, &hints, &res);
if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
} else {
/* hostname has FQDN */
if (srcroute != 0)
(void) strncpy(_hostname, hostname, sizeof(_hostname) - 1);
else if (res->ai_canonname != NULL)
@ -2497,12 +2501,6 @@ tn(argc, argv)
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
_hostname[sizeof(_hostname)-1] = '\0';
hostname = _hostname;
} else if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
res0 = res;
af_again:

View File

@ -2468,7 +2468,19 @@ tn(argc, argv)
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
error = getaddrinfo(hostname, portp, &hints, &res);
if (error == 0) {
if (error) {
hints.ai_flags = AI_CANONNAME;
error = getaddrinfo(hostname, portp, &hints, &res);
}
if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
if (hints.ai_flags == AI_NUMERICHOST) {
/* hostname has numeric */
int gni_err = 1;
if (doaddrlookup)
@ -2476,19 +2488,11 @@ tn(argc, argv)
_hostname, sizeof(_hostname) - 1, NULL, 0,
NI_NAMEREQD);
if (gni_err != 0)
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
_hostname[sizeof(_hostname)-1] = '\0';
hostname = _hostname;
} else if (error == EAI_NONAME) {
hints.ai_flags = AI_CANONNAME;
error = getaddrinfo(hostname, portp, &hints, &res);
if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
} else {
/* hostname has FQDN */
if (srcroute != 0)
(void) strncpy(_hostname, hostname, sizeof(_hostname) - 1);
else if (res->ai_canonname != NULL)
@ -2497,12 +2501,6 @@ tn(argc, argv)
(void) strncpy(_hostname, hostp, sizeof(_hostname) - 1);
_hostname[sizeof(_hostname)-1] = '\0';
hostname = _hostname;
} else if (error != 0) {
fprintf(stderr, "%s: %s\n", hostname, gai_strerror(error));
if (error == EAI_SYSTEM)
fprintf(stderr, "%s: %s\n", hostname, strerror(errno));
setuid(getuid());
goto fail;
}
res0 = res;
af_again: