]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
Vorbereitung am Installer/Setup um NIC-Namen umzubenennen.
authorcasemaster <casemaster@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Thu, 12 Jul 2007 22:54:17 +0000 (22:54 +0000)
committercasemaster <casemaster@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Thu, 12 Jul 2007 22:54:17 +0000 (22:54 +0000)
git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@679 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

config/install/halt
src/install+setup/libsmooth/libsmooth.h
src/install+setup/libsmooth/netstuff.c
src/install+setup/setup/main.c

index 666c27c649cc3a679ed934e9cd787d07fd65696a..bc823e3f9a925bd7151c2bc9e5a71bba634b7118 100644 (file)
@@ -1,5 +1,6 @@
 #!/bin/sh
 # Clear screen
+sleep 60
 /bin/clear
 
 echo "Shutting down..."
index 85c4dad1db65f8469ab3262e18c43ba9200cf527..88ec00561a22798a5d50fad0055a0dd8277f02d4 100644 (file)
@@ -61,6 +61,7 @@ struct nic
        char driver[80];
        char description[256];
        char macaddr[20];
+       char nic[20];
 };
 
 struct knic
index e1a926d663699b89603ef8250fbedf64a43fab48..54143745149c93b13015db9167de93a5dc0b2692 100644 (file)
@@ -470,6 +470,54 @@ int write_configs_netudev(int card , int colour)
        return 0;
 }
 
+char g_temp[STRING_SIZE]="";
+char* readmac(char *card) {
+       fprintf(flog,"Enter readmac... NIC: %s\n", card);       // #### Debug ####
+       FILE *fp;
+       char temp[STRING_SIZE], mac[20];
+
+       sprintf(temp,"/sys/class/net/%s/address",card);
+       if( (fp = fopen(temp, "r")) == NULL ) {
+               fprintf(flog,"Couldn't open: %s\n",temp);
+               return NULL;
+       }
+       fgets(mac, 18, fp);
+       strtok(mac,"\n");
+       fclose(fp);
+       strcpy(g_temp, mac);
+       return g_temp;
+}
+
+char* find_nic4mac(char *findmac) {
+       fprintf(flog,"Enter find_name4nic... Search for %s\n", findmac);        // #### Debug ####
+       #define SYSDIR "/sys/class/net"
+
+       DIR *dir;
+       struct dirent *dirzeiger;
+       char temp[STRING_SIZE], temp2[STRING_SIZE];
+        
+       if((dir=opendir(SYSDIR)) == NULL) {
+               fprintf(flog,"Fehler bei opendir (find_name4nic) ...\n");
+               return NULL;
+       }
+
+       sprintf(temp, "");
+       while((dirzeiger=readdir(dir)) != NULL) {
+               if(*((*dirzeiger).d_name) != '.' & strcmp(((*dirzeiger).d_name), "lo") != 0) {
+                       sprintf(temp2, "%s", readmac((*dirzeiger).d_name) );
+                       if (strcmp(findmac, temp2) == 0) {
+                               sprintf(temp,"%s", (*dirzeiger).d_name);
+                               fprintf(flog,"MAC: %s is NIC: %s\n", findmac, temp);    // #### Debug ####
+                               break;
+                       }
+               }
+       }
+
+       if(closedir(dir) == -1) fprintf(flog,"Fehler beim schliessen von %s\n", SYSDIR);
+       strcpy(g_temp, temp);
+       return g_temp;
+}
+
 int scan_network_cards(void)
 {
        FILE *fp;
@@ -495,7 +543,10 @@ int scan_network_cards(void)
                        if ( strncmp(temp_line, _driver,         strlen(_driver))         ==  0 ) sprintf(nics[count].driver,      "%s", temp_line+strlen(_driver));
                        if ( strncmp(temp_line, _desc,           strlen(_desc))           ==  0 ) sprintf(nics[count].description, "%s", temp_line+strlen(_desc));
                        if ( strncmp(temp_line, _network_hwaddr, strlen(_network_hwaddr)) ==  0 ) sprintf(nics[count].macaddr,     "%s", temp_line+strlen(_network_hwaddr));
-                       if (strlen(nics[count].macaddr) > 15 ) count++;
+                       if (strlen(nics[count].macaddr) > 15 ) {
+                               sprintf(nics[count].nic, "%s", find_nic4mac(nics[count].macaddr));
+                               count++;
+                       }
                }
                fclose(fp);
                scanned_nics_read_done = count;
index 3bd5bf5b1245dc8a16802348143328c9bd1fea2e..3e272716dc1af998eee6ef89a46a83746879e65e 100644 (file)
@@ -21,7 +21,7 @@ char **ctr = NULL;
 
 int automode = 0;
 
-struct  nic  nics[20] = { { "" , "" , "" } };
+struct  nic  nics[20] = { { "" , "" , "" , "" } };
 struct knic knics[20] = { { "" , "" , "" , "" } };
 
 extern char *en_tr[];