mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-17 00:35:15 +00:00
spiceproxy: keep socket open on restart
This commit is contained in:
parent
de72f7ee54
commit
e1cc2687ef
@ -61,17 +61,37 @@ sub init {
|
||||
my $lockfh = IO::File->new(">>${accept_lock_fn}") ||
|
||||
die "unable to open lock file '${accept_lock_fn}' - $!\n";
|
||||
|
||||
my $socket = IO::Socket::INET->new(
|
||||
LocalAddr => undef, # all interfaces
|
||||
LocalPort => 3128,
|
||||
Listen => SOMAXCONN,
|
||||
Proto => 'tcp',
|
||||
ReuseAddr => 1) ||
|
||||
die "unable to create socket - $@\n";
|
||||
my ($socket, $sockfd);
|
||||
|
||||
# we often observe delays when using Nagle algorithm,
|
||||
# so we disable that to maximize performance
|
||||
setsockopt($socket, IPPROTO_TCP, TCP_NODELAY, 1);
|
||||
if (defined($sockfd = $ENV{PVE_DAEMON_SOCKET_3128}) &&
|
||||
$self->{env_restart_pve_daemon}) {
|
||||
|
||||
die "unable to parse socket fd '$sockfd'\n"
|
||||
if $sockfd !~ m/^(\d+)$/;
|
||||
$sockfd = $1; # untaint
|
||||
|
||||
$socket = IO::Socket::INET->new;
|
||||
$socket->fdopen($sockfd, 'w') ||
|
||||
die "cannot fdopen file descriptor '$sockfd' - $!\n";
|
||||
|
||||
} else {
|
||||
$socket = IO::Socket::INET->new(
|
||||
LocalAddr => undef, # all interfaces
|
||||
LocalPort => 3128,
|
||||
Listen => SOMAXCONN,
|
||||
Proto => 'tcp',
|
||||
ReuseAddr => 1) ||
|
||||
die "unable to create socket - $@\n";
|
||||
|
||||
# we often observe delays when using Nagle algorithm,
|
||||
# so we disable that to maximize performance
|
||||
setsockopt($socket, IPPROTO_TCP, TCP_NODELAY, 1);
|
||||
|
||||
$ENV{PVE_DAEMON_SOCKET_3128} = $socket->fileno;
|
||||
}
|
||||
|
||||
# remove FD_CLOEXEC bit to reuse on exec
|
||||
$socket->fcntl(Fcntl::F_SETFD(), 0);
|
||||
|
||||
$self->{server_config} = {
|
||||
base_handler_class => 'PVE::API2',
|
||||
|
Loading…
Reference in New Issue
Block a user