- Timestamp:
- May 20, 2006, 5:03:34 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mondo/mondo/common/libmondo-raid.c
r558 r559 1016 1016 FILE *fin; 1017 1017 int res = 0, row, i, index_min; 1018 int lastpos = 0; 1018 1019 size_t len = 0; 1019 char *token, *string = NULL, *pos, type, *strtmp; 1020 char *token; 1021 char *string = NULL; 1022 char *pos; 1023 char type; 1024 char *strtmp; 1020 1025 1021 1026 // open file … … 1054 1059 } 1055 1060 // tokenise string 1056 token = strtok (string, delims);1061 token = mr_strtok (string, delims, &lastpos); 1057 1062 // get RAID device name 1058 1063 asprintf(&strtmp,"%s%s", device_prefix, token); 1059 1064 strcpy(raidlist->el[raidlist->entries].raid_device, strtmp); 1060 1065 paranoid_free(strtmp); 1066 paranoid_free(token); 1061 1067 // skip ':' and status 1062 token = strtok (NULL, delims); 1063 token = strtok (NULL, delims); 1068 token = strtok (string, delims, &lastpos); 1069 paranoid_free(token); 1070 token = strtok (string, delims, &lastpos); 1064 1071 if (!strcmp(token, "inactive")) { 1065 1072 log_msg(1, "RAID device '%s' inactive.\n", 1066 1073 raidlist->el[raidlist->entries].raid_device); 1067 1074 paranoid_free(string); 1075 paranoid_free(token); 1068 1076 return 1; 1069 1077 } 1078 paranoid_free(token); 1079 1070 1080 // get RAID level 1071 token = strtok ( NULL, delims);1081 token = strtok (string, delims, &lastpos); 1072 1082 if (!strcmp(token, "multipath")) { 1073 1083 raidlist->el[raidlist->entries].raid_level = -2; … … 1089 1099 log_msg(1, "Unknown RAID level '%s'.\n", token); 1090 1100 paranoid_free(string); 1101 paranoid_free(token); 1091 1102 return 1; 1092 1103 } 1104 paranoid_free(token); 1105 1093 1106 // get RAID devices (type, index, device) 1094 1107 // Note: parity disk for RAID4 is last normal disk, there is no '(P)' … … 1096 1109 raidlist->el[raidlist->entries].spare_disks.entries = 0; 1097 1110 raidlist->el[raidlist->entries].failed_disks.entries = 0; 1098 while((token = strtok ( NULL, delims))) {1111 while((token = strtok (string, delims, &lastpos))) { 1099 1112 if ((pos = strstr(token, "("))) { 1100 1113 type = *(pos+1); … … 1130 1143 log_msg(1, "Unknown device type '%c'\n", type); 1131 1144 paranoid_free(string); 1145 paranoid_free(token); 1132 1146 return 1; 1133 1147 break; 1134 1148 } 1135 } 1149 paranoid_free(token); 1150 } 1151 1136 1152 // adjust index for each device so that it starts with 0 for every type 1137 1153 index_min = 99;
Note:
See TracChangeset
for help on using the changeset viewer.