]> git.sesse.net Git - remoteglot/blobdiff - remoteglot.pl
Fix a null pointer exception in the frontend.
[remoteglot] / remoteglot.pl
index 4b674969c204e24c3a575c633cee431fbef4bf42..9cbf820d5dcd336d5e0bff16d118da711462e84f 100755 (executable)
@@ -67,7 +67,7 @@ select(TBLOG);
 $| = 1;
 
 select(STDOUT);
-umask 0022;
+umask 0022;  # analysis.json should not be served to users.
 
 # open the chess engine
 my $engine = open_engine($remoteglotconf::engine_cmdline, 'E1', sub { handle_uci(@_, 1); });
@@ -124,7 +124,7 @@ if (defined($remoteglotconf::server)) {
        );
 }
 if (defined($remoteglotconf::target)) {
-       if ($remoteglotconf::target =~ /^http:/) {
+       if ($remoteglotconf::target =~ /^https?:/) {
                fetch_pgn($remoteglotconf::target);
        } elsif (defined($t)) {
                $t->cmd("observe $remoteglotconf::target");
@@ -533,7 +533,7 @@ sub prettyprint_pv_no_cache {
 sub prettyprint_pv {
        my ($pos, @pvs) = @_;
 
-       my $cachekey = $pos->{'fen'} . join('', @pvs);
+       my $cachekey = $pos->fen() . join('', @pvs);
        if (exists($pos->{'prettyprint_cache'}{$cachekey})) {
                return @{$pos->{'prettyprint_cache'}{$cachekey}};
        } else {
@@ -847,6 +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;
        }