Korrektur zum speichern der 30-udev Datei.

git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@641 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
This commit is contained in:
casemaster
2007-06-20 21:37:19 +00:00
parent ad60e3ead1
commit 9c1c1c57ea
3 changed files with 62 additions and 30 deletions

View File

@@ -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);

View File

@@ -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)
{

View File

@@ -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)
{