diff options
Diffstat (limited to 'perl-install/standalone')
-rwxr-xr-x | perl-install/standalone/drakconnect | 56 |
1 files changed, 44 insertions, 12 deletions
diff --git a/perl-install/standalone/drakconnect b/perl-install/standalone/drakconnect index 45b08ba47..41b0a198d 100755 --- a/perl-install/standalone/drakconnect +++ b/perl-install/standalone/drakconnect @@ -22,7 +22,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use strict; -use warnings; use diagnostics; use lib qw(/usr/lib/libDrakX); @@ -231,10 +230,14 @@ sub manage { ), ); $apply_button = $oc->{buttons}{N("Apply")}; + + network::netconnect::detect(my $detect = {}); + $detect->{adsl} and do { $detect->{adsl}{$_} and $intf->{$_} = {} foreach keys %{$detect->{adsl}} }; + each_index { my $interface = $_; $gui->{$interface}{index} = $::i; - build_notebook($window, $netc, $intf->{$interface}, $gui->{$interface}, $interface, $apply_button); + build_notebook($netc, $intf->{$interface}, $gui->{$interface}, $interface, $apply_button); $notebook->append_page(gtkpack(Gtk2::VBox->new(0,0), $gui->{$interface}{notebook})); } (sort keys %$intf); @@ -247,7 +250,7 @@ sub manage { } sub build_notebook { - my ($window, $netc, $intf, $gui, $interface, $apply_button) = @_; + my ($netc, $intf, $gui, $interface, $apply_button) = @_; my $apply = sub { $apply_button->set_sensitive(1) }; @@ -292,9 +295,10 @@ sub build_notebook { ); $gui->{intf}{BOOTPROTO} and $gui->{intf}{BOOTPROTO}->set_popdown_strings(N_("static"), N_("dhcp")); $interface !~ /eth/ and $_->set_sensitive(0) foreach $gui->{intf}{IPADDR}, $gui->{intf}{NETMASK}; + !$intf->{IPADDR} and ($intf->{IPADDR}, $gui->{active}, $intf->{NETMASK}) = get_intf_ip($interface); $gui->{intf}{$_}->set_text($intf->{$_}) foreach keys %{$gui->{intf}}; $gui->{netc}{$_}->set_text($netc->{$_}) foreach keys %{$gui->{netc}}; - + if ($intf->{WIRELESS_MODE}) { gtkpack($gui->{sheet}{Wireless} = Gtk2::HBox->new(0,0), gtkpack_(Gtk2::VBox->new(0,0), @@ -342,20 +346,48 @@ sub build_notebook { )); $gui->{intf_bool}{$_}->set_active($intf->{$_} eq 'yes' ? 1 : 0) foreach keys %{$gui->{intf_bool}}; + #- account box + if ($interface eq 'speedtouch' || $interface eq 'sagem') { + $gui->{description} = $interface eq 'speedtouch' ? 'Alcatel|USB ADSL Modem (Speed Touch)' : 'Analog Devices Inc.|USB ADSL modem'; + gtkpack_($gui->{sheet}{Account} = Gtk2::VBox->new(0,0), + 0, gtkpack_(Gtk2::VBox->new(0,0), + 1, Gtk2::Label->new(N("Authentication")), + 0, my $auth_menu = gtksignal_connect(Gtk2::OptionMenu->new, + changed => $apply), + ), + map { (0, gtkpack_(Gtk2::VBox->new(0,0), + 1, Gtk2::Label->new($_->[0]), + 0, $gui->{intf}{$_->[1]} = gtksignal_connect(Gtk2::Entry->new, + key_press_event => $apply), + ), + ); + } ([ N("Account Login (user name)"), 'login' ], + [ N("Account Password"), 'passwd' ], + #[ N("Provider phone number"), 'phone_out' ], + ), + ); + $auth_menu->set_popdown_strings(N("PAP"), N("Terminal-based"), N("Script-based"), N_("CHAP")); + $gui->{intf}{passwd}->set_visibility(0); + /^user\s+"([^"]+)"/ and $intf->{login} = $1 foreach cat_("/etc/ppp/peers/adsl"); + $_->{login} eq $intf->{login} and $intf->{passwd} = $_->{passwd} foreach @{read_secret_backend()}; + $gui->{intf}{$_}->set_text($intf->{$_}) foreach keys %{$gui->{intf}}; + } + #- informations box my $module = c::getNetDriver($interface) || modules::get_alias($interface); - my $info = find { $_->{driver} eq $module } detect_devices::probeall(); + my $info = find { $module ? $_->{driver} eq $module : $_->{description} eq $gui->{description} } detect_devices::probeall(); + gtkpack($gui->{sheet}{Informations} = Gtk2::VBox->new(0,0), - gtktext_insert(Gtk2::TextView->new, + gtktext_insert(Gtk2::TextView->new, join('', map { $_->[0] . ": \x{200e}" . $_->[1] . "\n" } ( [ N("Vendor"), split('\|', $info->{description}) ], [ N("Description"), reverse split('\|', $info->{description}) ], - [ N("Media class"), $info->{media_type} ], - [ N("Module name"), $module ], - [ N("Mac Address"), c::get_hw_address($interface) ], - [ N("Bus"), $info->{bus} ], - [ N("Location on the bus"), $info->{pci_bus} ], + [ N("Media class"), $info->{media_type} || '-' ], + [ N("Module name"), $module || '-' ], + [ N("Mac Address"), c::get_hw_address($interface) || '-' ], + [ N("Bus"), $info->{bus} || '-' ], + [ N("Location on the bus"), $info->{pci_bus} || '-' ], ) ) ), @@ -367,7 +399,7 @@ sub build_notebook { sub populate_notebook { my ($notebook, $gui) = @_; - foreach ('Tcp/ip', 'Wireless', 'Options', 'Informations') { + foreach ('Tcp/ip', 'Account', 'Wireless', 'Options', 'Informations') { !$gui->{sheet}{$_} and next; $notebook->append_page($gui->{sheet}{$_}, Gtk2::Label->new($_)); } |