Re: Developer for IPv6 Squid patch.

2005-04-19 Thread Rafael Martinez Torres
>
> > - This patch does change literally the term IN_ADDR by in_addr in all the
> > files containing this term, except the file "inet_ntoa.c", the only one
> > not including "config.h" (either direct or undirectly).
>
> Ok.

Well, more specifically the term in_addr in the context "struct in_addr"
by  "struct IN_ADDR"...
Otherwhise, it would be a non-reversible chaos in variable terms like:

a.sin_addr.
   ^^^

Just put it clear for future mail-archive readers




Re: Developer for IPv6 Squid patch.

2005-04-18 Thread Henrik Nordstrom
On Mon, 18 Apr 2005, Rafael Martinez Torres wrote:
Following rule 2, ("do never commmit anything directly in HEAD")
It's more than a rule. It's enforced, and if you somehow manage to bypass 
the weak access controls then your changes will get automatically wiped 
out.

HEAD at sourceforge is not the main Squid tree, only a shadow of the main 
repository.

- This patch does change literally the term IN_ADDR by in_addr in all the
files containing this term, except the file "inet_ntoa.c", the only one
not including "config.h" (either direct or undirectly).
Ok.
- The correposding "defines" are in config.h . They are guarded by "INET6"
define, (#ifdef INET6), so branches others that squid3-ipv6 should not be
affected in their compilations.
Ok.
Questions:
-
-Thought the "config.h" as the best place to do defines. Any other
suggestion ?
It's good.
In a long term, if this change is to be discarded, it can easily
rebuild by an script  ( or the revesing patch)
It should only get discarded if the ipv6 porting comes up with a better 
method, replacing it with something else.

Patch applied.
Regards
Henrik


Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Adrian Chadd
On Thu, Apr 14, 2005, Henrik Nordstrom wrote:

> >sourceForge account name: rmartinez
> >
> >interest: contribute to port squid3 module into IPv6, namely module squid3
> >/ branch squid3-ipv6, leaded by Xuan Baldauf.
> 
> Access granted.

Welcome!

-- 
Adrian Chadd"To believe with certainty we must first
<[EMAIL PROTECTED]> begin by doubting."





Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Henrik Nordstrom

On Thu, 14 Apr 2005, Rafael Martinez Torres wrote:
Hi:
Following procedure to get commit access into SQUID CVS repository, I
introduce
myself:
sourceForge account name: rmartinez
interest: contribute to port squid3 module into IPv6, namely module squid3
/ branch squid3-ipv6, leaded by Xuan Baldauf.
Access granted.
Regards
Henrik


Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Rafael Martinez Torres

Hi:

Following procedure to get commit access into SQUID CVS repository, I
introduce
myself:

sourceForge account name: rmartinez

interest: contribute to port squid3 module into IPv6, namely module squid3
/ branch squid3-ipv6, leaded by Xuan Baldauf.

additional notes: There is a reference to this branch on Projects.html.
"IPv6 support for squid", so no need for another

I declare myself to know all the rules expressed on "rules.html" ...






--
PGP public key: http://www.ngn.euro6ix.org/IPv6/rafael.martinez.gpg




Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Henrik Nordstrom
On Thu, 14 Apr 2005, [ISO-8859-1] Xuân Baldauf wrote:
It would be nice if you could give Rafael cvs commit access (if not already 
done)
Rafael, please see http://devel.squid-cache.org/howto.html for 
instructions if this interests you.

Regards
Henrik

Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Xuân Baldauf
Henrik Nordstrom wrote:
On Thu, 14 Apr 2005, Rafael Martinez Torres wrote:
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.

Indeed, and any IPv6 implementation relying on a lot of #ifdefs 
sprinkled around in the code won't get into HEAD as it becomes a 
maintenance nightmare to keep the code updated, and very error prone 
on changes.

Incremental merging of changes not depending on a lot of #ifdefs is 
highly preferred. And also ensures reasonable continuation of the 
changes even if one person can not finish them all.

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).

So then get this change into HEAD first. It is harmless and does not 
obfuscate the code.

Regards
Henrik

Hello Henrik,
It would be nice if you could give Rafael cvs commit access (if not 
already done), so that he is able to develop IPv6 support. From the 
current viewpoint, my time for doing this has become rather scarce.

ciao,
Xuân.


Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Henrik Nordstrom
On Thu, 14 Apr 2005, Rafael Martinez Torres wrote:
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.
Indeed, and any IPv6 implementation relying on a lot of #ifdefs sprinkled 
around in the code won't get into HEAD as it becomes a maintenance 
nightmare to keep the code updated, and very error prone on changes.

Incremental merging of changes not depending on a lot of #ifdefs is highly 
preferred. And also ensures reasonable continuation of the changes even if 
one person can not finish them all.

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).
So then get this change into HEAD first. It is harmless and does not 
obfuscate the code.

Regards
Henrik


Re: Developer for IPv6 Squid patch.

2005-04-14 Thread Rafael Martinez Torres

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
-|
|struct sockaddr| Abstract for AF_INET,AF_UNIX.
-|
|struct sockaddr_in | Concrete for AF_INET => IPv4 addr + port
-|
|struct sockaddr_un | Concrete for AF_UNIX => file path
-|
|struct sockaddr_storage| Abstract for AF_INET,AF_INET6 (AF_UNIX?)
-|
|struct sockaddr_in6| Concrete for AF_INET6 => IPv6 addr+port+flw_inf+scp_id
-|
|struct in_addr | Concrete IPv4 address format ( NOT include port)
-|
|struct in6_addr| Concrete IPv6 address format (NOT include port)
-|



Re: Developer for IPv6 Squid patch.

2005-04-11 Thread Xuân Baldauf
Rafael Martinez Torres wrote:
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
to Whom it may concern:
I, Rafael Martinez, software developer integrated at Euro6IX proyect
(http://www.euro6ix.org),
would like to join the SQUID developer's team in order to contribute the
CVS version to be ported into IPv6.
I have valuable skill on porting programs into IPv6 (see
http://www.ngn.euro6ix.org/IPv6) but up to date my contribution is
releasing the patches in an informal-way, non certified, for
evaluating purposes and experimenting by the research community (usually
Universities). Always under the terms by the GPL license.
In some cases, like the PERL INET6 module, I'm the official maintainer.
Others, like TCL and MySQL are transiently considered.
Summing up, I have been one month learning the internals of
the SQUID layout, on the STABLE-VERSION (tar.gz) , and I have a -yet
uncomplete- patch  for 2.5.STABLE8 version. In the CVS patch,( I
have to check and read it depthly )
it seems like the wwcp, ftp, icp, protocols are not touched yet...ç
On ASN module you will face a non-trivial problem to index a table with
128 bits integers, since the longest C-integer is 64 bits...
I think my work will be more
usefull if you do accept me to join the CVS with write permissions, or, in
case of security police, I cand send you my local patchs to commit them-
You should not care on my salary, assurance or other contractual
matters, since I'm paid by the Euro6IX consortium.
Waiting instructions from your side,
Rafael Martinez.
 

Hello Rafael,
I have been starting to create IPv6 support for squid3. (See 
http://www.squid-cache.org/bugs/show_bug.cgi?id=1026 and the bottom of 
http://devel.squid-cache.org/projects.html ). I would be happy if 
someone (you) could pursue creating IPv6 support more intensely than I 
am currently able to (due to lack of unpaid time).

ciao,
Xuân.