Article delegate-en/3801 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A3800@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: delegate9.6.3-pre5 & IPv6
28 Jul 2007 02:19:03 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

In message <_A3800@delegate-en.ML_> on 07/27/07(22:09:41)
you Tero Pelander <p3ahabdyi-t75q7lur4njr.ml@ml.delegate.org> wrote:
 |IPv6 problems in delegate9.6.3-pre5
 |
 |Problem 1:
 |Can't use ipv6 dns servers.
 |Example: first one works ok, second one fails to contact dns server
 |
 |./delegated -v -P__:3129 SERVER=http RESOLV=dns RES_NS=192.103.98.2
 |./delegated -v -P__:3129 SERVER=http RESOLV=dns RES_NS=2001_670_aa__11
 |
 |I noticed this because the testserver has only ipv6 addresses to 
 |nameservers in /etc/resolv.conf.

It is because the socket of DeleGate to communicate with DNS servers
(resolvers) is hard coded to be in IPv4.  In the next release (9.6.3-pre6)
I'll modify it as the enclosed patch to cope with a set of IPv6 servers.
In future, it should be modified to cope with DNS servers at addresses
at mixture of IPv4/IPv6...

 |Problem 2:
...
 |Problem 3:

As I wrote in "IPv6NOTE.txt", I have not a plan to support the URL
notation "http://[x:x:x:x:x:x:x:x]".

Cheers,
Yutaka
--
  9 9   Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/
 ( ~ )  National Institute of Advanced Industrial Science and Technology
_<   >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan
Do the more with the less -- B. Fuller


*** ../delegate9.6.3-pre5/resolvy/resolv.c	Sat Feb 17 23:09:44 2007
--- resolvy/resolv.c	Sat Jul 28 10:53:18 2007
***************
*** 543,573 ****
  {	int len;
  	int rcode;
  	int mysock;
  	int af;
  	const char *me;
  
  	if( Me == 0 )
  		Me = NewStruct(VSAddr);
  
  	af = AF_INET;
- /*
- af = AF_INET6;
- */
  	mysock = socket(af,SOCK_DGRAM,0);
  	if( mysock < 0 ){
  		debug(DBG_FORCE,"RESOLVY cannot get socket() [errno=%d]\n",
  			errno);
  		return mysock;
  	}
  	/*
  	len = VSA_atosa(Me,0,"0.0.0.0");
  	*/
  	me = "0.0.0.0";
- /*
- me = "::";
- */
  	len = VSA_atosa(Me,0,me);
  	rcode = bind(mysock,(SAP)Me,len);
  	if( rcode < 0 ){
  		debug(DBG_FORCE,"cannot bind() [errno=%d]\n",errno);
  		close(mysock);
--- 543,575 ----
  {	int len;
  	int rcode;
  	int mysock;
  	int af;
  	const char *me;
+ 	VSAddr Ns;
  
  	if( Me == 0 )
  		Me = NewStruct(VSAddr);
  
+ 	RES_getns1(0,&Ns);
+ 	if( VSA_af(&Ns) == AF_INET6 ){
+ 		af = AF_INET6;
+ 	}else
  	af = AF_INET;
  	mysock = socket(af,SOCK_DGRAM,0);
  	if( mysock < 0 ){
  		debug(DBG_FORCE,"RESOLVY cannot get socket() [errno=%d]\n",
  			errno);
  		return mysock;
  	}
  	/*
  	len = VSA_atosa(Me,0,"0.0.0.0");
  	*/
+ 	if( VSA_af(&Ns) == AF_INET6 ){
+ 		me = "::";
+ 	}else
  	me = "0.0.0.0";
  	len = VSA_atosa(Me,0,me);
  	rcode = bind(mysock,(SAP)Me,len);
  	if( rcode < 0 ){
  		debug(DBG_FORCE,"cannot bind() [errno=%d]\n",errno);
  		close(mysock);


  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V