summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/net_applet
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/net_applet')
-rw-r--r--perl-install/standalone/net_applet153
1 files changed, 0 insertions, 153 deletions
diff --git a/perl-install/standalone/net_applet b/perl-install/standalone/net_applet
deleted file mode 100644
index 4ebedf3ff..000000000
--- a/perl-install/standalone/net_applet
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use lib qw(/usr/lib/libDrakX);
-use c;
-use common;
-use Digest::MD5;
-use network::netconnect;
-use network::tools;
-
-use Gtk2::TrayIcon;
-
-use ugtk2 qw(:create :helpers :wrappers);
-
-my ($eventbox, $img);
-my ($menu, $timeout);
-my $raisedwindow = 0;
-my $onstartupfile = "$ENV{HOME}/.net_applet";
-add_icon_path("/usr/share/libDrakX/pixmaps/");
-# Allow multiple instances, but only one per user:
-my @pids = `ps -u $ENV{USER} | grep net_applet`;
-@pids > 1 and die "net_applet already running\n";
-my $prog_name = "/usr/bin/net_applet";
-my $current_md5 = md5file($prog_name);
-
-my %appletstate = (
- connected => {
- colour => [ 'connected' ],
- changes => [ 'disconnected', 'error', 'busy' ],
- menu => [ 'confNetwork', 'monitorNetwork', 'refresh', 'help' ],
- tt => [ N_("Network is up on interface %s") ]
- },
- disconnected => {
- colour => [ 'disconnected' ],
- changes => [ 'connected', 'error', 'busy' ],
- menu => [ 'confNetwork', 'refresh', 'help' ],
- tt => [
- #-PO: keep the "Configure Network" substring synced with the "Configure Network" message below
- N_("Network is down on interface %s. Click on \"Configure Network\"")
- ]
- }
- );
-
-my %actions = (
- 'confNetwork' => { name => N("Configure Network"), launch => sub { system("/usr/sbin/drakconnect --skip-wizard &") } },
- 'monitorNetwork' => { name => N("Monitor Network"), launch => sub { system("/usr/sbin/net_monitor &") } },
- 'refresh' => { name => N("Refresh"), launch => sub { checkNetwork() } },
- 'help' => { name => N("Get Online Help"), launch => sub { system("drakhelp --id internet-connection &") } }
- );
-
-gtkadd(my $icon = Gtk2::TrayIcon->new("Net_Applet"),
- gtkadd($eventbox = Gtk2::EventBox->new,
- gtkpack($img = Gtk2::Image->new)
- )
- );
-$eventbox->signal_connect(button_press_event => sub {
- if (!$raisedwindow) {
- if ($_[1]->button == 1) {
- $raisedwindow = 1; netMonitor()
- }
- }
- $_[1]->button == 3 && $menu and $menu->popup(undef, undef, undef, undef, $_[1]->button, $_[1]->time);
- });
-my ($opt) = @ARGV;
-if ($opt eq '--force' || $opt eq '-f') { setAutoStart('TRUE') };
-
-shouldStart() or die "$onstartupfile should be set to TRUE or use net_applet --force";
-
-checkNetwork();
-cronNetwork();
-
-$icon->show_all;
-Gtk2->main;
-
-ugtk2::exit(0);
-
-sub shouldStart() {
- my %p = getVarsFromSh($onstartupfile);
- my $ret = $p{AUTOSTART} eq 'FALSE' ? 0 : 1;
- $ret
-}
-sub md5file {
- my @md5;
- foreach my $file (@_) {
- open(my $FILE, $file) or do { print STDERR "Can't open '$file': $!"; push @md5, "" };
- binmode($FILE);
- push @md5, Digest::MD5->new->addfile($FILE)->hexdigest;
- close($FILE);
- }
- return wantarray() ? @md5 : $md5[0];
-}
-sub netMonitor() {
- system("/usr/sbin/net_monitor --testing");
- checkNetwork()
-}
-sub checkNetwork() {
- my $netcnx = {};
- my $netc = {};
- my $intf = {};
- network::netconnect::read_net_conf($netcnx, $netc, $intf);
- my ($gw_intf, $is_up, $gw_address, $dns_server) = network::tools::get_internet_connection($netc, $intf);
- if ($gw_address) {
- go2State('connected', $gw_intf)
- } else { go2State('disconnected', $gw_intf) }
-
- my $new_md5 = md5file($prog_name);
- if ($new_md5 ne $current_md5) { exec($prog_name) };
-}
-sub getIP {
- my ($interface) = shift;
- my $ifconfig = '/sbin/ifconfig';
- my @lines = `$ifconfig $interface`;
- my @ip = map { if_(/inet adr:([\d.]+)/, $1) } @lines;
- return wantarray() ? @ip : $ip[0];
-}
-sub cronNetwork() {
- $timeout = Glib::Timeout->add(60*1000, sub {
- checkNetwork();
- 1;
- });
-}
-sub go2State {
- $menu and $menu->destroy;
- $menu = setState(@_)
-}
-sub setState {
- my ($state_type, $interface) = @_;
- my $checkmi;
- my $arr = $appletstate{$state_type}{menu};
- my $tmp = gtkcreate_pixbuf($appletstate{$state_type}{colour}[0]);
- $img->set_from_pixbuf($tmp);
- gtkset_tip(Gtk2::Tooltips->new, $eventbox, formatAlaTeX(common::sprintf_fixutf8(translate($appletstate{$state_type}{tt}[0]), $interface)));
- my $menu = Gtk2::Menu->new;
- foreach (@$arr) {
- $menu->append(gtksignal_connect(gtkshow(Gtk2::MenuItem->new_with_label($actions{$_}{name})), activate => $actions{$_}{launch}));
- }
- $menu->append(gtkshow(Gtk2::SeparatorMenuItem->new));
- $menu->append(gtksignal_connect(gtkset_active($checkmi = Gtk2::CheckMenuItem->new_with_label(N("Always launch on startup")), shouldStart()), toggled => sub { setAutoStart(uc(bool2text($checkmi->get_active))) }));
- $checkmi->show;
- $menu->append(gtksignal_connect(gtkshow(Gtk2::MenuItem->new_with_label(N("Quit"))), activate => sub { mainQuit() }));
- $menu
-}
-sub mainQuit() {
- Glib::Source->remove($timeout) if $timeout;
- Gtk2->main_quit
-}
-sub setAutoStart {
- my $state = shift;
- output_p $onstartupfile,
- qq(AUTOSTART=$state
-);
-}
-