Hello albus123,

According to the comments within the loop itself, the call to Net::SSLeay::connect may fail because:

  1. the connection failed or an unknown error occurred (in which case: the loop exits via return $self->fatal_ssl_error();)
  2. the handshake is incomplete and either the socket is non-blocking or no timeout was specified (in which case: the loop exits via return; which returns either the empty list, undef, or nothing, depending on the context in which the subroutine was called)
  3. the handshake timed out (result as in 2)
  4. the socket was not ready, either for reading or writing (in which case the timeout value is adjusted and the loop repeats via redo)

There are both read and write operations performed on the socket because the SSL handshake involves a back-and-forth exchange between the client and the server. See Transport_Layer_Security#TLS_handshake.

See redo for the loop control. I have no idea what the statements containing ${*$self} are supposed to do :-( but they are only a part of the error-handling mechanism.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


In reply to Re: Query regarding connect_SSL (IO::Socket::SSL.pm) by Athanasius
in thread Query regarding connect_SSL (IO::Socket::SSL.pm) by albus123

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.