Thanks for the report. The problem seems to come from Wget's use of
AI_ADDRCONFIG hint to getaddrinfo. Wget 1.10.1 will not use that
hint.
It occurred to me that the 1.10 NEWS file declares IPv6 to be
supported. However, as far as I know, IPv6 doesn't work under
Windows.
Though it seems that Winsock 2 (which mswindows.h is apparently trying
to support) implements IPv6, I have a nagging suspicion that just
including winsock2.h
On Thu, 14 Apr 2005, Hrvoje Niksic wrote:
It occurred to me that the 1.10 NEWS file declares IPv6 to be
supported. However, as far as I know, IPv6 doesn't work under
Windows.
Though it seems that Winsock 2 (which mswindows.h is apparently trying
to support) implements IPv6, I have
))
/* Huh? This is not BINDERR! */
return BINDERR;
- inet_ntop (AF_INET6, in_addr, ipv6, sizeof (ipv6));
+ inet_ntop (AF_INET6, in_addr.bytes, ipv6, sizeof (ipv6));
+ in_addr.family = AF_INET6;
/* Construct the argument of EPRT (of the form |2|IPv6.ascii|PORT.ascii|). */
bytes = alloca (3
In article [EMAIL PROTECTED] (at Tue, 25 Jan 2005 21:55:15 +0100), Manuel
Bouyer [EMAIL PROTECTED] says:
NetBSD, and I suspect others BSDs, and maybe other systems too, have v4-mapped
addresses support disabled by default (because it can lead to
misconfigurations,
with security issues,
So style improvement is the principal motivation for your change? I
assumed that there were other reasons, with the improved style being
just a benefit. The people who worked on IPv6 code so far -- myself,
Thomas, and Mauro -- seem to be satisfied with the current style.
Don't get me wrong
Kazu Yamamoto ($B;3K\OBI'(B) [EMAIL PROTECTED] writes:
(B
(B My current motivation is style improvement. Since people
(B misunderstood the new style, which you can see in Thomas's summary,
(B we would like to show that it was misunderstanding.
(B
(BYou are right. It was indeed wrong to
I guess I don't see the usefulness of the protocol independence, as
the term is being applied here. Wget is not protocol-independent, it
uses TCP and depends on it in various places of the code.
The only advantage is arguably clearer code in functions like
`lookup_host', but even that does not
cannot but completely agree with hrvoje here.
--
Aequam memento rebus in arduis servare mentem...
Mauro Tortonesi [EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
Deep Space 6 - IPv6 with Linux http
Hello all,
Thank you for your comments, Hrvoje.
From: Hrvoje Niksic [EMAIL PROTECTED]
Subject: Re: IPv6 support of wget v 1.9.1
I guess I don't see the usefulness of the protocol independence, as
the term is being applied here. Wget is not protocol-independent, it
uses TCP and depends
Kazu Yamamoto ($B;3K\OBI'(B) [EMAIL PROTECTED] writes:
(B
(B Hello all,
(B
(B Thank you for your comments, Hrvoje.
(B
(B From: Hrvoje Niksic [EMAIL PROTECTED]
(B Subject: Re: IPv6 support of wget v 1.9.1
(B
(B I guess I don't see the usefulness of the protocol independence, as
(B
In article [EMAIL PROTECTED] (at Mon, 26 Jan 2004 18:06:35 +0100), Hrvoje Niksic
[EMAIL PROTECTED] says:
code:
original cvsour code
host.c 19 8
connect.c 27 17
But didn't you remove `--without-ipv6'? That way you got rid
Hello,
To talk about maintenance stuff, I counted #if (or #ifdef) in the
code:
original cvsour code
host.c 19 8
connect.c 27 17
But didn't you remove `--without-ipv6'? That way you got rid of all
the #ifdef IPV6
programs, including FTP
and HTTP, to IPv6-IPv4 one, I know this problem. Yes, some part of
wget *would* remain protocol dependent.
Kazu, it's been said that a picture is worth a thousand words. Perhaps in
this case, a patch would make your point better.
Sorry for the delay but we finally
In article [EMAIL PROTECTED] (at Mon, 26 Jan 2004 10:09:01 +0900 (JST)), Kazu
(BYamamoto ($B;3K\OBI'(B) [EMAIL PROTECTED] says:
(B
(B I sent the attached message to this list but I think I have not
(B received comments yet. Would you give us your comments?
(B:
(B Kazu, it's been said
http://www.mew.org/~kazu/wget.tar.gz
I think we should provide it in the patch format, too.
(Or, even I'd split the patch when I become free.)
Since this modification was done for the cvs tree, everybody can make
a patch by cvs diff -c. Thus, I think this is enough.
--Kazu
Thomas Lussnig [EMAIL PROTECTED] writes:
your page is not realy very usefull. First yes it describe how to code
protocol independent but
the big problem is it is ONLY valid for platforms with are full
compatible with the newest functions.
In the first change of wget i also had reduced the
different command set's.
Since I have experiences to modify IPv4 only programs, including FTP
and HTTP, to IPv6-IPv4 one, I know this problem. Yes, some part of
wget *would* remain protocol dependent.
But this is outside the scope of my page.
Anyway, thank you for your consideration.
--Kazu
Kazu Yamamoto wrote:
Since I have experiences to modify IPv4 only programs, including FTP
and HTTP, to IPv6-IPv4 one, I know this problem. Yes, some part of
wget *would* remain protocol dependent.
Kazu, it's been said that a picture is worth a thousand words. Perhaps in
this case, a patch
in the protocols of HTTP and FTP where the
different format of readable adress are used
and on ftp even different command set's.
Thats the ground i think your page cover much to little of the actual
needed steps to change from ipv4 to ipv6.
Cu Thomas
pgp0.pgp
Description: PGP signature
Hello Hrvoje,
# I personally wrote the same messaget to Thomas, but I write this
# again here.
That's an artifact of a particular implementation choice in 1.9.x. We
are aware of the problems with mapped addresses, which is why the CVS
version of Wget no longer depends on them.
I have
Hello all,
I realized that it is quit difficult to understand advantages of
getaddrinfo() only from RFC3493. So, I decided to write a web page
which describes the heart of protocol independent programming and how
to use getaddrinfo(). Please wait for a while.
I did. Please give a look at:
Kazu Yamamoto ($B;3K\OBI'(B) [EMAIL PROTECTED] writes:
(B
(B Thank you for supporting IPv6 in wget v 1.9.1. Unfortunately, wget v
(B 1.9.1 does not work well, at least, on NetBSD.
(B
(B NetBSD does not allow to use IPv4-mapped IPv6 addresses
(B[...]
(B When wget is compiled
believe that mapped address is not good. And there
are actually OSes which does not support IPv6 for security reasons.
If my understanding is correct:
FreeBSD has mapped addresses and it is enabled by default.
NetBSD has mapped addresses and it is *disabled* by default.
OpenBSD
understand that
there are security risks as the draft points out.
If such a daemon is changed to open one IPv4 socket and one IPv6
socket, we need to modify the code to use the select() system
call. This is tough.
But...
I read the source code of wget. And I couldn't find good reasons why
wget uses
Hello all,
Thank you for supporting IPv6 in wget v 1.9.1. Unfortunately, wget v
1.9.1 does not work well, at least, on NetBSD.
NetBSD does not allow to use IPv4-mapped IPv6 addresses for security
reasons. To know the background of this, please refer to:
http://www.ietf.org/internet
Kazu Yamamoto wrote:
Thank you for supporting IPv6 in wget v 1.9.1. Unfortunately, wget v
1.9.1 does not work well, at least, on NetBSD.
NetBSD does not allow to use IPv4-mapped IPv6 addresses for security
reasons. To know the background of this, please refer to:
http://www.ietf.org
Hello.
In article [EMAIL PROTECTED] (at Thu, 25 Dec 2003 08:53:28 -0800), Tony Lewis
[EMAIL PROTECTED] says:
Kazu Yamamoto wrote:
Thank you for supporting IPv6 in wget v 1.9.1. Unfortunately, wget v
1.9.1 does not work well, at least, on NetBSD.
NetBSD does not allow to use IPv4
Oops,
(B
(BIn article [EMAIL PROTECTED] (at Fri, 26 Dec 2003 02:45:40 +0900 (JST)), YOSHIFUJI
(BHideaki / [EMAIL PROTECTED](B [EMAIL PROTECTED] says:
(B
(B Yes, there have been some discussions, of course, but we haven't through
(B it away.
(B
(B"through" should be "thrown."
(B
(B--
enough about IPv6 to try to make that
assessment.
Tony
}/share/info \
--sysconfdir=/etc \
--with-ssl \
--enable-ipv6
But now its not possible to use wget with ipv4. Is this intended?:
$ LC_ALL=C wget --debug http://www.heise.de
DEBUG output created by Wget 1.9.1 on linux-gnu.
--14:02
\
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
--sysconfdir=/etc \
--with-ssl \
--enable-ipv6
But now its not possible to use wget with ipv4
By the way, can you please clarify the intention behind AI_V4MAPPED
and AI_ALL, which configure tests for, but nothing uses?
...
Mauro Tortonesi [EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
Deep Space 6 - IPv6 with Linux http://www.deepspace6.net
Ferrara Linux User Grouphttp://www.ferrara.linux.it
hi to hrvoje and all, i am still alive ;-) and i am finally catching up
with the changes you've done at wget ipv6 code. from what i've seen so
far, it seems that you've done a great job (especially on lookup_host and
resolve_bind_address and on the transport_map)!!!
only a few suggestions
Mauro Tortonesi [EMAIL PROTECTED] writes:
hi to hrvoje and all, i am still alive ;-) and i am finally catching
up with the changes you've done at wget ipv6 code. from what i've
seen so far, it seems that you've done a great job (especially on
lookup_host and resolve_bind_address
Attached a little patch needed for current cvs in order to compile on
windows nt 4 (any system without IPV6 really).
Changelog:
connect.c (socket_has_inet6): don't use AF_INET6 without ENABLE_IPV6
main.c (main): don't test opt.ipv[46]_only without ENABLE_IPV6
Heiko
Herold Heiko [EMAIL PROTECTED] writes:
Attached a little patch needed for current cvs in order to compile
on windows nt 4 (any system without IPV6 really).
Thanks. Note that the function isn't even called when IPv6 is
unavailable, so you can feel free to wrap the entire function in
#ifdef
Herold Heiko [EMAIL PROTECTED] said:
Attached a little patch needed for current cvs in order to compile on
windows nt 4 (any system without IPV6 really).
FYI, Wget/IPv6 on Windows do work somewhat; getaddrinfo()
is able to resolve a host to it's IPv6 address(es). But getnameinfo()
isn't able
twice; once for each address in the list.
A little refinement would be to stop trying if the address-families
are the same.
getaddrinfo shouldn't even return IPv6 addresses if AF_INET6 is not
supported. There is code that tries to handle this case, but it
obviously fails on Windows. Are you using
. But getnameinfo() seems
to rely on some deeper IPv6 stuff being installed.
So inet_ntop() can fail if coded using getnameinfo() as I described.
Therefore I adapted Paul Vixie's inet_ntop() which works w/o IPv6
installed.
getaddrinfo shouldn't even return IPv6 addresses if AF_INET6 is not
supported
resolves records fine. But getnameinfo() seems to
rely on some deeper IPv6 stuff being installed.
So inet_ntop() can fail if coded using getnameinfo() as I described.
I still think it's weird; getnameinfo is supposed to be the reverse of
getaddrinfo -- if one resolves the records
I've submitted a patch to the wget-patches list, but in the meantime, if
you would like dual-family support for wget 1.9 (as opposed to an
exclusive choice of either IPv4 or IPv6), you may find my patch, along
with a small blurb about it, at:
http://www.episec.com/people/edelkind/patches
On Wednesday 15 of October 2003 12:11, Thomas Lussnig wrote:
Ok this is clear, but than why become the aplication an binary IPv6
enabled one
if the PC have no IPv6 support ?
Because I'm using packages provided by Linux distribution which needs ipv6
because some users are using it.
I thought
Hi,
Right now wget code looks like this:
#ifdef ENABLE_IPV6
int ip_default_family = AF_INET6;
#else
int ip_default_family = AF_INET;
#endif
and then
./connect.c: sock = socket (ip_default_family, SOCK_STREAM, 0);
This assumes that binary compiled with ipv6 support is always used
Thanks for the report. I agree that the current code does not work
for many uses -- that's why IPv6 is still experimental. Mauro
Tortonesi is working on contributing IPv6 support that works better.
For the impending release, I think the workaround you posted makes
sense. Mauro, what do you
way (TM) to write IPv6 enabled
code ;-)
Not when the only thing you need is storing the result of a DNS
lookup.
i agree, in fact for that case we use the ip_address struct.
I've seen the RFC, but I don't agree with it in the case of Wget. In
fact, even the RFC states that the data
to work with unsigned char[4]? I simply don't see
that in_addr is helping anything in host.c's code base.
i would prefer to cache string representation of ip addresses
because the ipv6 code would be much simpler and more elegant.
I agree. My point was merely to point out that even you yourself
]? I simply don't see
that in_addr is helping anything in host.c's code base.
i would prefer to cache string representation of ip addresses
because the ipv6 code would be much simpler and more elegant.
I agree. My point was merely to point out that even you yourself
believe that struct
here is my first patch to improve ipv6 support of wget. please, notice
that the code compiles, but is still buggy and will probably not work.
i am sending this preliminary patch only to gather feedback from wget
developers and to coordinate with other developers who are working on
ipv6 support
is not
defined. That (I think) results in code duplication in some places,
because the code effectively has to handle the IPv4 case twice:
#ifdef ENABLE_IPV6
switch (addr-type)
{
case IPv6:
... IPv6 handling ...
break;
case IPv4:
... IPv4 handling ...
break;
}
#else
added support for LPRT and LPSV, and refactored existing code.
i still have to work on the code, but the main problem remains probably
the duplication of ftp_port and ftp_pasv, which have two different
versions (one for the IPv6-enabled case and the other for IPv4-only
case).
Here are some remarks
Mauro Tortonesi [EMAIL PROTECTED] writes:
I still don't understand the choice to use sockaddr and
sockaddr_storage in a application code.
They result in needless casts and (to me) uncomprehensible code.
well, using sockaddr_storage is the right way (TM) to write IPv6 enabled
code
Mauro Tortonesi wrote:
are there __REALLY__ systems which do not support inet_aton? their ISVs
should be ashamed of themselves...
Solaris, for example. IIRC inet_aton isn't in any document which claims
to be a standard.
however, yours seemed to me an ugly hack, so i have temporarily removed
Daniel Stenberg [EMAIL PROTECTED] writes:
These are two snippets that can be used to detect IPv6 support and a
working getaddrinfo() info. Adjust as you see fit!
Thanks a bunch! I'll try it out later today.
Thanks to Daniel Stenberg who has either been reading my mind or has
had the exact same needs, here is a patch that brings configure
(auto-)detection for IPv6.
Please test it out on various configurations where IPv6 is or is not
enabled.
ChangeLog:
2003-09-09 Hrvoje Niksic [EMAIL PROTECTED
On Tue, 9 Sep 2003, Hrvoje Niksic wrote:
Thanks to Daniel Stenberg who has either been reading my mind or has had the
exact same needs, here is a patch that brings configure (auto-)detection for
IPv6.
Of course I read your mind, what else could it be? :-P
I'm glad it helped
Again, thanks for taking the time to research this. Next time
sometimes ask this question, we'll forward him this email.
Hi,
there is the definition of the IPv6 Header field's.
http://www.networksorcery.com/enp/protocol/ipv6.htm
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
Version http://www.networksorcery.com/enp/protocol/ipv6.htm#Version
Traffic Class
http
Hello Thomas,
Thomas Lussnig wrote:
host.h:34: field `sa' has incomplete type
host.h:35: field `sin' has incomplete type
Hi this patch were on the list i hope it help oyu
Unfortunately, I haven't received any message from the list since last
Friday. Is it working?
Anyway, it helps.
Today I updated wget sources from cvs and tried to compile them and I
got the following:
gcc -I. -I. -DHAVE_CONFIG_H
-DSYSTEM_WGETRC=\/usr/home/alexis/etc/wgetrc\
-DLOCALEDIR=\/usr/home/alexis/share/locale\ -O2 -Wall -Wno-implicit -c
ftp.c
In file included from ftp.h:26,
Hi,
the patch is working good, but we need an option to force IPv4
where is an problem that some sites have IPv6 but the server run only IPv4.
And if using gethostbyname2 we only get Ipv6 adress :-(
the other dns resolution seems to be badly broken under linux. So i do
not prefer it.
Cu Thomas
On Thu, 17 Jan 2002, Thomas Lussnig wrote:
And if using gethostbyname2 we only get Ipv6 adress :-( the other dns
resolution seems to be badly broken under linux. So i do not prefer it.
Uhu?
In curl we use getaddrinfo() for IPv6-enabled hosts, and I've never received
a single report about
Daniel Stenberg [EMAIL PROTECTED] writes:
`struct addrinfo' contains a `struct sockaddr', which carries the
necessary scoping information (I think). The question at the time
was whether I could extract only the address(es) and ignore
everything else, as it was possible with IPv4. Itojune
Thomas Lussnig [EMAIL PROTECTED] writes:
how the socket part should work fine.
inet_pton and gethostbyname2 only get used if IPV6 is defined
Please don't use gethostbyname2. It's apparently a GNU extension, and
I don't think it will work anywhere except on Linux.
Now it leaves Makefile
Thomas Lussnig [EMAIL PROTECTED] writes:
1. without IPv6 there is no longer used new syscalls
(gethostbyname2,inet_ntop,inet_pton)
2. It can on runtime downgreade to IPv4
3. In IPv6 mode it can handle IPv4 Adresses
4. Checked with following input www.ix.de , 217.110.115.160 ,
www.ipv6
IPv6 addresses were required, and second because a flag
argument is needed to provide the caller with additional control over the
types of addresses required.
If a simple gethostbyname() replacement is what you want, getipnodebyname()
should be used if getaddrinfo() doesn't do
On Wed, 16 Jan 2002, Hrvoje Niksic wrote:
So we can just ignore the scope? I hope you are right -- I certainly don't
know enough about this to judge for myself.
The so called scope in IPv6 is emeddeded in the address, so you can't use
IPv6 addresses without getting the scope too.
Most nodes
libraries, but I'm told getaddrinfo() is the only resolving
function supported by the standard IPv6 API.
I don't know if the IPv6 API is finally stabilized now, but for many
years it was nothing but a floating mess, sigh...
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland
On Wed, 16 Jan 2002, Hrvoje Niksic wrote:
The so called scope in IPv6 is emeddeded in the address, so you can't use
IPv6 addresses without getting the scope too.
Are you sure? Here is what itojun said in
[EMAIL PROTECTED]:
due to the IPv6 address architecture (scoped), 16 bytes
Daniel Stenberg [EMAIL PROTECTED] writes:
On Wed, 16 Jan 2002, Hrvoje Niksic wrote:
The so called scope in IPv6 is emeddeded in the address, so you can't use
IPv6 addresses without getting the scope too.
Are you sure? Here is what itojun said in
[EMAIL PROTECTED]:
due
Markus Buchhorn [EMAIL PROTECTED] writes:
Reading back, that was itojun's proposal, and I suspect probably a
good choice, even if it seems less clean. Itojun is one of the leading
lights in IPv6 development, along with the whole WIDE group in Japan,
and heavily involved in the v6 stacks
was for the IPv6 code to extract the list of
addresses from the data returned by the IPv6 calls.
with the appropriate #ifdefs for when IPv6 is not
available. ipv6_address might also need to contain the scope
information. (I don't know what that is, but I trust that you do.
I've been told that IPv6
the addresses when you can just leave them in the struct
and pass a pointer to that?
I am only suggesting this as it makes things a lot easier. There's not much
overhead in keeping the hostent compared to keeping the addresses only.
IPv6 addresses are scoped, but that is nothing you have to care
about
Daniel Stenberg [EMAIL PROTECTED] writes:
On Tue, 15 Jan 2002, Hrvoje Niksic wrote:
I'd suggest that you instead pass around a 'struct hostent *' on
IPv4 only platforms
Why? The rest of the code never needs anything from `struct hostent'
except the list of addresses, and this is what
Hi,
i worked on it :-)
The good thing is http works not with IPv4 and IPv6 sites if commpiled
with IPv6.
3 things have to be done now:
1. make command line siwtch to change the default 4/6
2. if IPv6 enabled and IPv4 address found make an IPv6 address from whem
( clean caching )
3. Make
.
The easiness comes with the fact that you have one pointer to the complete
host info. Be it hostent for IPv4 or addrinfo for IPv6. Then the connect code
can take that pointer and walk through the list of addresses and attempt to
connect.
struct addrinfo *ai;
sockfd = socket(ai
hostent, made me decide that I don't want to keep struct hostent
around.
The easiness comes with the fact that you have one pointer to the
complete host info. Be it hostent for IPv4 or addrinfo for
IPv6. Then the connect code can take that pointer and walk through
the list of addresses
Thomas Lussnig [EMAIL PROTECTED] writes:
Ok first we don't need this difference. I think it's not so easy than
it first seem's.
Because IPv6 is an superset of IPv4 there is an representation fo IPv4
Adresses.
But is it desirable to use it in preference to native IPv4 calls?
I apologize
Hi,
how the socket part should work fine.
inet_pton and gethostbyname2 only get used if IPV6 is defined
If IPV6 is defined and no v6 Adress is found it also use v4 Adress :-)
Now it leaves Makefile,evtl new command line an :-( ftp.
And address prnting. That can i do.
Cu Thomas
p.s. Is it now
Hi,
i have make an hopefull clean patch for IPv6 support.
It works fine (testet (compile and v6 retrive)
But im not already happy with it.
1. Now if IPv6 enabled it only fetch IPv6 IPv4 sites faile
2. Need an switch to change the preffered mode 4/6
3. Makefile optional v6 support
Point 1 i
Thomas Lussnig [EMAIL PROTECTED] writes:
1. Now if IPv6 enabled it only fetch IPv6 IPv4 sites faile
This is a problem, and part of the reason why the patch is so simple
in its current form. A correct patch must modify struct address_list
to hold a list of IP addresses, each of which can
At 03:16 AM 15/01/2002 +0100, Hrvoje Niksic wrote:
Thomas Lussnig [EMAIL PROTECTED] writes:
1. Now if IPv6 enabled it only fetch IPv6 IPv4 sites faile
This is a problem, and part of the reason why the patch is so simple
in its current form.
[...]
Another possibility is to store struct
On Tue, 15 Jan 2002, Hrvoje Niksic wrote:
1. Now if IPv6 enabled it only fetch IPv6 IPv4 sites faile
This is a problem, and part of the reason why the patch is so simple in its
current form.
It is indeed. If done correctly, using the proper API, there won't be any
difference between IPv6
be that hard.
The difference is that address_list_type specifies the type for all
the addresses, not just one. Is it possible that the host name
lookup returns some addresses in IPv4 and some in IPv6?
yes. you can get mixture of output for a host name lookup.
Oh, ok. Then the address-type
[EMAIL PROTECTED] writes:
with IPv6-capable API host name resolution is done by
getaddrinfo(3) functions, not gethostbyname(3). they return
sockaddrs, therefore it is more natural/easier to carry around
sockaddrs.
It sounds like a random implementation convenience
Jun-ichiro itojun Hagino [EMAIL PROTECTED] writes:
hello, a patch to support IPv6 in wget 1.7 can be found at:
ftp://ftp.kame.net/pub/kame/misc/
Thanks. I must admit that I'm a bit overwhelmed by this patch.
Several questions:
* Would you be willing to take a look at the sources
[EMAIL PROTECTED] writes:
yes, I can redo patch for the latest CVS tree, but I'd need
more info on anoncvs access.
Take a look at http://wget.sunsite.dk/. It explains how to download
the latest sources from CVS.
of addresses */
int faulty; /* number of addresses known not to
work. */
int refcount; /* so we know whether to free it or
not. */
};
So all we need to add for IPv6 is a tag specifying whether
89 matches
Mail list logo