NAME

Interfaces - The PCXFireWall Interface Definition Object.


SYNOPSIS

  use PCXFireWall::Interfaces;
  my $obj = PCXFireWall::Interfaces->new;
  # Define the internal and external Network Interfaces being 
  # used/protected.
  $obj->defineInterface(name => "ppp0", alias => "dialup0",
                        type => "dynamic");
  $obj->defineInterface(name => "eth0", alias => "internal0",
                        location => "internal", IP => "192.168.0.250");
  $obj->defineInterface(name => "eth0:0", alias => "internal1",
                        location => "internal", IP => "192.168.0.251");
  $obj->defineInterface(name => "eth1", alias => "dmz0",
                        location => "dmz", IP => "192.168.1.250");
  # define a new location - vpn
  $obj->defineLocation(location => "vpn");
  # get all dmz interfaces
  my %dmzs = $obj->getInterfacesLocatedAt(location => "dmz");
  foreach my $interface (keys %dmzs)
  {
    print "Interface '$interface', type = '$dmzs{$interface}{type}'," .
    "alias = '$dmzs{$interface}{alias}', IP = '$dmzs{$interface}{IP}'.\n";
  }


DESCRIPTION

Interfaces is the Interface Definition Object for the PCXFireWall.


FUNCTIONS

  scalar new(void)
    Creates a new instance of the PCXFireWall::Interfaces object.
  void defineInterface(name, alias, type, location, IP)
    requires: name (ethX), type (static|dynamic),
              location (internal|external|dmz|firewall|user defined value)
              alias (name used by the shell script)
    optional: IP (IP Address)[required if type = static]
    returns: nothing
    summary: This creates an entry in the interfaces hash that defines
             an internal or external network card and it's settings.
             The type defaults to static and location defaults to
             external, so you don't have to specify them if that is
             what you need.
  void defineLocation(location)
    requires: location
    optional:
    returns: nothing
    summary: This routine allows you to create alternate 'locations' that
             your network interfaces can be grouped under than the
             default locations of internal, external, firewall and dmz.
  %interfaces getInterfacesLocatedAt(location)
    requires: location (internal|external|dmz|user defined value)
    returns: hash of all interfaces of the specified location.
    summary: This routine validates the specified location and then
             returns the hash that contains all interfaces defined for
             that location.
  @(location, type, ip, usingBroadcast, alias) getInfo(int)
    This routine takes an interface the user has registered
    and looks it up.  If it is not found, then an empty array
    is returned, else the location, type and ip info is returned as
    depicted in the return value.
  void usingBroadcast(int)
    requires: int - interface to work with
    returns: nothing
    summary:  finds the specified interface and sets the usingBroadcast
              flag to 1


VARIABLES

  interfaces - hash of all interfaces defined by the user.
               Format is
                interfaces->{location}->{interface name}->{type}
                interfaces->{location}->{interface name}->{IP}
                interfaces->{location}->{interface name}->{usingBroadcast}
                interfaces->{location}->{interface name}->{alias}
  NOTE:  All data fields are accessible by specifying the object
         and pointing to the data member to be modified on the
         left-hand side of the assignment.
         Ex.  $obj->variable($newValue); or $value = $obj->variable;


AUTHOR

Xperience, Inc. (mailto:admin at pcxperience.com)


SEE ALSO

perl(1)