From: Steinar H. Gunderson Date: Sun, 13 Nov 2016 18:14:06 +0000 (+0100) Subject: Merge branch 'master' of /home/magne/remoteglot X-Git-Url: https://git.sesse.net/?p=remoteglot;a=commitdiff_plain;h=661cf41244a9be2e618b2a5fe2cf3c03a7e79009;hp=-c Merge branch 'master' of /home/magne/remoteglot --- 661cf41244a9be2e618b2a5fe2cf3c03a7e79009 diff --combined remoteglot.pl index 5e1e94a,9a1ee4c..7097306 --- a/remoteglot.pl +++ b/remoteglot.pl @@@ -67,7 -67,7 +67,7 @@@ select(TBLOG) $| = 1; select(STDOUT); - umask 0022; + umask 0027; # analysis.json should not be served to users. # open the chess engine my $engine = open_engine($remoteglotconf::engine_cmdline, 'E1', sub { handle_uci(@_, 1); }); @@@ -94,40 -94,45 +94,45 @@@ if (defined($engine2)) print "Chess engine ready.\n"; # now talk to FICS - my $t = Net::Telnet->new(Timeout => 10, Prompt => '/fics% /'); - $t->input_log(\*FICSLOG); - $t->open($remoteglotconf::server); - $t->print($remoteglotconf::nick); - $t->waitfor('/Press return to enter the server/'); - $t->cmd(""); - - # set some options - $t->cmd("set shout 0"); - $t->cmd("set seek 0"); - $t->cmd("set style 12"); - - my $ev1 = AnyEvent->io( - fh => fileno($t), - poll => 'r', - cb => sub { # what callback to execute - while (1) { - my $line = $t->getline(Timeout => 0, errmode => 'return'); - return if (!defined($line)); - - chomp $line; - $line =~ tr/\r//d; - handle_fics($line); - } - } - ); + my ($t, $ev1); + if (defined($remoteglotconf::server)) { + $t = Net::Telnet->new(Timeout => 10, Prompt => '/fics% /'); + $t->input_log(\*FICSLOG); + $t->open($remoteglotconf::server); + $t->print($remoteglotconf::nick); + $t->waitfor('/Press return to enter the server/'); + $t->cmd(""); + + # set some options + $t->cmd("set shout 0"); + $t->cmd("set seek 0"); + $t->cmd("set style 12"); + + $ev1 = AnyEvent->io( + fh => fileno($t), + poll => 'r', + cb => sub { # what callback to execute + while (1) { + my $line = $t->getline(Timeout => 0, errmode => 'return'); + return if (!defined($line)); + + chomp $line; + $line =~ tr/\r//d; + handle_fics($line); + } + } + ); + } if (defined($remoteglotconf::target)) { - if ($remoteglotconf::target =~ /^http:/) { + if ($remoteglotconf::target =~ /^https?:/) { fetch_pgn($remoteglotconf::target); - } else { + } elsif (defined($t)) { $t->cmd("observe $remoteglotconf::target"); } } - print "FICS ready.\n"; + if (defined($t)) { + print "FICS ready.\n"; + } # Engine events have already been set up by Engine.pm. EV::run; @@@ -423,7 -428,9 +428,9 @@@ sub handle_position # hour, the analysis/relay has most likely stopped # and we should stop hogging server resources. # - $t->cmd("date"); + if (defined($t)) { + $t->cmd("date"); + } } sub parse_infos { @@@ -840,6 -847,14 +847,14 @@@ sub output_json if (defined($remoteglotconf::engine_details)) { $json->{'engine'}{'details'} = $remoteglotconf::engine_details; } + my @grpc_backends = (); + if (defined($remoteglotconf::engine_grpc_backend)) { + push @grpc_backends, $remoteglotconf::engine_grpc_backend; + } + if (defined($remoteglotconf::engine2_grpc_backend)) { + push @grpc_backends, $remoteglotconf::engine2_grpc_backend; + } + $json->{'internal'}{'grpc_backends'} = \@grpc_backends; if (defined($remoteglotconf::move_source)) { $json->{'move_source'} = $remoteglotconf::move_source; }