summaryrefslogtreecommitdiffstats
path: root/perl-install/network/ifw.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/network/ifw.pm')
-rw-r--r--perl-install/network/ifw.pm104
1 files changed, 104 insertions, 0 deletions
diff --git a/perl-install/network/ifw.pm b/perl-install/network/ifw.pm
new file mode 100644
index 000000000..99ca87944
--- /dev/null
+++ b/perl-install/network/ifw.pm
@@ -0,0 +1,104 @@
+package network::ifw;
+
+use dbus_object;
+use Socket;
+
+our @ISA = qw(dbus_object);
+
+sub new {
+ my ($type, $bus, $filter) = @_;
+
+ my $con = $bus->{connection};
+ $con->add_filter($filter);
+ $con->add_match("type='signal',interface='com.mandriva.monitoring.ifw'");
+
+ my $o = dbus_object::new($type,
+ $bus,
+ "com.mandriva.monitoring",
+ "/com/mandriva/monitoring/ifw",
+ "com.mandriva.monitoring.ifw");
+ dbus_object::set_gtk2_watch($o);
+ $o;
+}
+
+sub blacklist {
+ my ($o, $seq, $blacklist) = @_;
+ $o->call_method('Blacklist',
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $seq),
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $blacklist));
+}
+
+sub unblacklist {
+ my ($o, $addr) = @_;
+ $o->call_method('UnBlacklist',
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $addr));
+}
+
+sub whitelist {
+ my ($o, $addr) = @_;
+ $o->call_method('Whitelist',
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $addr));
+}
+
+sub unwhitelist {
+ my ($o, $addr) = @_;
+ $o->call_method('UnWhitelist',
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $addr));
+}
+
+sub get_interactive {
+ my ($o) = @_;
+ $o->call_method('GetMode');
+}
+
+sub set_interactive {
+ my ($o, $mode) = @_;
+ $o->call_method('SetMode',
+ Net::DBus::Binding::Value->new(&Net::DBus::Binding::Message::TYPE_UINT32, $mode));
+}
+
+sub get_reports {
+ my ($o) = @_;
+ $o->call_method('GetReports');
+}
+
+sub get_blacklist {
+ my ($o) = @_;
+ $o->call_method('GetBlacklist');
+}
+
+sub get_whitelist {
+ my ($o) = @_;
+ $o->call_method('GetWhitelist');
+}
+
+sub format_date {
+ my ($timestamp) = @_;
+ require c;
+ c::strftime("%c", localtime($timestamp));
+}
+
+sub get_service {
+ my ($port) = @_;
+ getservbyport($port, undef) || $port;
+}
+
+sub get_ip_address {
+ my ($addr) = @_;
+ inet_ntoa(pack('L', $addr));
+}
+
+sub resolve_address {
+ my ($ip_addr) = @_;
+ #- try to resolve address, timeout after 2 seconds
+ my $hostname;
+ eval {
+ local $SIG{ALRM} = sub { die "ALARM" };
+ alarm 2;
+ $hostname = gethostbyaddr(inet_aton($ip_addr), AF_INET);
+ alarm 0;
+ };
+ $hostname || $ip_addr;
+}
+
+1;