in reply to Correcting/changing a CPAN module interface

It looks like it should be possible to change HTTP::Daemon::SSL so that its default behavior is unchanged, but the timing-out behavior can be activated through a new option that old code won't use. The calls from HTTP::Daemon would have to be modified to use the new option. If you don't maintain HTTP::Daemon also, send the maintainer a patch.

From a cursory glance at the docs it seems that HTTP::Daemon::SSL is at least implicitly described as respecting a timeout, so the change could be considered a bug fix. I don't think a "big" version change is required.

Anno

Replies are listed 'Best First'.
Re^2: Correcting/changing a CPAN module interface
by aufflick (Deacon) on Jul 23, 2007 at 12:27 UTC
    Yes I agree it's a bug fix - I'm probably being anal.

    The thing is that HTTP::Daemon::SSL is supposed to be a drop-in replacement for HTTP::Daemon, which has a very established api, so I think I do need to change the default behaviour.

    I actually wasn't aware that CPAN didn't install modules with a _xx development version number, so I'll go that route first and solicit feedback that way.

      You can also turn it around and give HTTP::Daemon::SSL a new parameter to enforce bug compatibility. That could happen at load time, as in
      use HTTP::Daemon::SSL qw( compat);
      but it could be individual with accept( ..., compat => 1. In the (unlikely) case that something relies on accept not to time out, there'd be a way to fix it.

      Anno

        I like it - great thought.