|
@@ -10435,8 +10435,8 @@ void *probe_device_thread(void *p)
|
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
|
{
|
|
{
|
|
|
const char * const dname = sd_iter->string;
|
|
const char * const dname = sd_iter->string;
|
|
|
- const char * const colon = strchr(dname, ':');
|
|
|
|
|
- if (!colon)
|
|
|
|
|
|
|
+ const char * const colon = strpbrk(dname, ":@");
|
|
|
|
|
+ if (!(colon && colon != dname))
|
|
|
continue;
|
|
continue;
|
|
|
const char * const ser = &colon[1];
|
|
const char * const ser = &colon[1];
|
|
|
LL_FOREACH2(infolist, info, same_devid_next)
|
|
LL_FOREACH2(infolist, info, same_devid_next)
|
|
@@ -10460,6 +10460,7 @@ void *probe_device_thread(void *p)
|
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
|
{
|
|
{
|
|
|
const char * const dname = sd_iter->string;
|
|
const char * const dname = sd_iter->string;
|
|
|
|
|
+ // NOTE: Only checking flags here, NOT path/serial, so @ is unacceptable
|
|
|
const char *colon = strchr(dname, ':');
|
|
const char *colon = strchr(dname, ':');
|
|
|
if (!colon)
|
|
if (!colon)
|
|
|
colon = &dname[-1];
|
|
colon = &dname[-1];
|
|
@@ -10489,6 +10490,7 @@ void *probe_device_thread(void *p)
|
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
DL_FOREACH_SAFE(scan_devices, sd_iter, sd_tmp)
|
|
|
{
|
|
{
|
|
|
const char * const dname = sd_iter->string;
|
|
const char * const dname = sd_iter->string;
|
|
|
|
|
+ // NOTE: Only checking flags here, NOT path/serial, so @ is unacceptable
|
|
|
const char * const colon = strchr(dname, ':');
|
|
const char * const colon = strchr(dname, ':');
|
|
|
if (!colon)
|
|
if (!colon)
|
|
|
{
|
|
{
|
|
@@ -10498,7 +10500,7 @@ void *probe_device_thread(void *p)
|
|
|
#ifdef NEED_BFG_LOWL_VCOM
|
|
#ifdef NEED_BFG_LOWL_VCOM
|
|
|
(info->lowl == &lowl_vcom && !strcasecmp(dname, "all")) ||
|
|
(info->lowl == &lowl_vcom && !strcasecmp(dname, "all")) ||
|
|
|
#endif
|
|
#endif
|
|
|
- _probe_device_match(info, dname))
|
|
|
|
|
|
|
+ _probe_device_match(info, (dname[0] == '@') ? &dname[1] : dname))
|
|
|
{
|
|
{
|
|
|
BFG_FOREACH_DRIVER_BY_PRIORITY(dreg, dreg_tmp)
|
|
BFG_FOREACH_DRIVER_BY_PRIORITY(dreg, dreg_tmp)
|
|
|
{
|
|
{
|