Skip to content

Commit 94ca372

Browse files
fix(driver): forget to lookup built-in drivers when do by-name lookup (estkme-group#370)
Co-authored-by: Shua-github <CHA_shua@outlook.com>
1 parent 4e90d73 commit 94ca372

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

driver/driver.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,18 @@ static const struct euicc_driver *find_driver_by_name(const enum euicc_driver_ty
367367
_cleanup_free_ char *driver_name = calloc(driver_name_len, sizeof(char));
368368
snprintf(driver_name, driver_name_len, "driver_%s_%s%s", driver_type, name, dynlib_suffix);
369369

370-
return find_driver_by_path(LPAC_DRIVER_HOME, driver_name);
370+
const struct euicc_driver *driver = find_driver_by_path(LPAC_DRIVER_HOME, driver_name);
371+
// Lookup built-in drivers if not found in dynamic drivers
372+
if (driver == NULL) {
373+
for (size_t i = 0; builtin_drivers[i] != NULL; i++) {
374+
const struct euicc_driver *j = builtin_drivers[i];
375+
if (j->type == type && !strcmp(j->name, name)) {
376+
driver = j;
377+
break;
378+
}
379+
}
380+
}
381+
return driver;
371382
}
372383

373384
// If backend is not specified, find the certain driver in builtin order.

0 commit comments

Comments
 (0)