From 9c1c1c57eaf167237c9eb92054c2268caaded93b Mon Sep 17 00:00:00 2001 From: casemaster Date: Wed, 20 Jun 2007 21:37:19 +0000 Subject: [PATCH] Korrektur zum speichern der 30-udev Datei. git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@641 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- src/install+setup/libsmooth/libsmooth.h | 2 +- src/install+setup/libsmooth/netstuff.c | 45 +++++++++++++++++++++++++ src/install+setup/setup/networking.c | 45 +++++++++---------------- 3 files changed, 62 insertions(+), 30 deletions(-) diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h index b9ffe2157..85c4dad1d 100644 --- a/src/install+setup/libsmooth/libsmooth.h +++ b/src/install+setup/libsmooth/libsmooth.h @@ -43,7 +43,6 @@ #define DHCP 3 #define NETCHANGE_TOTAL 4 -#define KNOWN_NICS "/var/ipfire/ethernet/known_nics" #define SCANNED_NICS "/var/ipfire/ethernet/scanned_nics" #define _GREEN_CARD_ 0 @@ -94,6 +93,7 @@ int gettype(char *type); int setnetaddress(struct keyvalue *kv, char *colour); void networkdialogcallbacktype(newtComponent cm, void *data); int interfacecheck(struct keyvalue *kv, char *colour); +int init_knics(void); int create_udev(void); int scan_network_cards(void); int nicmenu(int colour); diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index 5fa07d37e..e1a926d66 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -366,6 +366,51 @@ void strupper(unsigned char *string) } */ +int get_knic(int card) //returns "0" for zero cards or error and "1" card is found. +{ + struct keyvalue *kv = initkeyvalues(); + char temp[STRING_SIZE], searchstr[STRING_SIZE]; + int ret_value; + + if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))) + { + freekeyvalues(kv); + errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]); + return 0; + } + + sprintf(searchstr, "%s_MACADDR", ucolourcard[card]); + strcpy(temp, ""); findkey(kv, searchstr, temp); + if (strlen(temp)) { + strcpy(knics[ card ].macaddr, temp); + strcpy(knics[ card ].colour, "GREEN"); + + sprintf(searchstr, "%s_DESCRIPTION", ucolourcard[card]); + findkey(kv, searchstr, temp); + strcpy(knics[ card ].description, temp); + + sprintf(searchstr, "%s_DRIVER", ucolourcard[card]); + findkey(kv, searchstr, temp); + strcpy(knics[ card ].driver, temp); + ret_value = 1; + } else { + strcpy(knics[ card ].description, ctr[TR_UNSET]); + ret_value = 0; + } + + return ret_value; +} + +int init_knics(void) +{ + int found = 0; + found += get_knic(_GREEN_CARD_); + found += get_knic(_RED_CARD_); + found += get_knic(_ORANGE_CARD_); + found += get_knic(_BLUE_CARD_); + + return found; +} int create_udev(void) { diff --git a/src/install+setup/setup/networking.c b/src/install+setup/setup/networking.c index b2e51033c..a580a3d0e 100644 --- a/src/install+setup/setup/networking.c +++ b/src/install+setup/setup/networking.c @@ -89,6 +89,8 @@ int handlenetworking(void) found = scan_network_cards(); fprintf(flog,"found %d cards\n",found); // #### Debug #### + found = init_knics(); + fprintf(flog,"found %d kcards\n",found); // #### Debug #### done = 0; while (!done) @@ -304,21 +306,19 @@ int configtypemenu(void) return 0; } + + /* Driver menu. Choose drivers.. */ int drivermenu(void) { struct keyvalue *kv = initkeyvalues(); char message[STRING_SIZE]; char temp[STRING_SIZE]; -// char description[STRING_SIZE], macaddr[STRING_SIZE]; -// struct nic *pnics = nics; -// pnics = nics; -// struct knic *pknics = knics; -// pknics = knics; + int configtype; - int rc, kcount = 0, neednics; //i = 0, count = 0, + int i, rc, kcount = 0, neednics; //i = 0, count = 0, - fprintf(flog,"Enter driverenu\n"); // #### Debug #### + fprintf(flog,"Enter drivermenu\n"); // #### Debug #### if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))) { @@ -330,19 +330,12 @@ int drivermenu(void) strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp); configtype = atol(temp); -// if (configtype == 0) -// { -// freekeyvalues(kv); -// errorbox(ctr[TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER]); -// return 0; -// } - strcpy(message, ctr[TR_CONFIGURE_NETWORK_DRIVERS]); kcount = 0; // counter to find knowing nics. neednics = 0; // counter to use needing nics. if (HAS_GREEN) { - strcpy(temp, ""); findkey(kv, "GREEN_MACADDR", temp); +/* strcpy(temp, ""); findkey(kv, "GREEN_MACADDR", temp); if (strlen(temp)) { strcpy(knics[_GREEN_CARD_].macaddr, temp); strcpy(knics[_GREEN_CARD_].colour, "GREEN"); @@ -354,6 +347,7 @@ int drivermenu(void) } else { strcpy(knics[_GREEN_CARD_].description, ctr[TR_UNSET]); } +*/ sprintf(temp, "GREEN: %s\n", knics[_GREEN_CARD_].description); strcat(message, temp); if (strlen(knics[_GREEN_CARD_].macaddr) ) { @@ -363,7 +357,7 @@ int drivermenu(void) neednics++; } if (HAS_RED) { - strcpy(temp, ""); findkey(kv, "RED_MACADDR", temp); +/* strcpy(temp, ""); findkey(kv, "RED_MACADDR", temp); if (strlen(temp)) { strcpy(knics[_RED_CARD_].macaddr, temp); strcpy(knics[_RED_CARD_].colour, "RED"); @@ -375,6 +369,7 @@ int drivermenu(void) } else { strcpy(knics[_RED_CARD_].description, ctr[TR_UNSET]); } +*/ sprintf(temp, "RED: %s\n", knics[_RED_CARD_].description); strcat(message, temp); if (strlen(knics[_RED_CARD_].macaddr) ) { @@ -384,7 +379,7 @@ int drivermenu(void) neednics++; } if (HAS_ORANGE) { - strcpy(temp, ""); findkey(kv, "ORANGE_MACADDR", temp); +/* strcpy(temp, ""); findkey(kv, "ORANGE_MACADDR", temp); if (strlen(temp)) { strcpy(knics[_ORANGE_CARD_].macaddr, temp); strcpy(knics[_ORANGE_CARD_].colour, "ORANGE"); @@ -396,6 +391,7 @@ int drivermenu(void) } else { strcpy(knics[_ORANGE_CARD_].description, ctr[TR_UNSET]); } +*/ sprintf(temp, "ORANGE: %s\n", knics[_ORANGE_CARD_].description); strcat(message, temp); if ( strlen(knics[_ORANGE_CARD_].macaddr) ) { @@ -405,7 +401,7 @@ int drivermenu(void) neednics++; } if (HAS_BLUE) { - strcpy(temp, ""); findkey(kv, "BLUE_MACADDR", temp); +/* strcpy(temp, ""); findkey(kv, "BLUE_MACADDR", temp); if (strlen(temp)) { strcpy(knics[_BLUE_CARD_].macaddr, temp); strcpy(knics[_BLUE_CARD_].colour, "BLUE"); @@ -417,6 +413,7 @@ int drivermenu(void) } else { strcpy(knics[_BLUE_CARD_].description, ctr[TR_UNSET]); } +*/ sprintf(temp, "BLUE: %s\n", knics[_BLUE_CARD_].description); strcat(message, temp); if (strlen(knics[_BLUE_CARD_].macaddr)) { @@ -426,6 +423,7 @@ int drivermenu(void) neednics++; } + for ( i=0 ; i<4;i++) if (strcmp(knics[i].macaddr, "")) kcount++; fprintf(flog,"found %d knowing Card\'s\n", kcount); // #### DEBUG #### if (neednics = kcount) { @@ -448,17 +446,6 @@ int drivermenu(void) return 1; } -int cardassigned(char *colour) -{ - char command[STRING_SIZE]; - fprintf(flog,"cardassigned - %s\n", colour); - sprintf(command, "grep -q %s < /etc/udev/rules.d/30-persistent-network.rules 2>/dev/null", colour); - if (system(command)) - return 0; - else - return 1; -} - int set_menu_entry_for(int *nr, int *card) { -- 2.39.2