Diff for /loncom/LondConnection.pm between versions 1.31 and 1.35

version 1.31, 2004/06/17 09:26:09 version 1.35, 2004/09/21 10:51:42
Line 42  use LONCAPA::lonssl; Line 42  use LONCAPA::lonssl;
   
   
   
 my $DebugLevel=11;  my $DebugLevel=0;
 my %hostshash;  my %hostshash;
 my %perlvar;  my %perlvar;
 my $LocalDns = ""; # Need not be defined for managers.  my $LocalDns = ""; # Need not be defined for managers.
Line 153  Dump the internal state of the object: F Line 153  Dump the internal state of the object: F
   
 sub Dump {  sub Dump {
     my $self   = shift;      my $self   = shift;
       my $level  = shift;
       my $now    = time;
       my $local  = localtime($now);
       
       if ($level <= $DebugLevel) {
    return;
       }
   
       
     my $key;      my $key;
     my $value;      my $value;
     print STDERR "Dumping LondConnectionObject:\n";      print STDERR "[ $local ] Dumping LondConnectionObject:\n";
     while(($key, $value) = each %$self) {      while(($key, $value) = each %$self) {
  print STDERR "$key -> $value\n";   print STDERR "$key -> $value\n";
     }      }
Line 253  sub new { Line 262  sub new {
  return undef; # Inidicates the socket could not be made.   return undef; # Inidicates the socket could not be made.
     }      }
     my $socket = $self->{Socket}; # For local use only.      my $socket = $self->{Socket}; # For local use only.
     #  If we are local, we'll first try local auth mode, otherwise, we'll try the       #  If we are local, we'll first try local auth mode, otherwise, we'll try
     #  ssl auth mode:      #  the ssl auth mode:
   
     Debug(8, "Connecting to $DnsName I am $LocalDns");      Debug(8, "Connecting to $DnsName I am $LocalDns");
     my $key;      my $key;
Line 284  sub new { Line 293  sub new {
     return undef;      return undef;
  }   }
   
     }       }
     else {      else {
  $self->{AuthenticationMode} = "ssl";   #  Remote peer:  I'd like to do ssl, but if my host key or certificates
  $self->{TransactionRequest} = "init:ssl\n";   #  are not all installed, my only choice is insecure, if that's 
    #  allowed:
   
    my ($ca, $cert) = lonssl::CertificateFile;
    my $sslkeyfile  = lonssl::KeyFile;
   
    if((defined $ca)  && (defined $cert) && (defined $sslkeyfile)) {
   
       $self->{AuthenticationMode} = "ssl";
       $self->{TransactionRequest} = "init:ssl\n";
    } else {
       if($InsecureOk) { # Allowed to do insecure:
    $self->{AuthenticationMode} = "insecure";
    $self->{TransactionRequest} = "init\n";
       }
       else { # Not allowed to do insecure...
    $socket->close;
    return undef;
       }
    }
     }      }
   
     #      #
Line 315  sub new { Line 343  sub new {
     # return the object :      # return the object :
   
     Debug(9, "Initial object state: ");      Debug(9, "Initial object state: ");
     $self->Dump();      $self->Dump(9);
   
     return $self;      return $self;
 }  }
Line 527  sub Readable { Line 555  sub Readable {
     my $answer = $self->{TransactionReply};      my $answer = $self->{TransactionReply};
     if($answer =~ /^enc\:/) {      if($answer =~ /^enc\:/) {
  $answer = $self->Decrypt($answer);   $answer = $self->Decrypt($answer);
  $self->{TransactionReply} = $answer;   $self->{TransactionReply} = "$answer\n";
     }      }
   
     # finish the transaction      # finish the transaction
Line 925  sub Decrypt { Line 953  sub Decrypt {
     #  $length tells us the actual length of the decrypted string:      #  $length tells us the actual length of the decrypted string:
   
     $decrypted = substr($decrypted, 0, $length);      $decrypted = substr($decrypted, 0, $length);
       Debug(9, "Decrypted $EncryptedString to $decrypted");
   
     return $decrypted;      return $decrypted;
   
Line 978  sub CreateCipher { Line 1007  sub CreateCipher {
     if($cipher) {      if($cipher) {
  $self->{Cipher} = $cipher;   $self->{Cipher} = $cipher;
  Debug("Cipher created  dumping socket: ");   Debug("Cipher created  dumping socket: ");
  $self->Dump();   $self->Dump(9);
  return 1;   return 1;
     }      }
     else {      else {

Removed from v.1.31  
changed lines
  Added in v.1.35


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