From 249896cdab8eb09937c7deb52184df2000ec85f3 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Mon, 19 Feb 2024 10:20:56 +0900 Subject: [PATCH] Change timeout value to 5sec when get object Change-Id: Ie3fee239ae82b50481c910cb834e3114179c0ed5 Signed-off-by: Jihoon Jung --- packaging/libmtp.spec | 2 +- src/libmtp.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packaging/libmtp.spec b/packaging/libmtp.spec index 7558ea4..a33953a 100644 --- a/packaging/libmtp.spec +++ b/packaging/libmtp.spec @@ -3,7 +3,7 @@ Name: libmtp Summary: Library for media transfer protocol (mtp) Version: 1.1.11 -Release: 15 +Release: 16 Group: Network & Connectivity/Other License: LGPL-2.1 Source0: libmtp-%{version}.tar.gz diff --git a/src/libmtp.c b/src/libmtp.c index 30917c4..4a139d2 100644 --- a/src/libmtp.c +++ b/src/libmtp.c @@ -5247,13 +5247,22 @@ int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t *device, PTP_USB *ptp_usb = (PTP_USB*) device->usbinfo; PTPObject *ob; + int oldtimeout; + + get_usb_device_timeout(ptp_usb, &oldtimeout); + set_usb_device_timeout(ptp_usb, 5000); + + LIBMTP_INFO("priv set timeout value : %d, now, set timeout value to 5 sec", oldtimeout); + ret = ptp_object_want (params, id, PTPOBJECT_OBJECTINFO_LOADED, &ob); if (ret != PTP_RC_OK) { add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Could not get object info."); + set_usb_device_timeout(ptp_usb, oldtimeout); return -1; } if (ob->oi.ObjectFormat == PTP_OFC_Association) { add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Bad object format."); + set_usb_device_timeout(ptp_usb, oldtimeout); return -1; } @@ -5271,6 +5280,8 @@ int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t *device, ptp_usb->current_transfer_callback = NULL; ptp_usb->current_transfer_callback_data = NULL; + set_usb_device_timeout(ptp_usb, oldtimeout); + if (ret == PTP_ERROR_CANCEL) { add_error_to_errorstack(device, LIBMTP_ERROR_CANCELLED, "LIBMTP_Get_File_From_File_Descriptor(): Cancelled transfer."); return -1; -- 2.7.4