Diff for /loncom/LondConnection.pm between versions 1.24 and 1.28

version 1.24, 2004/02/09 10:57:37 version 1.28, 2004/03/02 14:57:40
Line 279  sub Readable { Line 279  sub Readable {
     my $self    = shift;      my $self    = shift;
     my $socket  = $self->{Socket};      my $socket  = $self->{Socket};
     my $data    = '';      my $data    = '';
     my $rv      = $socket->recv($data, POSIX::BUFSIZ,  0);      my $rv;
       if ($socket) {
    eval {
       $rv = $socket->recv($data, POSIX::BUFSIZ, 0);
    }
       } else {
    $self->Transition("Disconnected");
    return -1;
       }
     my $errno   = $! + 0;             # Force numeric context.      my $errno   = $! + 0;             # Force numeric context.
   
     unless (defined($rv) && length $data) {# Read failed,      unless (defined($rv) && length $data) {# Read failed,
Line 317  sub Readable { Line 325  sub Readable {
     $self->Transition("ChallengeReceived");      $self->Transition("ChallengeReceived");
     $self->{TimeoutRemaining}   = $self->{TimeoutValue};      $self->{TimeoutRemaining}   = $self->{TimeoutValue};
     return 0;      return 0;
    }  elsif ($self->{State} eq "ChallengeReplied") {   }  elsif ($self->{State} eq "ChallengeReplied") {
       if($self->{TransactionReply} ne "ok\n") {      if($self->{TransactionReply} ne "ok\n") {
          $self->Transition("Disconnected");   $self->Transition("Disconnected");
          $socket->close();   $socket->close();
          return -1;   return -1;
       }      }
       $self->Transition("RequestingVersion");      $self->Transition("RequestingVersion");
       $self->{InformReadable}   = 0;      $self->{InformReadable}   = 0;
       $self->{InformWritable}   = 1;      $self->{InformWritable}   = 1;
       $self->{TransactionRequest} = "version\n";      $self->{TransactionRequest} = "version\n";
       return 0;      return 0;
    } elsif ($self->{State} eq "ReadingVersionString") {   } elsif ($self->{State} eq "ReadingVersionString") {
       $self->{LondVersion}       = chomp($self->{TransactionReply});      $self->{LondVersion}       = chomp($self->{TransactionReply});
       $self->Transition("SetHost");      $self->Transition("SetHost");
       $self->{InformReadable}    = 0;      $self->{InformReadable}    = 0;
       $self->{InformWritable}    = 1;      $self->{InformWritable}    = 1;
       my $peer = $self->{LoncapaHim};      my $peer = $self->{LoncapaHim};
       $self->{TransactionRequest}= "sethost:$peer\n";      $self->{TransactionRequest}= "sethost:$peer\n";
       return 0;      return 0;
  } elsif ($self->{State} eq "HostSet") { # should be ok.   } elsif ($self->{State} eq "HostSet") { # should be ok.
       if($self->{TransactionReply} ne "ok\n") {      if($self->{TransactionReply} ne "ok\n") {
          $self->Transition("Disconnected");   $self->Transition("Disconnected");
          $socket->close();   $socket->close();
          return -1;   return -1;
       }      }
    $self->Transition("RequestingKey");      $self->Transition("RequestingKey");
    $self->{InformReadable}  = 0;      $self->{InformReadable}  = 0;
    $self->{InformWritable}  = 1;      $self->{InformWritable}  = 1;
    $self->{TransactionRequest} = "ekey\n";      $self->{TransactionRequest} = "ekey\n";
    return 0;      return 0;
  } elsif ($self->{State}  eq "ReceivingKey") {   } elsif ($self->{State}  eq "ReceivingKey") {
     my $buildkey = $self->{TransactionReply};      my $buildkey = $self->{TransactionReply};
     my $key = $self->{LoncapaHim}.$perlvar{'lonHostID'};      my $key = $self->{LoncapaHim}.$perlvar{'lonHostID'};
Line 413  Returns  0 if successful, or -1 if not. Line 421  Returns  0 if successful, or -1 if not.
 sub Writable {  sub Writable {
     my $self     = shift; # Get reference to the object.      my $self     = shift; # Get reference to the object.
     my $socket   = $self->{Socket};      my $socket   = $self->{Socket};
     my $nwritten = $socket->send($self->{TransactionRequest}, 0);      my $nwritten;
       if ($socket) {
    eval {
       $nwritten = $socket->send($self->{TransactionRequest}, 0);
    }
       } else {
    # For whatever reason, there's no longer a socket left.
   
   
    $self->Transition("Disconnected");
    return -1;
       }
     my $errno    = $! + 0;      my $errno    = $! + 0;
     unless (defined $nwritten) {      unless (defined $nwritten) {
  if($errno != POSIX::EINTR) {   if($errno != POSIX::EINTR) {

Removed from v.1.24  
changed lines
  Added in v.1.28


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>