/[smeserver]/rpms/e-smith-base+ldap/sme8/e-smith-base+ldap-5.2.0-hwaddress.patch
ViewVC logotype

Annotation of /rpms/e-smith-base+ldap/sme8/e-smith-base+ldap-5.2.0-hwaddress.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Fri Feb 5 08:30:42 2010 UTC (14 years, 4 months ago) by dungog
Branch: MAIN
CVS Tags: e-smith-base+ldap-5_2_0-15_el5_sme, e-smith-base+ldap-5_2_0-16_el5_sme, e-smith-base+ldap-5_2_0-18_el5_sme, e-smith-base+ldap-5_2_0-17_el5_sme, e-smith-base+ldap-5_2_0-14_el5_sme, HEAD
* Fri Feb 5 2010 Stephen Noble <support@dungog.net> 5.2.0-14.sme
- Fix eth? swapping [SME: 4528]

1 dungog 1.1 diff -uNr e-smith-base-5.2.0/root/etc/e-smith/templates/etc/sysconfig/network-scripts/ifcfg-ethX/10HWADDR e-smith-base-5.2.0-hwaddress/root/etc/e-smith/templates/etc/sysconfig/network-scripts/ifcfg-ethX/10HWADDR
2     --- e-smith-base-5.2.0/root/etc/e-smith/templates/etc/sysconfig/network-scripts/ifcfg-ethX/10HWADDR 1970-01-01 01:00:00.000000000 +0100
3     +++ e-smith-base-5.2.0-hwaddress/root/etc/e-smith/templates/etc/sysconfig/network-scripts/ifcfg-ethX/10HWADDR 2010-01-25 16:07:25.127139939 +0100
4     @@ -0,0 +1,11 @@
5     +{
6     + $OUT = "";
7     + return if ($InternalInterface{Name} eq "bond0");
8     + if ($THIS_DEVICE =~ /^eth[01]$/)
9     + {
10     + $OUT .= "HWADDR=" . (
11     + ($is_internal) ?
12     + $InternalInterface{HWAddress} : $ExternalInterface{HWAddress}
13     + );
14     + }
15     +}
16     diff -uNr e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/configure.pm e-smith-base-5.2.0-hwaddress/root/usr/lib/perl5/site_perl/esmith/console/configure.pm
17     --- e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/configure.pm 2010-01-25 16:45:28.248772290 +0100
18     +++ e-smith-base-5.2.0-hwaddress/root/usr/lib/perl5/site_perl/esmith/console/configure.pm 2010-01-25 17:20:01.498833247 +0100
19     @@ -51,50 +51,52 @@
20     {
21     # We'll use a VLAN on eth0 for the "dedicated" WAN link
22     $db->set_value("EthernetDriver2", "unknown");
23     + $db->set_prop("ExternalInterface", "HWAddress", "");
24     return 'CHANGE';
25     }
26     # Internal, and there's only one
27     - my (undef, $driver, undef) = split (/\s+/, $adapters[0], 3);
28     + my (undef, $driver, $hwaddr, undef) = split (/\s+/, $adapters[0], 4);
29     $db->set_value("EthernetDriver1", $driver);
30     + $db->set_prop("InternalInterface", "HWAddress", $hwaddr);
31     return 'CHANGE';
32     }
33    
34     - if (scalar @adapters == 2)
35     - {
36     - my (undef, $driver1, undef) = split (/\s+/, $adapters[0], 3);
37     - my (undef, $driver2, undef) = split (/\s+/, $adapters[1], 3);
38     - if ($driver1 eq $driver2)
39     - {
40     - # Choice is obvious!
41     - $db->set_value($confEntry, $driver1);
42     - return 'CHANGE';
43     - }
44     - }
45     -
46     my %tag2driver;
47     + my %tag2hwaddr;
48     my @args;
49     my $default;
50     + my $existing_hwaddr;
51     + my $skip;
52    
53     - my $existing_driver = $db->get_value($confEntry);
54     - my $skip = ($confEntry eq "EthernetDriver2") ? $db->get_value("EthernetDriver1") : '';
55     + if ($ifName eq "external")
56     + {
57     + $skip = $db->get_prop("InternalInterface", "HWAddress");
58     + $existing_hwaddr = $db->get_prop("ExternalInterface", "HWAddress");
59     + }
60     + else
61     + {
62     + $skip = "";
63     + $existing_hwaddr = $db->get_prop("InternalInterface", "HWAddress");
64     + }
65    
66     foreach my $adapter ( @adapters )
67     {
68     - my ($parameter, $driver, $chipset) = split (/\s+/, $adapter, 3);
69     + my ($parameter, $driver, $hwaddr, $chipset) = split (/\s+/, $adapter, 4);
70     chomp($chipset);
71    
72     my $tag = ++$item . ".";
73    
74     $tag2driver{$tag} = $driver;
75     + $tag2hwaddr{$tag} = $hwaddr;
76    
77     my $display_name = gettext("Use") . " " . ${driver} . " " .
78     gettext("for chipset") . " " . ${chipset};
79    
80     push(@args, $tag, substr($display_name, 0, 65));
81    
82     - if ($driver ne $skip)
83     + if ($hwaddr ne $skip)
84     {
85     - $default = $tag if $driver eq $existing_driver;
86     + $default = $tag if $hwaddr eq $existing_hwaddr;
87     $default ||= $tag;
88     }
89     }
90     @@ -106,13 +108,6 @@
91     gettext("external");
92     #--------------------------------------------------------
93    
94     - push( @args,
95     - ++$item . ".",
96     - sprintf(gettext("Manually select driver for %s ethernet adapter"),
97     - gettext($ifName)),
98     - );
99     -
100     -
101     my ($rc, $choice) = $console->menu_page
102     (
103     title => sprintf(gettext("Select %s network ethernet driver"),
104     @@ -129,109 +124,17 @@
105    
106     return 'CANCEL' unless ($rc == 0);
107    
108     - my $newDriver;
109     -
110     - if ( $choice =~ /^${item}/ )
111     - {
112     - $newDriver = ethernetManual($ifName);
113     - return 'CANCEL_MANUAL' if ($newDriver eq 'CANCEL_MANUAL');
114     - }
115     - elsif (defined($tag2driver{$choice}) )
116     - {
117     - $newDriver = $tag2driver{$choice};
118     - }
119     -
120     - if ( $newDriver eq $existing_driver )
121     - {
122     - return 'KEEP';
123     - }
124     + return 'KEEP' if ($tag2hwaddr{$choice} eq $existing_hwaddr);
125    
126     - # Try to load the driver before accepting it.
127     - system('/sbin/modprobe', $newDriver) == 0
128     - or return ('NOLOAD', $newDriver);
129     + $db->set_value($confEntry, $tag2driver{$choice});
130     + $db->set_prop(
131     + ($ifName eq "external") ? "ExternalInterface" : "InternalInterface",
132     + "HWAddress", $tag2hwaddr{$choice}
133     + );
134    
135     - $db->set_value($confEntry, $newDriver);
136     return 'CHANGE';
137     }
138    
139     -#------------------------------------------------------------
140     -# Manually choose Ethernet driver for given adapter
141     -#------------------------------------------------------------
142     -sub ethernetManual($)
143     -{
144     - my ($ifName) = @_;
145     -
146     - my $driver = gettext("unknown");
147     -
148     - my @args =
149     - (
150     - "1.", gettext("Choose driver by specifying ethernet adapter model"),
151     - "2.", gettext("Choose driver directly"),
152     - );
153     -
154     - my ($rc, $choice) = $console->menu_page
155     - (
156     - title => sprintf(gettext("Select %s adapter manually"), gettext($ifName)),
157     - text => gettext("Please select one of the following:"),
158     - argsref => \@args
159     - );
160     -
161     - return 'CANCEL_MANUAL' unless ($rc == 0);
162     -
163     - if ($choice eq "1.")
164     - {
165     - # Choose driver by specifying ethernet adapter model
166     - my @args;
167     -
168     - my $adapters = esmith::ethernet::listAdapters();
169     -
170     - while ( $adapters =~ s/^\s*"([^"]*)"// ) # )"...Keep Emacs happy
171     - {
172     - push @args, substr $1, 0, 60;
173     - }
174     -
175     - my ($rc, $choice) = $console->menu_page
176     - (
177     - title => sprintf(gettext("Specify %s adapter and driver"),
178     - gettext($ifName)),
179     - text => sprintf(gettext("Please specify your %s ethernet adapter and corresponding driver"), gettext($ifName)),
180     - argsref => \@args
181     - );
182     -
183     - return 'CANCEL_MANUAL' unless ($rc == 0);
184     -
185     - $choice =~ /(\w+)/;
186     - $driver = $1;
187     - }
188     - else
189     - {
190     - # Choose driver directly
191     -
192     - my @args;
193     -
194     - my $drivers = esmith::ethernet::listDrivers;
195     -
196     - while ($drivers =~ s/^\s*"([^"]*)"//)
197     - {
198     - push @args, substr $1, 0, 60;
199     - }
200     -
201     - my ($rc, $choice) = $console->menu_page
202     - (
203     - title => sprintf(gettext("Specify %s ethernet driver"), gettext($ifName)),
204     - text => sprintf(gettext("Please specify the driver to use for the %s ethernet adapter"), gettext($ifName)),
205     - argsref => \@args
206     - );
207     -
208     - return 'CANCEL_MANUAL' unless ($rc == 0);
209     -
210     - $choice =~ /(\w+)/;
211     - $driver = $1;
212     - }
213     -
214     - return $driver;
215     -}
216     -
217     sub doit
218     {
219     my $self = shift;
220     @@ -615,44 +518,7 @@
221     goto ETHERNET_EXTERNAL;
222     }
223    
224     - if ($db->get_value('EthernetDriver1') eq $db->get_value('EthernetDriver2'))
225     - {
226     - goto ETHERNET_SWAP
227     - }
228     - else
229     - {
230     - $db->set_value('EthernetAssign', "normal");
231     - }
232     -
233     - goto SERVER_GATEWAY_DEDICATED;
234     -}
235     -
236     -#------------------------------------------------------------
237     -ETHERNET_SWAP:
238     -#------------------------------------------------------------
239     -
240     -{
241     - my $EthernetAssign = $db->get_value('EthernetAssign');
242     -
243     - my @args = (
244     - gettext("normal"), gettext("eth0 is local, eth1 is external"),
245     - gettext("swapped"), gettext("eth1 is local, eth0 is external")
246     - );
247     -
248     - ($rc, $choice) = $console->menu_page
249     - (
250     - title => gettext("Select ethernet card assignment"),
251     - default => gettext($EthernetAssign),
252     - text =>
253     - gettext("You have two Ethernet cards which use the same driver. The server will automatically designate one for your local network (called eth0) and one for your external Internet connection (called eth1). If this default assignment is not appropriate for your situation, you can select the opposite assignment using swapped mode. Most installations can accept the default setting of normal.") .
254     - "\n\n" .
255     - gettext("Please select whether you want to operate in normal or swapped mode.") ,
256     - argsref => \@args
257     - );
258     -
259     - goto SERVER_GATEWAY unless ($rc == 0);
260     -
261     - $db->set_value('EthernetAssign', ($choice eq gettext("swapped")) ? "swapped" : "normal");
262     + $db->set_value('EthernetAssign', "normal");
263    
264     goto SERVER_GATEWAY_DEDICATED;
265     }
266     @@ -1671,8 +1537,8 @@
267     {
268     if (scalar @adapters == 2)
269     {
270     - my (undef, $driver1, undef) = split (/\s+/, $adapters[0], 3);
271     - my (undef, $driver2, undef) = split (/\s+/, $adapters[1], 3);
272     + my (undef, $driver1, undef, undef) = split (/\s+/, $adapters[0], 4);
273     + my (undef, $driver2, undef, undef) = split (/\s+/, $adapters[1], 4);
274     if($driver1 eq $driver2)
275     {
276     my $val = $db->get_prop('InternalInterface', 'NICBonding') || 'disabled';

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed