@@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: ca\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-30 15:42+0200\n" +"POT-Creation-Date: 2009-04-09 05:35+0200\n" "PO-Revision-Date: 2005-09-13 23:24+0200\n" "Last-Translator: Albert Astals Cid <astals11@terra.es>\n" "Language-Team: Catalan <kde-i18n-ca@kde.org>\n" @@ -19,31 +19,6 @@ msgstr "" "X-Generator: KBabel 1.9.1\n" "Plural-Forms: nplurals=2; plural=n!=1;\n" -#: ../../advertising/IM_flash.pl:1 -#, c-format -msgid "Your desktop on a USB key" -msgstr "" - -#: ../../advertising/IM_free09.pl:1 -#, c-format -msgid "The 100%% open source Mandriva Linux distribution" -msgstr "" - -#: ../../advertising/IM_one09.pl:1 -#, c-format -msgid "Explore Linux easily with Mandriva One" -msgstr "" - -#: ../../advertising/IM_pwp09.pl:1 -#, c-format -msgid "A full Mandriva Linux desktop, with support" -msgstr "" - -#: ../../advertising/IM_range09.pl:1 -#, c-format -msgid "Mandriva: distributions for everybody's needs" -msgstr "" - #: any.pm:109 #, c-format msgid "Do you have further supplementary media?" @@ -79,17 +54,17 @@ msgstr "Xarxa (FTP)" msgid "Network (NFS)" msgstr "Xarxa (NFS)" -#: any.pm:163 +#: any.pm:165 #, c-format msgid "URL of the mirror?" msgstr "URL de la rèplica?" -#: any.pm:169 +#: any.pm:171 #, c-format msgid "URL must start with ftp:// or http://" msgstr "" -#: any.pm:180 +#: any.pm:182 #, c-format msgid "" "Contacting Mandriva Linux web site to get the list of available mirrors..." @@ -97,7 +72,7 @@ msgstr "" "S'està contactant amb el servidor Mandriva Linux per obtenir la llista de " "rèpliques disponibles..." -#: any.pm:185 +#: any.pm:187 #, fuzzy, c-format msgid "" "Failed contacting Mandriva Linux web site to get the list of available " @@ -106,69 +81,69 @@ msgstr "" "S'està contactant amb el servidor Mandriva Linux per obtenir la llista de " "rèpliques disponibles..." -#: any.pm:195 +#: any.pm:197 #, c-format msgid "Choose a mirror from which to get the packages" msgstr "Escolliu una rèplica des de la qual aconseguir els paquets" -#: any.pm:225 +#: any.pm:227 #, c-format msgid "NFS setup" msgstr "" -#: any.pm:226 +#: any.pm:228 #, c-format msgid "Please enter the hostname and directory of your NFS media" msgstr "" -#: any.pm:230 +#: any.pm:232 #, c-format msgid "Hostname missing" msgstr "" -#: any.pm:231 +#: any.pm:233 #, c-format msgid "Directory must begin with \"/\"" msgstr "" -#: any.pm:235 +#: any.pm:237 #, c-format msgid "Hostname of the NFS mount ?" msgstr "" -#: any.pm:236 +#: any.pm:238 #, c-format msgid "Directory" msgstr "Directori" -#: any.pm:258 +#: any.pm:260 #, c-format msgid "Supplementary" msgstr "" -#: any.pm:293 +#: any.pm:295 #, c-format msgid "" "Can't find a package list file on this mirror. Make sure the location is " "correct." msgstr "No s'ha pogut trobat el fitxer hdlist en aquest rèplica" -#: any.pm:328 +#: any.pm:334 #, c-format msgid "Looking at packages already installed..." msgstr "S'estan cercant els paquets ja instal·lats..." -#: any.pm:362 +#: any.pm:368 #, c-format msgid "Finding packages to upgrade..." msgstr "S'estan cercant els paquets a actualitzar" -#: any.pm:381 +#: any.pm:387 #, c-format msgid "Removing packages prior to upgrade..." msgstr "" -#: any.pm:402 +#: any.pm:408 #, c-format msgid "" "You have decided to upgrade your system to %s. KDE 3.5 has been detected\n" @@ -180,18 +155,18 @@ msgid "" "please reboot your system and upgrade using the Mandriva update applet." msgstr "" -#: any.pm:407 steps_interactive.pm:1106 +#: any.pm:413 steps_interactive.pm:1103 #, c-format msgid "Reboot" msgstr "Reinicia" -#: any.pm:407 +#: any.pm:413 #, c-format msgid "Proceed" msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX -#: any.pm:596 +#: any.pm:602 #, c-format msgid "" "The following packages will be removed to allow upgrading your system: %s\n" @@ -204,72 +179,72 @@ msgstr "" "\n" "Voleu realment suprimir aquests paquets?\n" -#: any.pm:815 +#: any.pm:821 #, c-format msgid "Error reading file %s" msgstr "S'ha produït un error en llegir el fitxer %s" -#: any.pm:1022 +#: any.pm:1028 #, c-format msgid "The following disk(s) were renamed:" msgstr "" -#: any.pm:1024 +#: any.pm:1030 #, c-format msgid "%s (previously named as %s)" msgstr "" -#: any.pm:1081 +#: any.pm:1087 #, c-format msgid "HTTP" msgstr "HTTP" -#: any.pm:1081 +#: any.pm:1087 #, c-format msgid "FTP" msgstr "FTP" -#: any.pm:1081 +#: any.pm:1087 #, c-format msgid "NFS" msgstr "NFS" -#: any.pm:1100 steps_interactive.pm:935 +#: any.pm:1106 steps_interactive.pm:932 #, c-format msgid "Network" msgstr "Xarxa" -#: any.pm:1104 +#: any.pm:1110 #, fuzzy, c-format msgid "Please choose a media" msgstr "Si us plau escolliu" -#: any.pm:1120 +#: any.pm:1126 #, c-format msgid "File already exists. Overwrite it?" msgstr "El fitxer ja existeix. El voleu sobreescriure?" -#: any.pm:1124 +#: any.pm:1130 #, c-format msgid "Permission denied" msgstr "S'ha denegat el permís" -#: any.pm:1172 +#: any.pm:1178 #, c-format msgid "Bad NFS name" msgstr "Nom NFS incorrecte" -#: any.pm:1193 +#: any.pm:1199 #, fuzzy, c-format msgid "Bad media %s" msgstr "s'ha afegit la font %s" -#: any.pm:1236 +#: any.pm:1242 #, c-format msgid "Can not make screenshots before partitioning" msgstr "No es poden fer captures de pantalla abans de fer les particions" -#: any.pm:1244 +#: any.pm:1250 #, c-format msgid "Screenshots will be available after install in %s" msgstr "Les captures estaran disponibles després d'instal·lar a %s" @@ -280,11 +255,15 @@ msgid "Installation" msgstr "S'està instal·lant" #: gtk.pm:134 share/meta-task/compssUsers.pl:44 -#: share/meta-task/compssUsers.pl.orig:44 #, c-format msgid "Configuration" msgstr "Configuració" +#: http.pm:53 +#, c-format +msgid "retrieval of [%s] failed" +msgstr "" + #: install2.pm:168 #, c-format msgid "You must also format %s" @@ -309,22 +288,22 @@ msgstr "S'està activant la xarxa" msgid "Bringing down the network" msgstr "S'està desactivant la xarxa" -#: media.pm:402 +#: media.pm:399 #, c-format msgid "Please wait, retrieving file" msgstr "" -#: media.pm:734 +#: media.pm:718 #, c-format -msgid "Downloading file %s..." -msgstr "S'està descarregant el fitxer %s..." +msgid "unable to add medium" +msgstr "" -#: media.pm:822 +#: media.pm:758 #, c-format msgid "Copying some packages on disks for future use" msgstr "" -#: media.pm:875 +#: media.pm:811 #, c-format msgid "Copying in progress" msgstr "Còpia en procés" @@ -366,27 +345,27 @@ msgstr "" msgid "An error occurred:" msgstr "S'ha produït un error" -#: pkgs.pm:776 +#: pkgs.pm:780 #, fuzzy, c-format msgid "%d installation transactions failed" msgstr "Instal·lació fallida" -#: pkgs.pm:777 +#: pkgs.pm:781 #, fuzzy, c-format msgid "Installation of packages failed:" msgstr "S'està instal·lant el paquet %s" -#: share/meta-task/compssUsers.pl:13 share/meta-task/compssUsers.pl.orig:13 +#: share/meta-task/compssUsers.pl:13 #, c-format msgid "Workstation" msgstr "Estació de treball" -#: share/meta-task/compssUsers.pl:15 share/meta-task/compssUsers.pl.orig:15 +#: share/meta-task/compssUsers.pl:15 #, c-format msgid "Office Workstation" msgstr "Estació de treball d'oficina" -#: share/meta-task/compssUsers.pl:17 share/meta-task/compssUsers.pl.orig:17 +#: share/meta-task/compssUsers.pl:17 #, c-format msgid "" "Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets " @@ -396,7 +375,7 @@ msgstr "" "Kword), fulls de càlcul (OpenOffice.org Calc, Kspread), visualitzadors pdf, " "etc." -#: share/meta-task/compssUsers.pl:18 share/meta-task/compssUsers.pl.orig:18 +#: share/meta-task/compssUsers.pl:18 #, c-format msgid "" "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, " @@ -405,32 +384,32 @@ msgstr "" "Programes d'ofimàtica: processadors de textos (kword, abiword), fulls de " "càlcul (kspread, gnumeric), visualitzadors pdf, etc." -#: share/meta-task/compssUsers.pl:23 share/meta-task/compssUsers.pl.orig:23 +#: share/meta-task/compssUsers.pl:23 #, c-format msgid "Game station" msgstr "Estació de jocs" -#: share/meta-task/compssUsers.pl:24 share/meta-task/compssUsers.pl.orig:24 +#: share/meta-task/compssUsers.pl:24 #, c-format msgid "Amusement programs: arcade, boards, strategy, etc" msgstr "Programes d'entreteniment: acció, jocs de taula, estratègia, etc." -#: share/meta-task/compssUsers.pl:27 share/meta-task/compssUsers.pl.orig:27 +#: share/meta-task/compssUsers.pl:27 #, c-format msgid "Multimedia station" msgstr "Estació multimèdia" -#: share/meta-task/compssUsers.pl:28 share/meta-task/compssUsers.pl.orig:28 +#: share/meta-task/compssUsers.pl:28 #, c-format msgid "Sound and video playing/editing programs" msgstr "Programes de reproducció/edició de so i vídeo" -#: share/meta-task/compssUsers.pl:33 share/meta-task/compssUsers.pl.orig:33 +#: share/meta-task/compssUsers.pl:33 #, c-format msgid "Internet station" msgstr "Estació d'Internet" -#: share/meta-task/compssUse#!/usr/bin/perl
# DrakConnect $Id$
# Copyright (C) 1999-2003 MandrakeSoft
# Damien "Dam's" Krotkine
# Damien "poulpy" Chaumette
# Thierry Vignaud <tvignaud@mandrakesoft.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
use strict;
use diagnostics;
use lib qw(/usr/lib/libDrakX);
use standalone; #- warning, standalone must be loaded very first, for 'explanations'
use interactive;
use common;
use network::netconnect;
use network::ethernet;
use network::tools;
use network::modem;
use network::network;
use network;
use c;
use modules;
use network::isdn;
use network::adsl;
use MDK::Common::Globals "network", qw($in $prefix $disconnect_file $connect_prog $connect_file);
use POSIX ":sys_wait_h";
my $xpm_path = "/usr/share/libDrakX/pixmaps";
local $_ = join '', @ARGV;
my ($netcnx, $netc, $intf) = ({}, {}, {});
my @conx_type = ('modem', 'isdn_internal', 'isdn_external', 'adsl', 'cable', 'lan');
my $in = 'interactive'->vnew('su');
!$::isEmbedded and $in->isa('interactive::gtk');
$::Wizard_pix_up = "wiz_drakconnect.png";
$::Wizard_title = N("Network & Internet Configuration");
MDK::Common::Globals::init(
in => $in,
prefix => '',
connect_file => "/etc/sysconfig/network-scripts/net_cnx_up",
disconnect_file => "/etc/sysconfig/network-scripts/net_cnx_down",
connect_prog => "/etc/sysconfig/network-scripts/net_cnx_pg"
);
($::isEmbedded || /--skip-wizard/) && ref($in) =~ /gtk/ or goto dd;
require ugtk2;
ugtk2->import(qw(:create :dialogs :helpers :wrappers));
network::netconnect::read_net_conf('', $netcnx, $netc);
modules::load_category('net');
my @all_cards = network::ethernet::conf_network_card_backend($netc, $intf);
network::netconnect::load_conf($netcnx, $netc, $intf);
network::network::probe_netcnx_type('', $netc, $intf, $netcnx);
my $window1 = ugtk2->new('drakconnect');
$window1->{rwindow}->signal_connect(delete_event => sub { ugtk2->exit(0) });
unless ($::isEmbedded) {
$window1->{rwindow}->set_position('center');
$window1->{rwindow}->set_title(N("Network configuration (%d adapters)", scalar @all_cards));
$window1->{rwindow}->set_size_request(-1, -1);
}
$window1->{rwindow}->set_border_width(10);
my ($lan_button, $wiz_button, $int_button, $host_button, $button_apply);
my @profiles;
my $button_del = Gtk2::Button->new(N("Del profile..."));
my $profile_combo = gtksignal_connect(Gtk2::OptionMenu->new, changed => sub {
my ($combo) = @_;
return if $::ignore_profile_change;
my $selected_profile = $combo->get_text;
return if $selected_profile eq $netcnx->{PROFILE};
set_profiles($selected_profile) if $combo->window; # is realized?;
});
# update combo profiles
sub update_profiles() {
@profiles = network::netconnect::get_profiles();
$button_del->set_sensitive(@profiles > 1);
local $::ignore_profile_change = 1;
$profile_combo->set_popdown_strings(@profiles);
$profile_combo->set_text($netcnx->{PROFILE});
}
# Change current profile
sub set_profiles {
my ($new_profile) = @_;
$netcnx->{PROFILE} = $new_profile;
network::netconnect::set_profile($netcnx);
network::netconnect::load_conf($netcnx, $netc, $intf);
update_profiles();
update();
$button_apply->set_sensitive(1);
}
@profiles = update_profiles();
$button_del->signal_connect(clicked => sub {
my $dialog = _create_dialog(N("Delete profile"), { stock => 'gtk-dialog-warning' });
gtkpack($dialog->vbox,
Gtk2::Label->new(N("Profile to delete:")),
my $combo_dialog = Gtk2::OptionMenu->new,
);
$combo_dialog->set_popdown_strings(grep { ! /default/ } network::netconnect::get_profiles());
gtkpack($dialog->action_area,
gtksignal_connect(Gtk2::Button->new(N("Cancel")), clicked => sub { $dialog->destroy }),
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
my $profile2delete = $combo_dialog->entry->get_text;
$dialog->destroy;
Gtk2->main_quit;
network::netconnect::del_profile($profile2delete);
$profile2delete eq $netcnx->{PROFILE} ? set_profiles("default") : update_profiles();
}),
);
$dialog->show_all;
$dialog->run;
#apply(); ## BUG?
});
my $hostname = chomp_(`hostname`);
my $type_label = Gtk2::Label->new($netcnx->{type});
my $int_label = Gtk2::Label->new($netcnx->{type} eq 'lan' ? N("Gateway:") : N("Interface:"));
my $interface_name = Gtk2::Label->new($netcnx->{type} eq 'lan' ? $netc->{GATEWAY} : $netcnx->{NET_INTERFACE});
my $isconnected = -1;
my $int_connect = Gtk2::Button->new(N("Wait please"));
$int_connect->set_sensitive(0);
$int_connect->signal_connect(clicked => sub {
if (!$isconnected) {
if (cat_($connect_prog) =~ m|/usr/bin/kppp| && -e '/usr/bin/kppp') {
run_program::rooted($prefix, "/usr/bin/kppp &");
} else {
connect_backend();
}
} else {
disconnect_backend();
}
update2();
});
my $tree_model = Gtk2::TreeStore->new("Gtk2::Gdk::Pixbuf", map { "Glib::String" } 2..6);
my $list = Gtk2::TreeView->new_with_model($tree_model);
$list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererPixbuf->new, 'pixbuf' => 0));
each_index {
$list->append_column(my $col = Gtk2::TreeViewColumn->new_with_attributes($_, Gtk2::CellRendererText->new, 'text' => $::i + 1));
$col->set_sort_column_id($::i);
} (N("Interface"), N("IP address"), N("Protocol"), N("Driver"), N("State"));
my $wizard_pid;
$list->signal_connect(button_press_event => sub {
my (undef, $event) = @_;
my (undef, $iter) = $list->get_selection->get_selected;
return unless $iter;
configure_lan() if $event->type eq '2button-press' && !$wizard_pid;
});
update_list();
my ($label_host, $int_state, $button_expert);
$window1->{window}->add(
gtkpack_(Gtk2::VBox->new(0,10),
0, gtkpack_(Gtk2::HBox->new(0,0),
0, Gtk2::Label->new(N("Profile: ")),
0, $profile_combo,
0, $button_del,
0, gtksignal_connect(Gtk2::Button->new(N("New profile...")), clicked => sub {
my $dialog = _create_dialog("New profile...", { small => 1 });
my $entry_dialog = Gtk2::Entry->new;
gtkpack($dialog->vbox,
Gtk2::Label->new(N("Name of the profile to create (the new profile is created as a copy of the current one) :")),
$entry_dialog,
);
gtkpack($dialog->action_area,
gtksignal_connect(Gtk2::Button->new(N("Cancel")),
clicked => sub { $dialog->destroy }),
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
#warn if already existing
my $prof = $entry_dialog->get_text;
$prof =~ s/ /_/g;
network::netconnect::add_profile($netcnx, $prof);
update_profiles();
$dialog->destroy;
}),
);
$dialog->show_all;
$dialog->run;
}),
),
0, gtkpack(Gtk2::HBox->new,
Gtk2::Label->new(N("Hostname: ")),
$label_host = Gtk2::Label->new($hostname),
$host_button = gtksignal_connect(Gtk2::Button->new(N("Configure hostname...")),
clicked => sub {
sensitive_buttons(0);
local ($::isWizard, $::Wizard_finished) = (1, 1);
eval { # For wizcancel
configureNetworkNet($in, $netc, $intf, @all_cards);
$button_apply->set_sensitive(1);
update();
};
if ($@ =~ /wizcancel/) {}
$::WizardWindow->destroy;
undef $::WizardWindow;
sensitive_buttons(1);
}
),
),
0, gtkadd(Gtk2::Frame->new(N("Internet access")),
gtkpack_(gtkset_border_width(Gtk2::VBox->new(0,0), 5),
1, gtkset_border_width(create_packtable({ col_spacings => 5, row_spacings => 5 },
[ Gtk2::Label->new(N("Type:")), $type_label ],
[ $int_label, $interface_name ],
[ Gtk2::Label->new(N("Status:")),
$int_state = Gtk2::Label->new(N("Testing your connection...")) ]
),
5),
0, my $warning_label1 = Gtk2::Label->new(""),
0, gtkpack(Gtk2::HButtonBox->new,
$int_button = gtksignal_connect(Gtk2::Button->new(N("Configure Internet Access...")),
clicked => sub { configure_net('', $netcnx, $netc, $intf) }),
$int_connect,
),
)
),
1, gtkadd(Gtk2::Frame->new(N("LAN configuration")),
gtkpack_(gtkset_border_width(Gtk2::VBox->new(0,0), 5),
0, $list,
0, Gtk2::HBox->new(0,0),
0, gtkpack_(Gtk2::HBox->new(0, 0),
0, $lan_button = gtksignal_connect(Gtk2::Button->new(N("Configure Local Area Network...")),
clicked => \&configure_lan),
),
)
),
0, gtkadd(Gtk2::HButtonBox->new,
$wiz_button = gtksignal_connect(Gtk2::Button->new(N("Launch the wizard")),
clicked => sub {
$wizard_pid = fork();
if (defined $wizard_pid) {
# immediate exit, else forked gtk+ object destructors will badly catch up parent drakconnect
!$wizard_pid and do { exec("drakconnect") or POSIX::_exit(1) };
sensitive_buttons(0);
} else {
err_dialog(N("Unable to fork: %s", "$!"));
}
}),
),
0, Gtk2::HSeparator->new,
0, gtkpack(Gtk2::HButtonBox->new,
gtksignal_connect(Gtk2::Button->new(N("Help")), clicked => sub {
exec("drakhelp --id internet-connection") unless fork() }),
$button_apply = gtksignal_connect(gtkset_sensitive(Gtk2::Button->new(N("Apply")), 0),
clicked => \&apply),
gtksignal_connect(Gtk2::Button->new(N("Cancel")), clicked => \&quit_global),
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
if ($button_apply->get('sensitive')) {
my $dialog = _create_dialog(N("Please wait"));
gtkpack($dialog->vbox,
Gtk2::Label->new(N("Please Wait... Applying the configuration")));
$dialog->show_all;
gtkflush();
apply();
$dialog->destroy;
}
update();
quit_global();
}),
),
),
);
sub sensitive_buttons {
my ($state) = @_;
$_->set_sensitive($state) foreach $host_button, $lan_button, $wiz_button, $int_button;
}
$SIG{CHLD} = sub {
my $child = waitpid(-1, POSIX::WNOHANG);
# when the wizard has exiter, reload everything to catch its changes
return if !($wizard_pid && $child eq $wizard_pid);
undef $wizard_pid;
sensitive_buttons(1);
$netcnx = {}; $netc = {}; $intf = {};
network::netconnect::read_net_conf('', $netcnx, $netc);
modules::load_category('net');
@all_cards = network::ethernet::conf_network_card_backend($netc, $intf);
network::netconnect::load_conf($netcnx, $netc, $intf);
network::network::probe_netcnx_type('', $netc, $intf, $netcnx);
update_profiles();
update();
};
$window1->{rwindow}->show_all;
gtkflush();
my $tag = Glib::Timeout->add(4000, \&update2);
$window1->main;
ugtk2->exit(0);
dd:
$::isWizard = 1;
network::netconnect::load_conf($netcnx, $netc, $intf);
network::netconnect::main('', $netcnx, $in);
$in->exit(0);
sub get_intf_ip {
my ($interface) = @_;
my ($ip, $state, $mask);
if (-x "/sbin/ifconfig") {
local $_ = `LC_ALL=C LANGUAGE=C /sbin/ifconfig $interface`;
$ip = /inet addr:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/mso ? $1 : N("No Ip");
$mask = /Mask:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/mso ? $1 : N("No Mask");
$state = /inet/ ? "up" : "down";
} else {
$ip = $intf->{$interface}{IPADDR};
$state = "n/a";
}
($ip, $state, $mask);
}
my %intf;
sub update_list() {
my %new_intf = map { @$_ } @all_cards;
my @new_intf = sort keys %new_intf;
foreach my $interface (@new_intf) {
my ($ip, $state) = get_intf_ip($interface);
$intf{$interface}{iter} ||= $tree_model->append(undef);
$tree_model->set($intf{$interface}{iter}, map_index { $::i => $_ } (gtkcreate_pixbuf("eth_card_mini2.png"), $interface, $ip , $intf->{$interface}{BOOTPROTO}, $new_intf{$interface}, $state));
}
foreach my $i (difference2([ keys %intf ], \@new_intf)) {
delete $intf{$i};
}
}
sub apply() {
network::sethostname($netc) if every { $_->{BOOTPROTO} eq "static" } values %$intf;
$netcnx->{type} eq 'modem' and network::modem::ppp_configure($in, $netcnx->{$netcnx->{type}});
$netcnx->{type} eq 'isdn_internal' and network::isdn::isdn_write_config_backend($netcnx->{$netcnx->{type}}, $netc, $netcnx); #$light
$netcnx->{type} eq 'isdn_external' and network::modem::ppp_configure($in, $netcnx->{$netcnx->{type}});
my $a = $netcnx->{type};
$a =~ s/adsl_//;
$netcnx->{type} =~ /adsl/ and network::adsl::adsl_conf_backend($netcnx->{$netcnx->{type}}, $netc, $a, $netcnx);
$netcnx->{dhcp_client} and $netc->{dhcp_client} = $netcnx->{dhcp_client};
network::configureNetwork2($in, $prefix, $netc, $intf);
$netcnx->{type} =~ /adsl/ or system("/sbin/chkconfig --del adsl 2> /dev/null");
$netcnx->{type} !~ /adsl_p/ and system("$prefix/etc/rc.d/init.d/network restart");
network::netconnect::save_profile($netcnx);
$button_apply->set_sensitive(0);
}
sub ethisup { `LC_ALL=C LANGUAGE=C /sbin/ifconfig $_[0]` =~ /inet/ }
sub update_intbutt() {
$int_state->set($isconnected ? N("Connected") : N("Not connected"));
$int_connect->child->set($isconnected ? N("Disconnect...") : N("Connect..."));
$int_connect->set_sensitive(1);
}
my $to_update;
sub update() {
my $h = chomp_(`hostname`);
$label_host->set_label($h);
$type_label->set($netcnx->{type});
$int_label->set($netcnx->{type} eq 'lan' ? N("Gateway:") : N("Interface:"));
$interface_name->set($netcnx->{type} eq 'lan' ? $netc->{GATEWAY} : $netcnx->{NET_INTERFACE});
update_list();
update_intbutt() if $isconnected != -1;
1;
}
sub in_ifconfig {
my ($intf) = @_;
-e '/sbin/ifconfig' or return 1;
$intf eq '' and return 1;
`/sbin/ifconfig` =~ /$intf/;
}
sub update2() {
undef $to_update;
connected_bg(\$to_update);
if (defined $to_update) {
$isconnected = $to_update;
if ($isconnected != -1) {
if ($isconnected && !in_ifconfig($netcnx->{NET_INTERFACE})) {
$warning_label1->set(N("Warning, another Internet connection has been detected, maybe using your network"));
$isconnected = 0;
} else { $warning_label1->set("") }
update_intbutt();
}
}
update();
1;
}
sub quit_global() {
ugtk2->exit(0);
}
sub get_intf_status {
my ($c) = @_;
ethisup($c) ? N("Deactivate now") : N("Activate now")
}
sub configure_lan() {
sensitive_buttons(0);
my $window = _create_dialog(N("LAN configuration"));
my @card_tab;
if (@all_cards < 1) {
$window->vbox->add(Gtk2::Label->new(N("You don't have any configured interface.
Configure them first by clicking on 'Configure'")));
gtkpack(gtkset_layout($window->action_area, 'end'),
gtksignal_connect(Gtk2::Button->new(N("Ok")),
clicked => sub { Gtk2->main_quit })
);
$window->show_all;
$window->run;
$window->destroy;
return;
}
$window->set_border_width(10);
gtkpack($window->vbox,
Gtk2::Label->new(N("LAN Configuration")),
my $notebook = Gtk2::Notebook->new,
);
foreach (0..$#all_cards) {
my @infos;
my @conf_data;
$card_tab[2*$_] = \@infos;
$card_tab[2*$_+1] = \@conf_data;
my $vbox_local = Gtk2::VBox->new(0,0);
$vbox_local->set_border_width(10);
$vbox_local->pack_start(Gtk2::Label->new(N("Adapter %s: %s", $_+1 , $all_cards[$_][0])),1,1,0);
# Eth${_}Hostname = $netc->{HOSTNAME}
# Eth${_}HostAlias = " . do { $netc->{HOSTNAME} =~ /([^\.]*)\./; $1 } . "
# Eth${_}Driver = $all_cards[$_]->[1]
my $interface = $all_cards[$_][0];
my ($ip, undef, $mask) = get_intf_ip($interface);
$mask ||= $intf->{$interface}{NETMASK};
@conf_data = ([ N("IP address"), \$ip ],
[ N("Netmask"), \$mask ],
[ N("Boot Protocol"), \$intf->{$interface}{BOOTPROTO}, ["static", "dhcp", "bootp"] ],
[ N("Started on boot"), \$intf->{$interface}{ONBOOT} , ["yes", "no"] ],
[ N("DHCP client"), \$netcnx->{dhcp_client} ]
);
my $i = 0;
my $size_group = Gtk2::SizeGroup->new('horizontal');
foreach my $j (@conf_data) {
my $l = Gtk2::Label->new($j->[0]);
$l->set_justify('left');
$infos[2*$i] = gtkpack_(Gtk2::HBox->new,
1, $l);
$vbox_local->pack_start($infos[2*$i], 1, 1, 0);
my $c;
if (defined $j->[2]) {
$c = Gtk2::OptionMenu->new;
$c->set_popdown_strings(@{$j->[2]});
$infos[2*$i+1] = $c->entry;
$infos[2*$i]->pack_start($c,0,0,0);
} else {
$infos[2*$i+1] = ($c = Gtk2::Entry->new);
$infos[2*$i]->pack_start($infos[2*$i+1],0,0,0);
}
$size_group->add_widget($c);
$infos[2*$i+1]->set_text(${$j->[1]});
$i++;
}
my $widget_temp;
if (-e "$::prefix/etc/sysconfig/network-scripts/ifcfg-$interface") {
$widget_temp = gtksignal_connect(Gtk2::Button->new(get_intf_status($interface)),
clicked => sub {
system("/sbin/if" . (ethisup($interface) ? "down" : "up") . " $interface");
$_[0]->set_label(get_intf_status($interface));
update();
});
} else {
$widget_temp = N("This interface has not been configured yet.\nLaunch the configuration wizard in the main window");
}
$vbox_local->pack_start(gtkpack__(Gtk2::HBox->new(0,0),
$widget_temp
),0,0,0);
# $list->append($_+1, $interface, $intf->{$interface}{IPADDR}, $intf->{$interface}{BOOTPROTO}, $all_cards[$_]->[1]);
# $list->set_selectable($_, 0);
$notebook->append_page($vbox_local, Gtk2::Label->new($interface));
}
my $exit_dialogsub = sub {
sensitive_buttons(1);
$window->destroy;
Gtk2->main_quit;
};
gtkpack($window->action_area,
gtksignal_connect(Gtk2::Button->new(N("Cancel")),
clicked => $exit_dialogsub),
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
foreach (0..$#all_cards) {
my @infos = @{$card_tab[2*$_]};
each_index { ${$_->[1]} = $infos[2*$::i+1]->get_text } @{$card_tab[2*$_+1]};
my $interface = $all_cards[$_][0];
if ($intf->{$interface}{BOOTPROTO} ne "static") {
delete @{$intf->{$interface}}{qw(IPADDR NETWORK NETMASK BROADCAST)};
} else {
if ($infos[1]->get_text ne "No ip") {
$intf->{$interface}{IPADDR} = $infos[1]->get_text;
$intf->{$interface}{NETMASK} = $infos[3]->get_text;
}
}
}
update();
$button_apply->set_sensitive(1);
$exit_dialogsub->();
}),
);
$window->show_all;
foreach (0..$#all_cards) {
my @infos = @{$card_tab[2*$_]};
$intf->{$all_cards[$_][0]}{BOOTPROTO} eq "dhcp" or $infos[8]->hide;
}
$window->run;
}
sub configure_net {
my ($_prefix, $netcnx, $netc, $_intf) = @_;
sensitive_buttons(0);
my $dialog;
my $exit_dialogsub = sub {
sensitive_buttons(1);
$dialog->destroy;
Gtk2->main_quit;
};
if (!$netcnx->{type}) {
$dialog = _create_dialog(N("LAN configuration"));
$dialog->vbox->add(Gtk2::Label->new(N("You don't have an Internet connection.
Create one first by clicking on 'Configure'")));
gtkpack($dialog->action_area,
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => $exit_dialogsub),
);
$dialog->show_all;
$dialog->run;
return;
}
my $cnx = {};
$cnx = $netcnx->{$netcnx->{type}};
$dialog = _create_dialog(N("Internet connection configuration"));
$dialog->signal_connect(delete_event => $exit_dialogsub);
$dialog->set_border_width(10);
my $param_vbox = Gtk2::VBox->new(0,0);
my $i = 0;
my @mask;
@mask = (0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0) if $netcnx->{type} eq 'lan';
@mask = (0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1) if $netcnx->{type} eq 'isdn_internal' && defined $cnx->{vendor} && defined $cnx->{id};
@mask = (1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1) if $netcnx->{type} eq 'isdn_internal' && (!defined $cnx->{vendor} || !defined $cnx->{id});
@mask = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0) if $netcnx->{type} eq 'modem' || $netcnx->{type} eq 'isdn_external';
@mask = (0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0) if $netcnx->{type} =~ /adsl/;
@mask = (0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0) if $netcnx->{type} eq 'cable';
#- duplicated code (waiting for 9.1 to be out to merge everything correctly, avoid bug elsewhere).
if ($netcnx->{type} =~ /adsl/) {
require network::adsl;
network::adsl::adsl_probe_info($cnx, $netc, $intf);
}
my @conf_data = ([ N("Card IRQ"), \$cnx->{irq} ],
[ N("Card mem (DMA)"), \$cnx->{mem} ],
[ N("Card IO"), \$cnx->{io} ],
[ N("Card IO_0"), \$cnx->{io0} ],
[ N("Card IO_1"), \$cnx->{io1} ],
[ N("Your personal phone number"), \$cnx->{phone_in} ],
[ N("Provider name (ex provider.net)"), \$netc->{DOMAINNAME2} ],
[ N("Provider phone number"), \$cnx->{phone_out} ],
[ N("Provider dns 1 (optional)"), \$netc->{dnsServer2} ],
[ N("Provider dns 2 (optional)"), \$netc->{dnsServer3} ],
[ N("Account Login (user name)"), \$cnx->{login} ],
[ N("Account Password"), \$cnx->{passwd} ],
[ N("Dialing mode"), \$cnx->{dialing_mode}, [ "auto", "manual" ] ],
[ N("Gateway"), \$netc->{GATEWAY} ],
[ N("Connection name"), \$cnx->{connection} ],
[ N("Phone number"), \$cnx->{phone} ],
[ N("Login ID"), \$cnx->{login} ],
[ N("Password"), \$cnx->{passwd} ],
[ N("Authentication"), \$cnx->{auth}, [ N("PAP"), N("Terminal-based"), N("Script-based"), N_("CHAP") ] ],
[ N("Domain name"), \$cnx->{domain} ],
[ N("First DNS Server (optional)"), \$cnx->{dns1} ],
[ N("Second DNS Server (optional)"), \$cnx->{dns2} ],
[ N("Ethernet Card"), \$netc->{NET_DEVICE}, [ 'eth0', 'eth1', 'eth2', 'eth3', 'eth4', 'eth5', 'eth6', 'eth7', 'eth8', 'eth9' ] ],
[ N("DHCP Client"), \$netcnx->{dhcp_client}, ["dhcp-client", "dhcpcd", "dhcpxd"] ],
[ N("Connection speed"), \$cnx->{speed}, ["64 Kb/s", "128 Kb/s"] ],
[ N("Connection timeout (in sec)"), \$cnx->{huptimeout} ]
);
my @infos;
foreach (@conf_data) {
if (!$mask[$i]) {
$i++;
next;
}
$infos[2*$i] = Gtk2::HBox->new(0,0);
gtkpack($infos[2*$i], gtkset_justify(Gtk2::Label->new($_->[0]), 'left'));
gtkpack($param_vbox, $infos[2*$i]);
if (defined $_->[2]) {
my $c = Gtk2::Combo->new;
$c->set_popdown_strings(@{$_->[2]});
$infos[2*$i+1] = $c->entry;
gtkpack($infos[2*$i], $c);
} else {
$infos[2*$i+1] = Gtk2::Entry->new;
gtkpack($infos[2*$i], $infos[2*$i+1]);
#hide password if Entry Password
$infos[2*$i+1]->set_visibility(0) if $_->[0] eq N("Account Password") || $_->[0] eq N("Password");
}
$infos[2*$i+1]->set_text(${$_->[1]});
$i++;
}
gtkpack($dialog->vbox,
Gtk2::Label->new(N("Internet Connection Configuration")),
Gtk2::HSeparator->new,
create_packtable({ col_spacings => 5, row_spacings => 5, homogenous => 1 },
[ Gtk2::Label->new(N("Profile: ")),
Gtk2::Label->new(translate($netcnx->{PROFILE})) ],
[ Gtk2::Label->new(N("Connection type: ")),
Gtk2::Label->new(translate($netcnx->{type})) ],
),
Gtk2::HSeparator->new,
gtkadd(Gtk2::Frame->new(N("Parameters")), $param_vbox),
);
gtkpack($dialog->action_area,
gtksignal_connect(Gtk2::Button->new(N("Cancel")), clicked => $exit_dialogsub),
gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
each_index {
${$conf_data[$::i][1]} = $infos[2*$::i+1]->get_text if $_;
} @mask;
update();
$button_apply->set_sensitive(1);
$exit_dialogsub->();
}),
);
$dialog->show_all;
$dialog->run;
}
|