Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
(perl) A POE component that provides non-blocking ident services to your sessions
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


POE::Component::Server::Ident ===============

1). Background:

POE::Component::Server::Ident is POE (Perl Object Environment) component which
provides a non-blocking Identd for other components and POE sessions.

The component will mainly of use to the authors of client components and sessions
which sometimes have a requirement to prove the authenticity of the username that
has a connection to a server daemon

For example, the IRC protocol.

2). Implementation:

The component implements a listening server that waits for connections from clients
on a configurable port ( the default is unsurprisingly 113, see Quirks for more
detail ). Sessions 'register' with the component and in return are sent 
'identd_request' events when clients make valid ident requests. Sessions are then
free to answer the clients with either 'ident_server_reply' or 'ident_server_error'
events. The component will wait 10 seconds for a reply or error, before it sends
an ERROR: HIDDEN-USER to the client.

The default behaviour of the component is to close client connections once a 
response has been sent. This can be altered so that the component will answer 
multiple queries from the client.

3). Quirks:

The default bind port for the component is 113. This is one of the 'well-known'
ports, which on UN*X like systems requires privledges to bind to. This could be
a problem. How you get around this I leave to the reader. :)

One possible solution if you are running say an IRC bot behind a Network-Addressed
router is to port forward the external 113 port to a higher port on your host and
tell the component to bind to that.


This module is provided "as is".
No Income Tax. No V.A.T.
No money back. No guarantee.
Something went wrong with that request. Please try again.