Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: How to debug failure in HTTP::Daemon::SSL->new()

by Anonymous Monk
on Apr 25, 2014 at 22:24 UTC ( [id://1083873]=note: print w/replies, xml ) Need Help??


in reply to How to debug failure in HTTP::Daemon::SSL->new()

Just some debugging ideas:

Then it stopped working

What changed? I guarantee you something changed. New version of Perl, update of the module or a related module, OS updates, ...?

You can step through the code with the debugger.

Replies are listed 'Best First'.
Re^2: How to debug failure in HTTP::Daemon::SSL->new()
by eye (Chaplain) on Apr 26, 2014 at 15:51 UTC
    Since we live in a completely deterministic universe, something has surely changed.

    The OP doesn't mention whether the remote server was validated. Maybe it is no longer at 10.0.0.1. Maybe the server has been updated due to some enormous flaw in a widely used library. Maybe the server has a new certificate and there are trust issues. When looking for what has changed, remember that it may not be something you did.

    NB: I find it handy to leave comments in my code on how to test external resources (usually needed during development anyway). I prefer commands I can use from a shell prompt as they tend to be more stable over time (IMO).

      The OP doesn't mention whether the remote server was validated. Maybe it is no longer at 10.0.0.1.

      This is the server code. (The client just uses wget.) And yes, 10.0.0.1 is correct.

Re: How to debug failure in HTTP::Daemon::SSL->new()
by jonadab (Parson) on Apr 28, 2014 at 17:18 UTC
    I guarantee you something changed.

    Doubtless.

    Unfortunately, it was several weeks before I noticed that it had stopped working, so tracking down exactly what had changed at that precise moment is not entirely straightforward.

      Oh. Any luck with the debugger?

      HTTP::Daemon::SSL inherits its new() method pretty much directly from IO::Socket::SSL, so the problem should be coming from there. That module had a release just a few days ago, perhaps you could try pulling the latest version of that and opening a socket with that, maybe that'll get you an improvement, or at least an error message?

        Any luck with the debugger?

        Not as yet. The control flow through IO::Socket::SSL's constructor appears to be rather baroque, and I'm having rather a hard time following what's going on. (I'm not very comfortable with debuggers at the best of times. They never seem to want to tell you what you really need to know. In this case, I probably mostly want what Carp would tell me if called from right before the innermost return, but I haven't managed to successfully identify said innermost return.)

        I am seriously considering switching to a different module. Perhaps I might also contemplate moving from HTTPS to SSH while I'm at it. I have never had a great deal of fondness for HTTPS, particularly in terms of how it handles certificates.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1083873]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2024-03-29 12:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found