/[Sack]/trunk/experiments/protocol-v3/server.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/experiments/protocol-v3/server.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 168 by dpavlin, Sun Nov 1 21:17:36 2009 UTC revision 169 by dpavlin, Mon Nov 2 16:09:40 2009 UTC
# Line 8  use IO::Select; Line 8  use IO::Select;
8    
9  use Data::Dump qw(dump);  use Data::Dump qw(dump);
10  use Storable qw();  use Storable qw();
11    use File::Slurp;
12    
13    my @cloud = qw(localhost tab.lan llin.lan);
14    
15    my $cloud_path = '/srv/Sack/etc/lib';
16    @cloud = read_file $cloud_path;
17    @cloud = map { chomp $_; $_ } @cloud;
18    
19    warn "# cloud ",dump( @cloud );
20    
21  my $listen_port = 4444;  my $listen_port = 4444;
22    
23  my $node_path = '/tmp/client.pl';  my $node_path = '/tmp/client.pl';
24    
25  my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or exit;  my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or die $!;
26  my $sel = IO::Select->new($lsn);  my $sel = IO::Select->new($lsn);
27    
28  my $info;  my $info;
# Line 35  sub fork_node { Line 44  sub fork_node {
44                  return;                  return;
45          } else {          } else {
46                  # child                  # child
47                  my $cmd = qq|ssh -R $port:127.0.0.1:$listen_port $host $node_path $port|;                  my $cmd = qq|ssh -F $cloud_path.ssh -R $port:127.0.0.1:$listen_port $host $node_path $port|;
48                  warn "# exec: $cmd\n";                  warn "# exec: $cmd\n";
49                  exec $cmd;                  exec $cmd;
50          }          }
# Line 43  sub fork_node { Line 52  sub fork_node {
52    
53  my $node_port = 4000;  my $node_port = 4000;
54    
55  foreach my $host ( qw/localhost tab.lan llin.lan/ ) {  foreach my $host ( @cloud ) {
56          system "scp client.pl $host:$node_path";          system "echo $node_path | cpio --create --dereference | ssh -T -F $cloud_path.ssh $host cpio --extract --make-directories --unconditional";
57          fork_node( $node_port++, $host );          fork_node( $node_port++, $host );
58  }  }
59    

Legend:
Removed from v.168  
changed lines
  Added in v.169

  ViewVC Help
Powered by ViewVC 1.1.26