POE::C...::Ident(3pm)
π POE::C...::Ident π
okay bestie so this is the page for POE::C...::Ident(3pm) from the User Contributed Perl Documentation, and we're gonna get you fluent in it, no cap π«Ά
β¨ NAME β¨
POE::Component::Client::Ident β a component that gives your sessions non-blocking ident lookups. literally that's the whole job. π
πΈ SYNOPSIS πΈ
use POE::Component::Client::Ident;
my $poco_obj = POE::Component::Client::Ident->spawn ( 'Ident-Client' );
$kernel->post ( 'Ident-Client' => query => Socket => $socket );
$kernel->post ( 'Ident-Client' => query => PeerAddr => '10.0.0.1',
PeerPort => 2345,
SockAddr => '192.168.1.254',
SockPort => 6669,
BuggyIdentd => 1,
TimeOut => 30 );
look at that second form go π she's thorough. she's got receipts. she's got BuggyIdentd.
π¦ DESCRIPTION π¦
POE::Component::Client::Ident is a POE component, and what she does is provide non-blocking Ident lookup services to all the other components and sessions out here. the Ident protocol itself is described in RFC 1413 <http://www.faqs.org/rfcs/rfc1413.html> β go read it, iykyk π
the way this works: the component takes requests in the form of events, then spawns POE::Component::Client::Ident::Agent sessions to go do the actual Ident queries, and then hands the appropriate responses back to whichever session asked. middle management, but make it β¨helpfulβ¨
π CONSTRUCTOR π
spawn
takes exactly one argument, bestie: a kernel alias, which is the name you're christening this new component with πΌ
returns an object. that's it, that's the deal.
π METHODS π
these methods live on the poco object that spawn() hands you back.
session_idβ returns the component's session ID. that's the whole vibe. πͺͺshutdownβ takes no arguments. causes the component to terminate gracefully. any pendingIdent::Agentcomponents that are still running will be closed without returning events β so don't be waiting on them, they're gone, they left the group chat π
π INPUT π
the component accepts these events:
query
takes either this set of arguments:
PeerAddrβ the remote IP address where a TCP connection has originatedPeerPortβ the port where the TCP has originated fromSockAddrβ the address of our end of the connectionSockPortβ the port of our end of the connection
OR:
Socketβ the socket handle of the connection, and the component will work out all the details for you. and listen: ifSocketis defined, it overrides the settings of the other arguments. she said "i got it from here" and she meant it πββοΈ
also go check the documentation for Ident-Agent for extra parameters you may pass. more options, more slay.
shutdown
takes no arguments. causes the component to terminate gracefully. any pending Ident::Agent components that are running will be closed without returning events. same energy as the method above, fr fr.
π₯ OUTPUT π₯
these are the events you can expect to receive once you've submitted a query.
all the events returned by the component have a hashref as ARG0. that hashref contains the arguments that were passed to the component. and if a socket handle was passed, the hashref will contain the appropriate PeerAddr, PeerPort, SockAddr and Sock Port. π§Ί
ident_client_reply
returned when the component receives a USERID response from the identd. ARG0 is hashref, ARG1 is the opsys field, and ARG2 is the userid β or something else entirely, depending on whether the opsys field is set to 'OTHER'. ( don't blame me, read the RFC π )
ident_client_error
returned when the component receives an ERROR response from the identd, or there was some sort of communication error with the remote host ( ie. no identd running ), or it had some other problem with making the connection to the other host. no matter. ARG0 is hashref, ARG1 is the type of error. we move π
π AUTHOR π
Chris Williams, <chris@bingosnet.co.uk<gt>
π LICENSE π
Copyright Β© Chris Williams.
This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details. read your license bestie, it's giving responsible queen π«Ά
π SEE ALSO π
- RFC 1413 <http://www.faqs.org/rfcs/rfc1413.html>
POE::Component::Client::Ident::Agent
and that's the whole page, babes π this one shipped as part of perl v5.36.0, dated 2022-12-04, and yes the footer still calls it POE::C...::Ident(3pm) because she's got a long name and the terminal has a short attention span. periodt. πΈπ¦β¨
π¦ where this page comes from
- debian bookworm: libpoe-component-client-ident-perl 1.16-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libpoe-component-client-ident-perl 1.16-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libpoe-component-client-ident-perl 1.16-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libpoe-component-client-ident-perl 1.16-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libpoe-component-client-ident-perl 1.16-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms