Well, after having taken a look into the status of IPv6 on SQUID, things
are so:
STATUS:
-------
- squid-1.1: (KAME) For that SQUID was not so open to include it.
- squid-2.5: (Roger Venning) Build from module squid / branch s2_5 and
KAME patch, tag ipv6. (left over?)
- squid-3 : Build from HEAD, module squid3 / branch squid-3ipv6. (active)
SOME TECHNICAL COMMENTS:
-------------------
- squid-1.1: (unkown)
- squid-2.5: Excellent. Should be the master reference
for future work.
( See notes below on STRATEGY )
- squid-3: Very few changes. Some of then must be revised.
(Yes, Xuan, "struct sockaddr_storage" is neutral for IPv6-IPv4
programming, but If I'm not wrong it is not the counterpart of "struct
in_addr" as you suggest on include/utils.h...)
struct inaddr_storage
{
struct sockaddr_storage embedded;
}
Take a look into the attached file.
STRATEGY:
---------
1.- I do subscribe conservative politics from SQUID, CVS.html/ Commit
checklist. Otherwise, we cannot warranty the suitability of the HEAD
branch. People involved usually have no time to end this work (even me
:-| ).
2.- The module/tag squid/ipv6 (not squid3) uses this portable hack at
src/defines.h
#ifdef INET6
#define IN_ADDR in6_addr
#else
#deine IN_ADDR in_addr
#endif
As there are many socket-related routines involved through the code, is is
preferable to read
struct IN_ADDR foo;
than
#ifdef INET6
struct in6_addr foo;
/*some else macros*/
#else
struct in_addr foo;
#endif
MANY-MANY TIMES ON A SOURCE-FILE. This become unreadable, since properly
speaking, IPv6 does not provide any application funcionality, like modules
snmp, wwcp...and your code is exhaustevely full of #ifdef INET6.
The drawback is you cannot "cvsmerge HEAD" before commit into main Squid
Release, since this affects the
prototypes on many routines on the HEAD branch.
-idnsPTRLookup(const struct in_addr addr, IDNSCB *callback, void *data).
+idnsPTRLookup(const struct IN_ADDR addr, IDNSCB *callback, void *data).
For the time beeing, I would ignore this conflict... WE have to test and
test...
3.- So the things, I would like to work on squid3/squid3-ipv6 branch
keeping an eye into squid/ipv6. For example, the configure.in is more robust on
squid/ipv6 than in squid3/squid3-ipv6. With some visual tools like
kompare and COMMON SENSE AIDED, you can include these routines on the
target squid3/squid3-ipv6.
My first target is configure.in.
4.- By the way, as a jock, ENABLE_IPV6 is a miss-spell !! Should write
IPv6...!
------------------------------------------------------------------
PGP public key: http://www.ngn.euro6ix.org/IPv6/rafael.martinez.gpg
This archive was generated by hypermail pre-2.1.9 : Sun May 01 2005 - 12:00:06 MDT