/[Intel-AMT]/trunk/lib/Intel/AMT/NetworkAdministration.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 /trunk/lib/Intel/AMT/NetworkAdministration.pm

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

revision 17 by dpavlin, Sun Aug 9 18:23:26 2009 UTC revision 18 by dpavlin, Sun Aug 9 19:40:05 2009 UTC
# Line 20  NetworkAdministrationSample.cpp: Line 20  NetworkAdministrationSample.cpp:
20    
21  =cut  =cut
22    
23    # vim swap hash: '<,'> s/^I\(.*\) => \(.*\),/^I\2 => '\1',/gc
24    my $LinkPolicy = {
25            0x01 => 'AVAILABLE_ON_AC_S0',
26            0x0E => 'AVAILABLE_ON_AC_SX',
27            0x10 => 'AVAILABLE_ON_DC_S0',
28            0xE0 => 'AVAILABLE_ON_DC_SX',
29    };
30    
31    
32    sub decode_mask {
33            my ($nr,$mask) = @_;
34            my @decode;
35            foreach my $m ( keys %$mask ) {
36                    push @decode, $mask->{$m} if $nr & $m;
37            }
38            return sprintf("%x", $nr) unless @decode;
39            return [ sort @decode ];
40    }
41    
42  use lib 'lib';  use lib 'lib';
43  use base qw/Intel::AMT::SOAP/;  use base qw/Intel::AMT::SOAP/;
44    
 our $soap = Intel::AMT::SOAP::_soap( 'NetworkAdministration' );  
   
45  sub ipv4 {  sub ipv4 {
46          my $addr = shift;          my $addr = shift;
47          return $addr unless $addr;          return $addr unless $addr;
# Line 38  sub ipv4 { Line 55  sub ipv4 {
55  }  }
56    
57  sub network_settings {  sub network_settings {
58            my $soap = Intel::AMT::SOAP::_soap( 'NetworkAdministration' );
59    
60          my $info = {          my $info = {
61                  hostname   => $soap->GetHostName()->paramsout,                  hostname   => $soap->GetHostName()->paramsout,
62                  domainname => $soap->GetDomainName()->paramsout,                  domainname => $soap->GetDomainName()->paramsout,
63                  interfaces => [ $soap->EnumerateInterfaces->paramsout ],                  interfaces => [ $soap->EnumerateInterfaces->paramsout ],
64                  vlan => [ $soap->GetVlanParameters->paramsout ],  #               vlan => [ $soap->GetVlanParameters->paramsout ],        # hangs on 3.2.1
65                  ping => $soap->GetPingResponse->paramsout,                  ping => $soap->GetPingResponse->paramsout,
66          };          };
67    
# Line 50  sub network_settings { Line 69  sub network_settings {
69    
70          foreach my $if ( @{ $info->{interfaces} } ) {          foreach my $if ( @{ $info->{interfaces} } ) {
71                  my $detail = $soap->GetInterfaceSettings( SOAP::Data->name('InterfaceHandle'=>$if) )->paramsout;                  my $detail = $soap->GetInterfaceSettings( SOAP::Data->name('InterfaceHandle'=>$if) )->paramsout;
72                    warn "## $if ",dump( $detail );
73                  foreach my $param ( keys %{ $detail->{IPv4Parameters} } ) {                  foreach my $param ( keys %{ $detail->{IPv4Parameters} } ) {
74                          if ( my $ip = $detail->{IPv4Parameters}->{$param} ) {                          if ( my $ip = $detail->{IPv4Parameters}->{$param} ) {
75                                  $detail->{IPv4Parameters}->{$param} = ipv4( $ip );                                  $detail->{IPv4Parameters}->{$param} = ipv4( $ip );
76                          }                          }
77                  }                  }
78    
79                    
80                    if ( my $lp = $detail->{LinkPolicy} ) {
81                            $detail->{LinkPolicy} = decode_mask( $lp, $LinkPolicy );
82                    }
83    
84                  $info->{interface_settings}->{$if} = $detail;                  $info->{interface_settings}->{$if} = $detail;
85          }          }
86    

Legend:
Removed from v.17  
changed lines
  Added in v.18

  ViewVC Help
Powered by ViewVC 1.1.26