our @EXPORT_OK = qw(GenerateMonitoredFiles FilePositions);
+use Net::IP;
+
#
## Function to generate a hash of monitored files and their file positions.
#
return %new_file_positions;
}
+#
+## Wrapper function for IP address and network validation.
+#
+## This wrapper function uses the external Net::IP perl module to
+## check if a given input is a valid IPv4/IPv6 address or network.
+#
+sub IsValidAddressOrNetwork ($) {
+ my $address = shift;
+
+ # Check if the address is a valid IPv4/IPv6 address or network.
+ # Return "undef" False if the address is not valid.
+ my $ip = new Net::IP ($address) || return undef;
+
+ # If we got here, the address is valid. Return True.
+ return 1;
+}
+
#
## Function for fileposition initialization.
#
return;
}
- # XXX
# Check if the given address is valid.
+ unless(&Guardian::Base::IsValidAddressOrNetwork($address)) {
+ # Log error message.
+ $logger->Log("err", "Invalid IP address: $address");
+ return;
+ }
# Call required handler.
my $error = $commands{$command}->($self, $address, $module, $message);