None. See documentation. Following are some common errors to watch out for: To use client-side session caching, you will have to apply the patch in the patches/ subdirectory to Net::SSLeay, or download the patched version at http://www.fas.harvard.edu/~behrooz/Net_SSLeay.pm-1.26.tar.gz --------------------- IO::Socket::SSL does not currently support using both IPv4 and IPv6 in the same program. For a quick workaround, copy the module 'SSL.pm' to another named 'SSL6.pm' and adjust the package declaration accordingly. Support for this feature is planned in the next release. --------------------- If you plan on having IO::Socket::SSL sockets auto-close themselves when they go out of scope (like LWP::UserAgent expects), you will need to get Scalar::Util or WeakRef from CPAN (Scalar::Util comes standard with Perl 5.8.0 and above). This is because the self-tying mechanism that IO::Socket::SSL uses to appear simultaneously as an object and a glob reference only works if a circular reference is used. --------------------- Note that a random number generator is required for the proper operation of this module. Systems that have /dev/random or /dev/urandom are fine, but those that do not, like most versions of Solaris, will need to fetch one before installing IO::Socket::SSL. If you don't already have a favorite, try EGD (egd.sourceforge.net). --------------------- Versions of perl-ldap below v0.26 do not work with this version of IO::Socket::SSL because they contain a workaround for old versions of IO::Socket::SSL that breaks new versions. --------------------- Note that when writing a preforking server (a server that accepts a connection and then hands it off to a child for processing), it is best to handle SSL negotiation after the socket has been passed to the child (using socket_to_SSL()). If implemented so that the server handles negotiation, a failed negotiation may tie up the server until the connection times out. --------------------- One user mentioned that the following did not work as it should in IO::Socket::SSL, but worked in IO::Socket::INET: chomp($var = <$socket>); print ord(chop($var)); # Prints "10" for people using ASCII This is due to a bug in Perl that is fixed in 5.8.1. If you need a workaround, try one of the following: chomp($var = $socket->getline()); chomp($var = scalar <$socket>); chomp($var = $var = <$socket>); Any function that returns the value of <$socket> (in scalar context) unchanged will work. -- Peter Behroozi (behrooz at fas.harvard.edu)