Net::EPP::Protocol - Low-level functions useful for both EPP clients and servers.
#!/usr/bin/perl use Net::EPP::Protocol; use strict; # send a frame down a socket: Net::EPP::Protocol->send_frame($socket, $xml); # get a frame from a socket: my $xml = Net::EPP::Protocol->get_frame($socket);
This module implements functions that are common to both EPP clients and servers that implement the TCP/TLS transport of the Extensible Provisioning Protocol (EPP) as defined in RFC 5734. The only user of this module is Net::EPP::Client, but it may be useful if you want to write an EPP server.
At least one EPP server implementation sends an unframed plain text error message when a client connects from an unauthorised address. As a result, when the first four bytes of the message are unpacked, the client tries to read and allocate a very large amount of memory.
If the apparent frame length received from a server exceeds the value of $Net::EPP::Protocol::THRESHOLD, the get_frame() method will croak.
$Net::EPP::Protocol::THRESHOLD
get_frame()
The default value is 1GB.
my $xml = Net::EPP::Protocol->get_frame($socket);
This method reads a frame from the socket and returns a scalar containing the XML. $socket must be an IO::Handle or one of its subclasses (ie IO::Socket::*).
$socket
IO::Socket::*
If the transmission fails for whatever reason, this method will croak(), so be sure to enclose it in an eval().
croak()
eval()
Net::EPP::Protocol->send_frame($socket, $xml);
This method prepares an RFC 5734 compliant EPP frame and transmits it to the remote peer. $socket must be an IO::Handle or one of its subclasses (ie IO::Socket::*).
If the transmission fails for whatever reason, this method will croak(), so be sure to enclose it in an eval(). Otherwise, it will return a true value.
my $frame = Net::EPP::Protocol->prep_frame($xml);
This method returns the XML frame in "wire format" with the protocol header prepended to it. The return value can be printed directly to an open socket, for example:
print STDOUT Net::EPP::Protocol->prep_frame($frame->toString);
This module is (c) 2008 - 2023 CentralNic Ltd and 2024 Gavin Brown. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Net::EPP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::EPP
CPAN shell
perl -MCPAN -e shell install Net::EPP
For more information on module installation, please visit the detailed CPAN module installation guide.