projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove duplicate sm_fgetc() declaration
[mmh]
/
mts
/
smtp
/
hosts.c
diff --git
a/mts/smtp/hosts.c
b/mts/smtp/hosts.c
index
33eb9e6
..
908e619
100644
(file)
--- a/
mts/smtp/hosts.c
+++ b/
mts/smtp/hosts.c
@@
-38,7
+38,7
@@
OfficialName (char *name)
{
unsigned char *p;
char *q, site[BUFSIZ];
{
unsigned char *p;
char *q, site[BUFSIZ];
- struct hostent *hp;
+ struct addrinfo hints, *res;
static char buffer[BUFSIZ];
char **r;
static char buffer[BUFSIZ];
char **r;
@@
-52,12
+52,14
@@
OfficialName (char *name)
if (!mh_strcasecmp (LocalName(), site))
return LocalName();
if (!mh_strcasecmp (LocalName(), site))
return LocalName();
-#ifdef HAVE_SETHOSTENT
- sethostent (1);
-#endif
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_flags = AI_CANONNAME;
+ hints.ai_family = PF_UNSPEC;
- if ((hp = gethostbyname (q))) {
- strncpy (buffer, hp->h_name, sizeof(buffer));
+ if (getaddrinfo(q, NULL, &hints, &res) == 0) {
+ strncpy (buffer, res->ai_canonname, sizeof(buffer));
+ buffer[sizeof(buffer) - 1] = '\0';
+ freeaddrinfo(res);
return buffer;
}
if (hosts.h_name || init_hs ()) {
return buffer;
}
if (hosts.h_name || init_hs ()) {