http://www.perlmonks.org?node_id=901570


in reply to SSL with HTTP::Server::Simple and Net::Server

I've run this through the debugger a few times, without quite figuring out how these parameters are supposed to be passed in, nor why they are missing from $s->{server} where Net::Server::Proto::SSLEAY is expecting them.

That's because the keys SSL_cert_file SSL_key_file are missing from the default structure in sub options from Net/Server.pm line 1338 (as of version 0.99) - it's a bug:

### set up default structure sub options { my $self = shift; my $prop = $self->{server}; my $ref = shift; foreach ( qw(port host proto allow deny cidr_allow cidr_deny) ){ if (! defined $prop->{$_}) { $prop->{$_} = []; } elsif (! ref $prop->{$_}) { $prop->{$_} = [$prop->{$_}]; # nicely turn us into an arrayref i +f we aren't one already } $ref->{$_} = $prop->{$_}; } foreach ( qw(conf_file user group chroot log_level log_file pid_file background setsid listen reverse_lookups syslog_logsock syslog_ident syslog_logopt syslog_facility no_close_by_child no_client_stdout tie_client_stdout tied_stdout_callback + tied_stdin_callback leave_children_open_on_hup ) ){ $ref->{$_} = \$prop->{$_}; } }

Add the keys below leave_children_open_on_hup and presto - it works, at least it doesn't die anymore.

update: I'm not sure whether it's the right place to add those keys, since the machinery of those modules is hard to grasp with little time at hand. Maybe you should file a bug report.