The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::DSN::Resolver - Resolve hostname within dsn string

SYNOPSIS

  use DBIx::DSN::Resolver;

  my $dsn = 'dbi:mysql:database=mytbl;host=myserver.example'

  my $resolver = DBIx::DSN::Resolver->new();
  $dsn = $resolver->resolv($dsn);

  is $dsn, 'dbi:mysql:database=mytbl;host=10.0.9.41';

DESCRIPTION

DBIx::DSN::Resolver parses dsn string and resolves hostname within dsn. This module allows customize the resolver function.

CUSTOMIZE RESOLVER

use the resolver argument

  use Net::DNS::Lite qw();
  use Socket;

  $Net::DNS::Lite::CACHE = Cache::LRU->new(
    size => 256,
  );
  $Net::DNS::Lite::CACHE_TTL = 5;
  
  my $resolver = DBIx::DSN::Resolver->new(
      resolver => sub { Socket::inet_ntoa(Net::DNS::Lite::inet_aton(@_)) }
  );
  $dsn = $resolver->resolv($dsn);

Default:

  resolver => sub { Socket::inet_ntoa(Socket::inet_aton(@_)) }

AUTHOR

Masahiro Nagano <kazeburo {at} gmail.com>

SEE ALSO

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.