NAME Mail::Karmasphere::Client - Client for Karmasphere Reputation Server SYNOPSIS use Mail::Karmasphere::Client qw(:all); my $client = new Mail::Karmasphere::Client( PeerAddr => '123.45.6.7', PeerPort => 8666, ); my $query = new Mail::Karmasphere::Query(); $query->identity('123.45.6.7', IDT_IP4); $query->composite('karmasphere.email-sender'); my $response = $client->ask($query, 6); print $response->as_string; my $id = $client->send($query); my $response = $client->recv($query, 12); my $response = $client->recv($id, 12); my $response = $client->query( Identities => [ ... ] Composite => 'karmasphere.email-sender', ); DESCRIPTION The Perl Karma Client API consists of three objects: The Query, the Response and the Client. The user constructs a Query and passes it to a Client, which returns a Response. CONSTRUCTOR The class method new(...) constructs a new Client object. All arguments are optional. The following parameters are recognised as arguments to new(): PeerAddr The IP address or hostname to contact. See IO::Socket::INET. The default is 'query.karmasphere.com'. PeerPort The TCP or UDP to contact. See IO::Socket::INET. The default is 8666. Proto Either 'udp' or 'tcp'. The default is 'udp' because it is faster. Principal An identifier used to authenticate client connections. This may be a login or account name. The precise details will depend on the policy of the query server being used. Credentials The credentials used to authenticate the principal. This may be a password, or a certificate. The precise details may depend on the policy of the query server being used. Debug Either a true value for debugging to stderr, or a custom debug handler. The custom handler will be called with N arguments, the first of which is a string 'debug context'. The custom handler may choose to ignore messages from certain contexts. METHODS $response = $client->ask($query, $timeout) Returns a Mail::Karmasphere::Response to a Mail::Karmasphere::Query. The core of this method is equivalent to $client->recv($client->send($query), $timeout) The method retries up to 3 times, doubling the timeout each time. If the application requires more control over retries or backoff, it should use send() and recv() individually. $timeout is optional. $id = $client->send($query) Sends a Mail::Karmasphere::Query to the server, and returns the id of the query, which may be passed to recv(). $response = $client->recv($id, $timeout) Returns a Mail::Karmasphere::Response to the query with id $id, assuming that the query has already been sent using send(). If no matching response is read before the timeout, undef is returned. $response = $client->query(...) A convenience method, equivalent to $client->ask(new Mail::Karmasphere::Query(...)); See Mail::Karmasphere::Query for more details. EXPORTS IDT_IP4 IDT_IP6 IDT_DOMAIN IDT_EMAIL IDT_URL Identity type constants. AUTHENTIC SMTP_CLIENT_IP SMTP_ENV_HELO SMTP_ENV_MAIL_FROM SMTP_ENV_RCPT_TO SMTP_HEADER_FROM_ADDRESS Identity tags, indicating the context of an identity to the server. FL_FACTS A flag indicating that all facts must be returned explicitly in the Response. BUGS UDP retries are not yet implemented. SEE ALSO Mail::Karmasphere::Query, Mail::Karmasphere::Response, http://www.karmasphere.com/, Mail::SpamAssassin::Plugin::Karmasphere COPYRIGHT Copyright (c) 2005-2006 Shevek, Karmasphere. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.