diff --git a/src/device/ilister.cpp b/src/device/ilister.cpp index 487469f8c..295bb1d51 100644 --- a/src/device/ilister.cpp +++ b/src/device/ilister.cpp @@ -65,6 +65,8 @@ void iLister::EventCallback(const idevice_event_t *event, void *context) { void iLister::DeviceAddedCallback(const char *uuid) { DeviceInfo info = ReadDeviceInfo(uuid); + if (!info.valid) return; + QString id = UniqueId(uuid); QString name = MakeFriendlyName(id); @@ -196,6 +198,8 @@ iLister::DeviceInfo iLister::ReadDeviceInfo(const char *uuid) { DeviceInfo ret; iMobileDeviceConnection conn(uuid); + if (!conn.is_valid()) return ret; + ret.valid = conn.is_valid(); ret.uuid = uuid; ret.product_type = conn.GetProperty("ProductType").toString(); ret.free_bytes = conn.GetProperty("AmountDataAvailable", "com.apple.disk_usage").toULongLong(); diff --git a/src/device/ilister.h b/src/device/ilister.h index cc9d1472e..a85fcaa7f 100644 --- a/src/device/ilister.h +++ b/src/device/ilister.h @@ -59,7 +59,9 @@ class iLister : public DeviceLister { private: struct DeviceInfo { - DeviceInfo() : free_bytes(0), total_bytes(0) {} + DeviceInfo() : valid(false), free_bytes(0), total_bytes(0) {} + + bool valid; QString uuid; QString product_type; diff --git a/src/device/imobiledeviceconnection.h b/src/device/imobiledeviceconnection.h index 117c4329f..231d5c220 100644 --- a/src/device/imobiledeviceconnection.h +++ b/src/device/imobiledeviceconnection.h @@ -52,6 +52,8 @@ public: QString GetUnusedFilename(Itdb_iTunesDB *itdb, const Song &metadata); + bool is_valid() { return device_ && afc_; } + private: Q_DISABLE_COPY(iMobileDeviceConnection);