MO and ZIP: Fix return length of READ 6/10/12 and actually save the image history into the configuration file.
This commit is contained in:
26
src/config.c
26
src/config.c
@@ -3011,6 +3011,19 @@ save_other_removable_devices(void)
|
|||||||
else
|
else
|
||||||
ini_section_set_string(cat, temp, zip_drives[c].image_path);
|
ini_section_set_string(cat, temp, zip_drives[c].image_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_PREV_IMAGES; i++) {
|
||||||
|
sprintf(temp, "zip_%02i_image_history_%02i", c + 1, i + 1);
|
||||||
|
if ((zip_drives[c].image_history[i] == 0) || strlen(zip_drives[c].image_history[i]) == 0)
|
||||||
|
ini_section_delete_var(cat, temp);
|
||||||
|
else {
|
||||||
|
path_normalize(zip_drives[c].image_history[i]);
|
||||||
|
if (!strnicmp(zip_drives[c].image_history[i], usr_path, strlen(usr_path)))
|
||||||
|
ini_section_set_string(cat, temp, &zip_drives[c].image_history[i][strlen(usr_path)]);
|
||||||
|
else
|
||||||
|
ini_section_set_string(cat, temp, zip_drives[c].image_history[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (c = 0; c < MO_NUM; c++) {
|
for (c = 0; c < MO_NUM; c++) {
|
||||||
@@ -3054,6 +3067,19 @@ save_other_removable_devices(void)
|
|||||||
else
|
else
|
||||||
ini_section_set_string(cat, temp, mo_drives[c].image_path);
|
ini_section_set_string(cat, temp, mo_drives[c].image_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_PREV_IMAGES; i++) {
|
||||||
|
sprintf(temp, "mo_%02i_image_history_%02i", c + 1, i + 1);
|
||||||
|
if ((mo_drives[c].image_history[i] == 0) || strlen(mo_drives[c].image_history[i]) == 0)
|
||||||
|
ini_section_delete_var(cat, temp);
|
||||||
|
else {
|
||||||
|
path_normalize(mo_drives[c].image_history[i]);
|
||||||
|
if (!strnicmp(mo_drives[c].image_history[i], usr_path, strlen(usr_path)))
|
||||||
|
ini_section_set_string(cat, temp, &mo_drives[c].image_history[i][strlen(usr_path)]);
|
||||||
|
else
|
||||||
|
ini_section_set_string(cat, temp, mo_drives[c].image_history[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ini_delete_section_if_empty(config, cat);
|
ini_delete_section_if_empty(config, cat);
|
||||||
|
|||||||
@@ -1363,6 +1363,7 @@ mo_command(scsi_common_t *sc, const uint8_t *cdb)
|
|||||||
mo_buf_alloc(dev, dev->packet_len);
|
mo_buf_alloc(dev, dev->packet_len);
|
||||||
|
|
||||||
const int ret = mo_blocks(dev, &alloc_length, 0);
|
const int ret = mo_blocks(dev, &alloc_length, 0);
|
||||||
|
alloc_length = dev->requested_blocks * 512;
|
||||||
|
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
dev->requested_blocks = max_len;
|
dev->requested_blocks = max_len;
|
||||||
|
|||||||
@@ -1386,10 +1386,8 @@ zip_command(scsi_common_t *sc, const uint8_t *cdb)
|
|||||||
dev->packet_len = max_len * alloc_length;
|
dev->packet_len = max_len * alloc_length;
|
||||||
zip_buf_alloc(dev, dev->packet_len);
|
zip_buf_alloc(dev, dev->packet_len);
|
||||||
|
|
||||||
int ret = 0;
|
const int ret = zip_blocks(dev, &alloc_length, 0);
|
||||||
|
alloc_length = dev->requested_blocks * 512;
|
||||||
if (dev->sector_len > 0)
|
|
||||||
ret = zip_blocks(dev, &alloc_length, 0);
|
|
||||||
|
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
dev->requested_blocks = max_len;
|
dev->requested_blocks = max_len;
|
||||||
|
|||||||
Reference in New Issue
Block a user