NAME

IO::Select::SSL - IO::Socket::SSL compatible IO::Select

SYNOPSIS

use IO::Select::SSL;
my $sel = new IO::Select::SSL;

DESCRIPTION

This module is intended to be a drop-in replacement for IO::Select. However, the can_read method actually handles the very special IO::Socket::SSL handles correctly by returning those handles that still have at least some decrypted characters in the buffer. Without this module, can_read will choke forever (or until timeout) waiting for the socket to be ready to read even when there is still something just sitting in the buffer ready to be immediately read. Actually, this module will also correctly behave for any objects with any tied Handle objects that implement the "pending" method to return true if something is already in the buffer ready to read. And if the objects used are real IO::Handle objects or real Perl blob file handles, then of course this module will still work because it will fall back to behave exactly like the normal IO::Select does.

METHODS

All IO::Select methods will also be valid here since IO::Select::SSL isa IO::Select. Plus the following methods have been overloaded:

can_read ( [ $timeout ] )

Same as IO::Select except immediately returns handles with pending INPUT data.

select ( READ, WRITE, ERROR [, TIMEOUT ] )

Same as IO::Select except immediately returns handles with pending INPUT data.

pending_handles

Returns a list of readable handles with pending INPUT data.

INSTALLATION

perl Makefile.PL
make
make test
make install

DEPENDENCIES

Requires IO::Select to be installed.

AUTHOR

Rob Brown <bbb@cpan.org>

SEE ALSO

IO::Select. IO::Socket::SSL.

COPYRIGHT AND LICENSE

Copyright (C) 2006-2025 by Rob Brown <bbb@cpan.org>

This library is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0.