Making jwhois connect fine for those without ipv6 network.
svn path=/nixpkgs/trunk/; revision=29519
This commit is contained in:
parent
3a24231510
commit
afe142e963
60
pkgs/tools/networking/jwhois/connect.patch
Normal file
60
pkgs/tools/networking/jwhois/connect.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
https://bugzilla.redhat.com/attachment.cgi?id=265091
|
||||||
|
|
||||||
|
This fixes somewhat reversed logic of trying to connect to WHOIS server.
|
||||||
|
Tue Nov 20 2007, Lubomir Kundrak <lkundrak@redhat.com>
|
||||||
|
|
||||||
|
--- jwhois-4.0/src/utils.c.connect 2007-06-26 09:00:20.000000000 +0200
|
||||||
|
+++ jwhois-4.0/src/utils.c 2007-11-20 17:05:33.000000000 +0100
|
||||||
|
@@ -247,7 +247,7 @@ make_connect(const char *host, int port)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
- while (res)
|
||||||
|
+ for (; res; res = res->ai_next)
|
||||||
|
{
|
||||||
|
sa = res->ai_addr;
|
||||||
|
sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
|
||||||
|
@@ -266,15 +266,15 @@ make_connect(const char *host, int port)
|
||||||
|
flags = fcntl(sockfd, F_GETFL, 0);
|
||||||
|
if (fcntl(sockfd, F_SETFL, flags|O_NONBLOCK) == -1)
|
||||||
|
{
|
||||||
|
+ close (sockfd);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
error = connect(sockfd, res->ai_addr, res->ai_addrlen);
|
||||||
|
-
|
||||||
|
if (error < 0 && errno != EINPROGRESS)
|
||||||
|
{
|
||||||
|
- break;
|
||||||
|
+ close (sockfd);
|
||||||
|
+ continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
FD_ZERO(&fdset);
|
||||||
|
@@ -283,18 +283,20 @@ make_connect(const char *host, int port)
|
||||||
|
error = select(FD_SETSIZE, NULL, &fdset, NULL, &timeout);
|
||||||
|
if (error == 0)
|
||||||
|
{
|
||||||
|
- break;
|
||||||
|
+ close (sockfd);
|
||||||
|
+ return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
retlen = sizeof(retval);
|
||||||
|
error = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &retval, &retlen);
|
||||||
|
if (error < 0 || retval)
|
||||||
|
{
|
||||||
|
- break;
|
||||||
|
+ close (sockfd);
|
||||||
|
+ return -1;
|
||||||
|
}
|
||||||
|
- res = res->ai_next;
|
||||||
|
+
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
- if (error < 0 || retval) return -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return sockfd;
|
@ -10,6 +10,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
postInstall = "ln -s jwhois $out/bin/whois";
|
postInstall = "ln -s jwhois $out/bin/whois";
|
||||||
|
|
||||||
|
patches = [ ./connect.patch ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A client for the WHOIS protocol allowing you to query the owner of a domain name";
|
description = "A client for the WHOIS protocol allowing you to query the owner of a domain name";
|
||||||
homepage = http://www.gnu.org/software/jwhois/;
|
homepage = http://www.gnu.org/software/jwhois/;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user