NAME
Net::SAP - Session Announcement Protocol (rfc2974)
SYNOPSIS
use Net::SAP;
my $sap = Net::SAP->new( 'ipv6-global' );
my $packet = $sap->receive();
$sap->close();
DESCRIPTION
Net::SAP allows receiving and sending of SAP (RFC2974) multicast packets over IPv4 and IPv6.
METHODS
- $sap = Net::SAP->new( $group )
-
The new() method is the constructor for the
Net::SAP
class. You must specify the SAP multicast group you want to join:ipv4 ipv6-node ipv6-link ipv6-site ipv6-org ipv6-global
Alternatively you may pass the address of the multicast group directly. When the
Net::SAP
object is created, it joins the multicast group, ready to start receiving or sending packets. - $packet = $sap->receive()
-
This method blocks until a valid SAP packet has been received. The packet is parsed, decompressed and returned as a
Net::SAP::Packet
object. - $sap->send( $data )
-
This method sends out SAP packet on the multicast group that the
Net::SAP
object to bound to. The $data parameter can either be aNet::SAP::Packet
object, aNet::SDP
object or raw SDP data.Passing a
Net::SAP::Packet
object gives the greatest control over what is sent. Otherwise default values will be used.If no origin_address has been set, then it is set to the IP address of the first network interface.
Packets greater than 1024 bytes will not be sent. This method returns 0 if packet was sent successfully.
- $group = $sap->group()
-
Returns the address of the multicast group that the socket is bound to.
- $sap->close()
-
Leave the SAP multicast group and close the socket.
TODO
- add method of choosing the multicast interface to use
- ensure that only public v4 addresses are used as origin
- Packet decryption and validation
- Improve test script ?
- Move some XS functions to Net::SAP::Packet ?
SEE ALSO
Net::SAP::Packet, Net::SDP, perl(1)
http://www.ietf.org/rfc/rfc2974.txt
BUGS
Please report any bugs or feature requests to bug-net-sap@rt.cpan.org
, or through the web interface at http://rt.cpan.org. I will be notified, and then you will automatically be notified of progress on your bug as I make changes.
AUTHOR
Nicholas Humfrey, njh@ecs.soton.ac.uk
COPYRIGHT AND LICENSE
Copyright (C) 2004 University of Southampton
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.005 or, at your option, any later version of Perl 5 you may have available.