Le jeudi 14 juin 2007 à 21:05 -0700, Enrique Rodriguez a écrit :
> On 6/14/07, Enrique Rodriguez <[EMAIL PROTECTED]> wrote:
> > ...
> > I have duplicated this behavior and I have traced it back to bad
> > encoding introduced in the last patch. Unfortunately, the bad
> > encoding is reinforced by unit tests that I will have to correct, as
> > well. I think I will have it sorted out in the next couple hours.
>
> Hi, Julien,
>
> I corrected the issue with encoding and was able to verify interop
> with the dig command.
>
> If you'll 'svn up' you will get the fix as well as 2 new files: (1) a
> stub implementation of the store called RecordStoreStub that is much
> like your store and (2) a Main class with a main() method for starting
> a DNS server with the stub store. A couple things to look at:
>
> a) The Main class shows how to use a class called "DnsServer" to
> start an instance of a server. This is what we use in ApacheDS and it
> encapsulates the combination of DNS configuration, a MINA UDP
> acceptor, and a store implementation. By starting a DnsServer with a
> DnsConfiguration and any store impl you can have a little DNS server.
> This Main uses the stub store but in ApacheDS, of course, we use a
> JNDI store.
>
> b) The store stub uses the modifier as I described.
>
> If you run the Main you can hit the DNS instance by default with:
>
> $ dig @localhost -p 10053 www.example.com
>
> I made the store return 2 records to make sure the encoding worked for
> more than one record.
>
> HTH,
>
> Enrique
Hi Enrique,
I updated and now it's working like a charm :)
A big thanks ! I'll be able to start adapting it to my needs.
In org.apache.directory.server.dns.service.GetResourceRecords
try
{
records = store.getRecords( question );
}
catch ( LdapNameNotFoundException lnnfe )
{
log.debug( "Name for DNS record search does not exist.", lnnfe );
throw new DnsException( ResponseCode.NAME_ERROR );
}
LdapNameNotFoundException is an ldap exception, perhaps introducing a
new RecordNotFoundException is an idea ?
And changing RecordStore for using Exception subclasses :
public interface RecordStore
{
public Set<ResourceRecord> getRecords( QuestionRecord question )
throws RecordNotFoundException;
}
That would make the implementation of custom RecordStore easier.
WDYT ?
Julien