version 1.12, 2003/08/18 11:08:07
|
version 1.14, 2003/09/08 09:45:20
|
Line 50
|
Line 50
|
# not the IP address of the host. |
# not the IP address of the host. |
# |
# |
# $Log$ |
# $Log$ |
|
# Revision 1.14 2003/09/08 09:45:20 foxr |
|
# Remove BUGBUG about comment about authentication as we'll be doing |
|
# host based authentication initially (no need for lonManage to do anything), |
|
# and certificate based later (need at that time). |
|
# |
|
# Revision 1.13 2003/08/19 10:26:24 foxr |
|
# Initial working version... tested against an unmodified lond this |
|
# produces an unknown_cmd response which is about what I'd expect. |
|
# |
# Revision 1.12 2003/08/18 11:08:07 foxr |
# Revision 1.12 2003/08/18 11:08:07 foxr |
# Debug request building in Transact. |
# Debug request building in Transact. |
# |
# |
Line 93
|
Line 102
|
# |
# |
# |
# |
|
|
|
|
|
|
# Modules required: |
# Modules required: |
|
|
use strict; # Because it's good practice. |
use strict; # Because it's good practice. |
use English; # Cause I like meaningful names. |
use English; # Cause I like meaningful names. |
use Getopt::Long; |
use Getopt::Long; |
use LONCAPA::Configuration; # To handle configuration I/O. |
use LONCAPA::Configuration; # To handle configuration I/O. |
|
use IO::Socket::UNIX; # To communicate with lonc. |
|
|
# File scoped variables: |
# File scoped variables: |
|
|
my %perlvar; # Perl variable defs from apache config. |
my %perlvar; # Perl variable defs from apache config. |
my %hostshash; # Host table as a host indexed hash. |
my %hostshash; # Host table as a host indexed hash. |
|
|
|
# |
|
# prints out utility's command usage info. |
|
# |
sub Usage { |
sub Usage { |
print "Usage:"; |
print "Usage:"; |
print <<USAGE; |
print <<USAGE; |
Line 127 USAGE
|
Line 142 USAGE
|
|
|
|
|
} |
} |
|
# |
|
# Lifted from lonnet.pm - and we need to figure out a way to get it back in. |
|
# Performas a transaction with lond via the lonc proxy server. |
|
# Parameter: |
|
# cmd - The text of the request. |
|
# host - The host to which the request ultimately goes. |
|
# Returns: |
|
# The text of the reply from the lond or con_lost if not able to contact |
|
# lond/lonc etc. |
|
# |
|
sub subreply { |
|
my ($cmd,$server)=@_; |
|
my $peerfile="$perlvar{'lonSockDir'}/$server"; |
|
my $client=IO::Socket::UNIX->new(Peer =>"$peerfile", |
|
Type => SOCK_STREAM, |
|
Timeout => 10) |
|
or return "con_lost"; |
|
print $client "$cmd\n"; |
|
my $answer=<$client>; |
|
if (!$answer) { $answer="con_lost"; } |
|
chomp($answer); |
|
return $answer; |
|
} |
|
# >>> BUGBUG <<< |
# |
# |
# Use Getopt::Long to parse the parameters of the program. |
# Use Getopt::Long to parse the parameters of the program. |
# |
# |
Line 238 sub ValidHost {
|
Line 276 sub ValidHost {
|
return defined $hostshash{$host}; |
return defined $hostshash{$host}; |
|
|
} |
} |
|
|
|
|
|
|
# |
# |
# Performs a transaction with lonc. |
# Performs a transaction with lonc. |
# By the time this is called, the transaction has already been |
# By the time this is called, the transaction has already been |
Line 278 sub Transact {
|
Line 319 sub Transact {
|
} else { |
} else { |
$request .= "\n"; |
$request .= "\n"; |
} |
} |
# Body is now built.. |
# Body is now built... transact with lond.. |
|
|
|
my $answer = subreply($request, $host); |
|
|
|
print "$answer\n"; |
|
|
print "$request"; |
|
} |
} |
# |
# |
# Called to push a file to the remote system. |
# Called to push a file to the remote system. |
Line 298 sub Transact {
|
Line 342 sub Transact {
|
# tablefile - name of the file containing the table to push. |
# tablefile - name of the file containing the table to push. |
# host - name of the host to push this file to. |
# host - name of the host to push this file to. |
# |
# |
|
# >>>BUGBUG<<< This belongs in lonnet.pm. |
|
# |
sub PushFile { |
sub PushFile { |
my $tablename = shift; |
my $tablename = shift; |
my $tablefile = shift; |
my $tablefile = shift; |
Line 339 sub PushFile {
|
Line 385 sub PushFile {
|
# process - The name of the process to reinit (lonc or lond). |
# process - The name of the process to reinit (lonc or lond). |
# host - The host in which this reinit will happen. |
# host - The host in which this reinit will happen. |
# |
# |
|
# >>>BUGBUG<<<< This belongs in lonnet.pm |
|
# |
sub ReinitProcess { |
sub ReinitProcess { |
my $process = shift; |
my $process = shift; |
my $host = shift; |
my $host = shift; |
Line 428 Usage:
|
Line 476 Usage:
|
=item strict |
=item strict |
=item Getopt::Long |
=item Getopt::Long |
=item English |
=item English |
|
=item IO::Socket::UNIX |
|
|
|
=head1 KEY Subroutines. |
|
|
=head1 CATEGORIES |
=head1 CATEGORIES |
Command line utility |
Command line utility |