Improve the fingerprint matching
Check the fingerprint before downloading the dive. If a match is found, this avoids some unnecessary communication and thus makes the download a little bit faster.
This commit is contained in:
parent
01ccb7ce4b
commit
755b52febc
@ -717,15 +717,23 @@ suunto_eonsteel_device_foreach(dc_device_t *abstract, dc_dive_callback_t callbac
|
|||||||
case DIRTYPE_FILE:
|
case DIRTYPE_FILE:
|
||||||
if (skip)
|
if (skip)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (sscanf(de->name, "%x.LOG", &time) != 1)
|
if (sscanf(de->name, "%x.LOG", &time) != 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
put_le32(time, buf);
|
||||||
|
|
||||||
|
if (memcmp (buf, eon->fingerprint, sizeof (eon->fingerprint)) == 0) {
|
||||||
|
skip = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
len = snprintf(pathname, sizeof(pathname), "%s/%s", dive_directory, de->name);
|
len = snprintf(pathname, sizeof(pathname), "%s/%s", dive_directory, de->name);
|
||||||
if (len >= sizeof(pathname))
|
if (len >= sizeof(pathname))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Reset the membuffer, put the 4-byte length at the head.
|
// Reset the membuffer, put the 4-byte length at the head.
|
||||||
dc_buffer_clear(file);
|
dc_buffer_clear(file);
|
||||||
put_le32(time, buf);
|
|
||||||
dc_buffer_append(file, buf, 4);
|
dc_buffer_append(file, buf, 4);
|
||||||
|
|
||||||
// Then read the filename into the rest of the buffer
|
// Then read the filename into the rest of the buffer
|
||||||
@ -736,11 +744,6 @@ suunto_eonsteel_device_foreach(dc_device_t *abstract, dc_dive_callback_t callbac
|
|||||||
data = dc_buffer_get_data(file);
|
data = dc_buffer_get_data(file);
|
||||||
size = dc_buffer_get_size(file);
|
size = dc_buffer_get_size(file);
|
||||||
|
|
||||||
if (memcmp (data, eon->fingerprint, sizeof (eon->fingerprint)) == 0) {
|
|
||||||
skip = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (callback && !callback(data, size, data, sizeof(eon->fingerprint), userdata))
|
if (callback && !callback(data, size, data, sizeof(eon->fingerprint), userdata))
|
||||||
skip = 1;
|
skip = 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user