From f9cc0d708a2127030c1f42e048c93523f3a953c3 Mon Sep 17 00:00:00 2001 From: casemaster Date: Tue, 22 May 2007 19:51:25 +0000 Subject: [PATCH] =?utf8?q?Weitere=20=C3=84nderungen=20am=20Installer/Setup?= =?utf8?q?=20vorgenommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@576 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- src/install+setup/install/main.c | 6 ++--- src/install+setup/install/probenic.sh | 4 ++-- src/install+setup/libsmooth/libsmooth.h | 2 ++ src/install+setup/libsmooth/netstuff.c | 30 ++++++++++++++++--------- src/install+setup/setup/main.c | 4 ++-- src/install+setup/setup/networking.c | 8 +++++++ 6 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 5586689f2e..5193d8f0ca 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -4,7 +4,7 @@ * Licence. See the file COPYING for details. * * (c) Lawrence Manning, 2001 - * Contains main entry point, and misc functions. + * Contains main entry point, and misc functions.6 * */ @@ -25,8 +25,8 @@ char **ctr; extern char url[STRING_SIZE]; -struct nic nics[20] = { { "" , "" } }; // only defined for compile -struct knic knics[20] = { { "" , "" , "" } }; // only defined for compile +struct nic nics[20] = { { "" , "" , "" } }; // only defined for compile +struct knic knics[20] = { { "" , "" , "" , "" } }; // only defined for compile extern char *en_tr[]; extern char *de_tr[]; diff --git a/src/install+setup/install/probenic.sh b/src/install+setup/install/probenic.sh index 38ad71c7b1..13e703360a 100644 --- a/src/install+setup/install/probenic.sh +++ b/src/install+setup/install/probenic.sh @@ -2,14 +2,14 @@ case "$1" in install) - kudzu -qps -c NETWORK | egrep "desc|network.hwaddr" | \ + kudzu -qps -c NETWORK | egrep "desc|network.hwaddr|driver" | \ awk -F": " '{ print $2";" }' | sed -e '/..:..:..:..:..:..;/a\X' | \ tr "\n" "X" | sed -e 's/XXX/\n/g' -e 's/;X/;/g' | \ sort > /tmp/scanned_nics 2>/dev/null ;; "") if [ ! -e /var/ipfire/ethernet/scan_lock ]; then - kudzu -qps -c NETWORK | egrep "desc|network.hwaddr" | \ + kudzu -qps -c NETWORK | egrep "desc|network.hwaddr|driver" | \ awk -F": " '{ print $2";" }' | sed -e '/..:..:..:..:..:..;/a\X' | \ tr "\n" "X" | sed -e "s/XXX/\n/g" -e 's/;X/;/g' | \ sort > /var/ipfire/ethernet/scanned_nics 2>/dev/null diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h index d990de971c..f32915cec8 100644 --- a/src/install+setup/libsmooth/libsmooth.h +++ b/src/install+setup/libsmooth/libsmooth.h @@ -59,12 +59,14 @@ struct keyvalue }; struct nic { + char driver[80]; char description[256]; char macaddr[20]; }; struct knic { + char driver[80]; char description[256]; char macaddr[20]; char colour[20]; diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index cfed018b57..ad0141a37c 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -330,7 +330,7 @@ int interfacecheck(struct keyvalue *kv, char *colour) } /* Funky routine for loading all drivers (cept those are already loaded.). */ -int probecards(char *driver, char *driveroptions) +int probecards(char *driver, char *driveroptions ) { return 0; } @@ -354,7 +354,7 @@ void strupper(unsigned char *string) } */ -int write_configs_netudev(char *description, char *macaddr, int colour) +int write_configs_netudev(int card , int colour) { #define UDEV_NET_CONF "/etc/udev/rules.d/30-persistent-network.rules" FILE *fp; @@ -367,8 +367,9 @@ int write_configs_netudev(char *description, char *macaddr, int colour) // strupper(ucolour); sprintf(ucolour, ucolourcard[colour]); - strcpy(knics[colour].description, description); - strcpy(knics[colour].macaddr, macaddr); + strcpy(knics[colour].driver, nics[card].driver); + strcpy(knics[colour].description, nics[card].description); + strcpy(knics[colour].macaddr, nics[card].macaddr); if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))) { @@ -381,9 +382,11 @@ int write_configs_netudev(char *description, char *macaddr, int colour) sprintf(temp2, "%s_MACADDR", ucolour); sprintf(temp3, "%s0", lcolourcard[colour]); replacekeyvalue(kv, temp1, temp3); - replacekeyvalue(kv, temp2, macaddr); + replacekeyvalue(kv, temp2, nics[card].macaddr); sprintf(temp1, "%s_DESCRIPTION", ucolour); - replacekeyvalue(kv, temp1, description); + replacekeyvalue(kv, temp1, nics[card].description); + sprintf(temp1, "%s_DRIVER", ucolour); + replacekeyvalue(kv, temp1, nics[card].driver); writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings"); freekeyvalues(kv); @@ -403,7 +406,7 @@ int write_configs_netudev(char *description, char *macaddr, int colour) fprintf(stderr,"Couldn't open" UDEV_NET_CONF); return 1; } - fprintf(fp,"ACTION==\"add\", SUBSYSTEM==\"net\", SYSFS{address}==\"%s\", NAME=\"%s0\" # %s\n", macaddr, lcolourcard[colour], description); + fprintf(fp,"ACTION==\"add\", SUBSYSTEM==\"net\", SYSFS{address}==\"%s\", NAME=\"%s0\" # %s\n", nics[card].macaddr, lcolourcard[colour], nics[card].description); fclose(fp); return 0; @@ -412,7 +415,7 @@ int write_configs_netudev(char *description, char *macaddr, int colour) int scan_network_cards(void) { FILE *fp; - char description[STRING_SIZE], macaddr[STRING_SIZE], temp_line[STRING_SIZE]; + char driver[STRING_SIZE], description[STRING_SIZE], macaddr[STRING_SIZE], temp_line[STRING_SIZE]; int count = 0; if (!(scanned_nics_read_done)) @@ -427,11 +430,13 @@ int scan_network_cards(void) } while (fgets(temp_line, STRING_SIZE, fp) != NULL) { - strcpy(description, strtok(temp_line,";")); + strcpy(driver, strtok(temp_line,";")); + strcpy(description, strtok(NULL,";")); strcpy(macaddr, strtok(NULL,";")); if ( strlen(macaddr) ) { + strcpy(nics[count].driver , driver ); strcpy(nics[count].description , description ); - strcpy(nics[count].macaddr , macaddr ); + strcpy(nics[count].macaddr , macaddr ); count++; } } @@ -506,7 +511,7 @@ int nicmenu(int colour) rc = newtWinMenu("(TR) NetcardMenu2", message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_OK], ctr[TR_SELECT], ctr[TR_CANCEL], NULL); if ( rc == 0 || rc == 1) { - write_configs_netudev(nics[choise].description, nics[found_NIC_as_Card[choise]].macaddr, colour); + write_configs_netudev(found_NIC_as_Card[choise], colour); } else if (rc == 2) { // manualdriver("pcnet32",""); } @@ -530,9 +535,12 @@ int clear_card_entry(int card) return 0; } + strcpy(knics[card].driver, ""); strcpy(knics[card].description, ctr[TR_UNSET]); strcpy(knics[card].macaddr, ""); strcpy(knics[card].colour, ""); + sprintf(temp, "%s_DRIVER", ucolourcard[card]); + replacekeyvalue(kv, temp, ""); sprintf(temp, "%s_DEV", ucolourcard[card]); replacekeyvalue(kv, temp, ""); sprintf(temp, "%s_MACADDR", ucolourcard[card]); diff --git a/src/install+setup/setup/main.c b/src/install+setup/setup/main.c index 1000a9474e..3bd5bf5b12 100644 --- a/src/install+setup/setup/main.c +++ b/src/install+setup/setup/main.c @@ -21,8 +21,8 @@ char **ctr = NULL; int automode = 0; -struct nic nics[20] = { { "" , "" } }; -struct knic knics[20] = { { "" , "" , "" } }; +struct nic nics[20] = { { "" , "" , "" } }; +struct knic knics[20] = { { "" , "" , "" , "" } }; extern char *en_tr[]; extern char *de_tr[]; diff --git a/src/install+setup/setup/networking.c b/src/install+setup/setup/networking.c index 9bb9fd649f..c7ff66908b 100644 --- a/src/install+setup/setup/networking.c +++ b/src/install+setup/setup/networking.c @@ -348,6 +348,8 @@ int drivermenu(void) strcpy(knics[_GREEN_CARD_].colour, "GREEN"); findkey(kv, "GREEN_DESCRIPTION", temp); strcpy(knics[_GREEN_CARD_].description, temp); + findkey(kv, "GREEN_DRIVER", temp); + strcpy(knics[_GREEN_CARD_].driver, temp); kcount++; } else { strcpy(knics[_GREEN_CARD_].description, ctr[TR_UNSET]); @@ -367,6 +369,8 @@ int drivermenu(void) strcpy(knics[_RED_CARD_].colour, "RED"); findkey(kv, "RED_DESCRIPTION", temp); strcpy(knics[_RED_CARD_].description, temp); + findkey(kv, "RED_DRIVER", temp); + strcpy(knics[_RED_CARD_].driver, temp); kcount++; } else { strcpy(knics[_RED_CARD_].description, ctr[TR_UNSET]); @@ -386,6 +390,8 @@ int drivermenu(void) strcpy(knics[_ORANGE_CARD_].colour, "ORANGE"); findkey(kv, "ORANGE_DESCRIPTION", temp ); strcpy(knics[_ORANGE_CARD_].description, temp ); + findkey(kv, "ORANGE_DRIVER", temp); + strcpy(knics[_ORANGE_CARD_].driver, temp); kcount++; } else { strcpy(knics[_ORANGE_CARD_].description, ctr[TR_UNSET]); @@ -405,6 +411,8 @@ int drivermenu(void) strcpy(knics[_BLUE_CARD_].colour, "BLUE"); findkey(kv, "BLUE_DESCRIPTION", temp ); strcpy(knics[_BLUE_CARD_].description, temp); + findkey(kv, "BLUE_DRIVER", temp); + strcpy(knics[_BLUE_CARD_].driver, temp); kcount++; } else { strcpy(knics[_BLUE_CARD_].description, ctr[TR_UNSET]); -- 2.39.2