]> git.sesse.net Git - remoteglot/commitdiff
Merge branch 'master' of /home/magne/remoteglot
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 13 Nov 2016 18:14:06 +0000 (19:14 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 13 Nov 2016 18:14:06 +0000 (19:14 +0100)
1  2 
remoteglot.pl

diff --combined remoteglot.pl
index 5e1e94aa99cdf28cfbe1909b5f84a5d2817ef689,9a1ee4ca415b941ba926cd7036f49175480bdbae..7097306fecfd3795c407392164fcda012c5de1ed
@@@ -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;
        }