diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2004-01-28 14:42:47 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2004-01-28 14:42:47 +0000 |
commit | 3ab7d3b66bde9778c8c891fa12607e3dc78c35d7 (patch) | |
tree | 15d98bd6c7ce5b3ecedfa9f3402a25f2b78fb724 /mdk-stage1/dns.c | |
parent | 38e382e82bb1c62e0fd4ca666e6d2f0a15bd113e (diff) | |
download | drakx-3ab7d3b66bde9778c8c891fa12607e3dc78c35d7.tar drakx-3ab7d3b66bde9778c8c891fa12607e3dc78c35d7.tar.gz drakx-3ab7d3b66bde9778c8c891fa12607e3dc78c35d7.tar.bz2 drakx-3ab7d3b66bde9778c8c891fa12607e3dc78c35d7.tar.xz drakx-3ab7d3b66bde9778c8c891fa12607e3dc78c35d7.zip |
allow having no DNS by only using the ip callback once, see DNS == IP as a special case, don't do DNS calls when no DNS is configured to avoid timeouts
Diffstat (limited to 'mdk-stage1/dns.c')
-rw-r--r-- | mdk-stage1/dns.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mdk-stage1/dns.c b/mdk-stage1/dns.c index 5ba55486a..0ed98ad44 100644 --- a/mdk-stage1/dns.c +++ b/mdk-stage1/dns.c @@ -38,7 +38,13 @@ int mygethostbyname(char * name, struct in_addr * addr) { - struct hostent * h = gethostbyname(name); + struct hostent * h; + + /* prevent from timeouts */ + if (dns_server.s_addr == 0) + return -1; + + h = gethostbyname(name); if (!h) { if (domain) { // gethostbyname from dietlibc doesn't support domain handling @@ -65,6 +71,11 @@ char * mygethostbyaddr(char * ipnum) { struct in_addr in; struct hostent * host; + + /* prevent from timeouts */ + if (dns_server.s_addr == 0) + return NULL; + if (!inet_aton(ipnum, &in)) return NULL; host = gethostbyaddr(&(in.s_addr), sizeof(in.s_addr) /* INADDRSZ */, AF_INET); |