diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-04-27 21:43:14 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-04-27 21:43:14 +0000 |
commit | 34e60dde601e509ad2528e3078229bb85de693c9 (patch) | |
tree | 6577175a1546ebf7fbc58f1bef670d520da50f57 /rbutil/rbutilqt/base/bootloaderinstallipod.cpp | |
parent | b6e1f1c0ad3153c2193cb3ba04857d5a5bced296 (diff) | |
download | rockbox-34e60dde601e509ad2528e3078229bb85de693c9.tar.gz rockbox-34e60dde601e509ad2528e3078229bb85de693c9.zip |
Handle device name resolving failures.
Improve tracing of device name resolving. Explicitly fail if resolving the
device name from the mountpoint failed during ipod / sansa bootloader
installation. Fixes bootloader installation trying to use an empty device name
in some cases which can happen if the mountpoint to get resolved uses an
incompatible file system.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25743 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base/bootloaderinstallipod.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/bootloaderinstallipod.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp index 55fd3fcbd8..e784ee9a1f 100644 --- a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp +++ b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp | |||
@@ -226,17 +226,19 @@ BootloaderInstallBase::Capabilities BootloaderInstallIpod::capabilities(void) | |||
226 | bool BootloaderInstallIpod::ipodInitialize(struct ipod_t *ipod) | 226 | bool BootloaderInstallIpod::ipodInitialize(struct ipod_t *ipod) |
227 | { | 227 | { |
228 | if(!m_blfile.isEmpty()) { | 228 | if(!m_blfile.isEmpty()) { |
229 | QString devicename = Autodetection::resolveDevicename(m_blfile); | ||
230 | if(devicename.isEmpty()) { | ||
231 | emit logItem(tr("Error: could not retrieve device name"), LOGERROR); | ||
232 | return false; | ||
233 | } | ||
229 | #if defined(Q_OS_WIN32) | 234 | #if defined(Q_OS_WIN32) |
230 | sprintf(ipod->diskname, "\\\\.\\PhysicalDrive%i", | 235 | sprintf(ipod->diskname, "\\\\.\\PhysicalDrive%i", diskname.toInt()); |
231 | Autodetection::resolveDevicename(m_blfile).toInt()); | ||
232 | #elif defined(Q_OS_MACX) | 236 | #elif defined(Q_OS_MACX) |
233 | sprintf(ipod->diskname, "%s", | 237 | sprintf(ipod->diskname, "%s", |
234 | qPrintable(Autodetection::resolveDevicename(m_blfile) | 238 | qPrintable(devicename.remove(QRegExp("s[0-9]+$")))); |
235 | .remove(QRegExp("s[0-9]+$")))); | ||
236 | #else | 239 | #else |
237 | sprintf(ipod->diskname, "%s", | 240 | sprintf(ipod->diskname, "%s", |
238 | qPrintable(Autodetection::resolveDevicename(m_blfile) | 241 | qPrintable(devicename.remove(QRegExp("[0-9]+$")))); |
239 | .remove(QRegExp("[0-9]+$")))); | ||
240 | #endif | 242 | #endif |
241 | qDebug() << "[BootloaderInstallIpod] ipodpatcher: overriding scan, using" | 243 | qDebug() << "[BootloaderInstallIpod] ipodpatcher: overriding scan, using" |
242 | << ipod->diskname; | 244 | << ipod->diskname; |