AnyEvent-Ident

 view release on metacpan or  search on metacpan

lib/AnyEvent/Ident.pm  view on Meta::CPAN

package AnyEvent::Ident;

use strict;
use warnings;
use Exporter ();

our @ISA = qw( Exporter );
our @EXPORT_OK = qw( ident_server ident_client );

# ABSTRACT: Simple asynchronous ident client and server
our $VERSION = '0.08'; # VERSION


# keep the server object in scope so that
# we don't unbind from the port.  If you 
# don't want this, then use the OO interface
# for ::Server instead.
my $keep = [];

sub ident_server ($$$;$)
{
  my $hostname = shift;
  my $port     = shift;
  my $cb       = shift;
  require AnyEvent::Ident::Server;
  my $server = AnyEvent::Ident::Server
    ->new( hostname => $hostname, port => $port, %{ $_[0] || {} } )
    ->start($cb);
  push @$keep, $server;
  return $server;
}


sub ident_client ($$$$$)
{
  my $hostname = shift;
  my $port     = shift;
  require AnyEvent::Ident::Client;
  AnyEvent::Ident::Client
    ->new( hostname => $hostname, port => $port )
    ->ident(@_);
}


1;

__END__

=pod

=encoding UTF-8

=head1 NAME

AnyEvent::Ident - Simple asynchronous ident client and server

=head1 VERSION

version 0.08

=head1 SYNOPSIS

client:

 use AnyEvent::Ident qw( ident_client );
 
 ident_client '127.0.0.1', 113, $server_port, $client_port, sub {
   my($res) = @_; # isa AnyEvent::Client::Response 
   if($res->is_success)
   {
     print "user: ", $res->username, "\n"
     print "os:   ", $res->os, "\n"
   }
   else
   {



( run in 0.813 second using v1.01-cache-2.11-cpan-2398b32b56e )