]> mj.ucw.cz Git - eval.git/commitdiff
Act sensibly when connection to the server is lost.
authorMartin Mares <mj@ucw.cz>
Fri, 29 Jun 2007 20:22:53 +0000 (22:22 +0200)
committerMartin Mares <mj@ucw.cz>
Fri, 29 Jun 2007 20:22:53 +0000 (22:22 +0200)
submit/MO/Submit.pm
submit/contest

index 554fda83c4168f4ceaf19e7b16b577b383b69e28..0aa165dfa84b9cac3740ad3f57becca5a49ad7e1 100644 (file)
@@ -126,7 +126,7 @@ sub connect($) {
 sub request($$) {
        my ($self, $obj) = @_;
        my $sk = $self->{"sk"};
-       ## $SIG{'PIPE'} = 'ignore';
+       local $SIG{'PIPE'} = 'ignore';
        $obj->write($sk);
        print $sk "\n";
        $sk->flush();
@@ -152,6 +152,7 @@ sub reply($) {
 sub send_file($$$) {
        my ($self, $fh, $size) = @_;
        my $sk = $self->{"sk"};
+       local $SIG{'PIPE'} = 'ignore';
        while ($size) {
                my $l = ($size < 4096 ? $size : 4096);
                my $buf = "";
index 8e7f3f24e75554c65c7854f9a858c73211364aad..7d5445663a099bcfd3d0ccc0dbf7d8b1c6170935 100755 (executable)
@@ -258,6 +258,7 @@ sub refresh()
        if (!$conn->is_connected && !$force_refresh) {
                # Retry
                $conn->log("Retrying");
+               $force_refresh = 1;
                refresh();
        }
 }