Есть перловский SSL сервер:
if(!($sock = IO::Socket::SSL->new( Listen => $Listen,
LocalAddr => $LocalAddress,
LocalPort => $LocalPort,
Proto => 'tcp',
Reuse => 1,
SSL_key_file => $SSLkeyfile,
SSL_cert_file => $SSLcertfile,
SSL_verify_mode => $SSLverifymode,
SSL_passwd_cb => sub {return "bluebell"},
)))
{
warn "unable to create socket: ", &IO::Socket::SSL::errstr, "\n";
print "unable to create socket\n";
exit(0);
}
while(1){
$s = $sock->accept();
if( ! $s ) {
warn "error: ", $sock->errstr, "\n";
next;
}
my $pid=fork();
if( $pid==0){
#child
#read command
$sock->close();
CommandProcess($s);
exit(0);
}
else{
$s->close(); # закрывает соединение с клиентом!!!!
print "Children pid - $pid\n";
}
}
Есть сервак который создаёт отдельный процесс на каждый коннект, юзается класс для SSL сокета
$sock->accept() создаёт клиентский сокет и потом случаются вот такие такие траблы
1. если я в родителе закрываю клиентский сокет - то полностью закрывается соединение с клиентом
2. если два раза паралельно подконектиться а потом закрыть последнее соединение то первое соединение закроется тоже
спасибо