/[pxelator]/lib/PXElator/network.pm
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 /lib/PXElator/network.pm

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

revision 179 by dpavlin, Sun Aug 9 16:37:46 2009 UTC revision 278 by dpavlin, Thu Aug 20 19:44:19 2009 UTC
# Line 6  use strict; Line 6  use strict;
6  use File::Slurp;  use File::Slurp;
7    
8  use server;  use server;
9    use ip;
10    
11  sub ifconfig {  sub ifconfig {
12          my $dev = shift;          my $dev = shift;
13          `/sbin/ifconfig $dev`          `/sbin/ifconfig $dev`
14  }  }
15    
16    sub setup {
17    
18            if ( my $dev = $ENV{DEV} ) {
19                    warn "W: running under device $dev, not configuring network\n";
20                    return;
21            }
22    
23            my $ifconfig = ifconfig('virtual');
24            if ( $ifconfig !~ m{UP} ) {
25                    system "brctl addbr virtual";
26                    system "brctl setfd virtual 0";
27                    system("/sbin/ifconfig virtual $server::ip netmask $server::netmask") == 0 || warn "W: $!";
28            } else {
29                    warn "OK $ifconfig\n";
30            }
31            if ( my $dev = ip::default_route_dev() ) {
32                    system "sudo sysctl -w net.ipv4.ip_forward=1";
33                    my $network = ip::from_int( ip::to_int($server::ip) & ip::to_int($server::netmask) );
34                    warn "# network $network";
35                    system "sudo iptables -t nat -L POSTROUTING -n | grep $network || sudo iptables -t nat -A POSTROUTING -s $server::ip/$server::netmask -o wlan0 -j MASQUERADE";
36                    warn "masquarade to $dev";
37            }
38    }
39    
40  sub tap {  sub tap {
41    
42          if ( my $dev = $ENV{DEV} ) {          if ( my $dev = $ENV{DEV} ) {
# Line 28  sub tap { Line 53  sub tap {
53    
54          if ( $interfaces !~ m{tap0}s ) {          if ( $interfaces !~ m{tap0}s ) {
55    
56                  system "sudo apt-get install vde2";                  system "sudo apt-get install -y vde2";
57    
58                  write_file '/tmp/interfaces', qq{                  write_file '/tmp/interfaces', qq{
59    

Legend:
Removed from v.179  
changed lines
  Added in v.278

  ViewVC Help
Powered by ViewVC 1.1.26