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

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

revision 297 by dpavlin, Wed Aug 26 12:43:47 2009 UTC revision 366 by dpavlin, Sun Aug 30 11:45:59 2009 UTC
# Line 5  use strict; Line 5  use strict;
5    
6  use IO::Socket::INET;  use IO::Socket::INET;
7  use Regexp::Common qw/net/;  use Regexp::Common qw/net/;
8    use CouchDB;
9    
10  use client;  use client;
11  use server;  use server;
# Line 27  sub power_on { Line 28  sub power_on {
28          my $sock = IO::Socket::INET->new( Proto=>'udp' );          my $sock = IO::Socket::INET->new( Proto=>'udp' );
29          my $ip_addr = inet_aton($server::bcast);          my $ip_addr = inet_aton($server::bcast);
30          my $sock_addr = sockaddr_in($port, $ip_addr);          my $sock_addr = sockaddr_in($port, $ip_addr);
         $mac =~ s{:}{}g;  
31    
32          my $packet = pack('C6H*', 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, $mac x 16);          my $mac_payload = $mac;
33            $mac_payload =~ s{:}{}g;
34    
35            my $packet = pack('C6H*', 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, $mac_payload x 16);
36    
37          setsockopt($sock, SOL_SOCKET, SO_BROADCAST, 1);          setsockopt($sock, SOL_SOCKET, SO_BROADCAST, 1);
38          send($sock, $packet, 0, $sock_addr);          send($sock, $packet, 0, $sock_addr);
39          close ($sock);          close ($sock);
40    
41            CouchDB::audit( $target, { ip => $target, mac => $mac } );
42  }  }
43    
44  1;  1;

Legend:
Removed from v.297  
changed lines
  Added in v.366

  ViewVC Help
Powered by ViewVC 1.1.26