Improve error handling during MTP startup
Change-Id: I9395481dd8d9cbd3346fe6682557236b48b4d6cd
diff --git a/mtp/mtp_MtpServer.cpp b/mtp/mtp_MtpServer.cpp
index 8565d54..af80f68 100755
--- a/mtp/mtp_MtpServer.cpp
+++ b/mtp/mtp_MtpServer.cpp
@@ -35,16 +35,17 @@
void twmtp_MtpServer::start()
{
- setup();
- add_storage();
- server->run();
+ if (setup() == 0) {
+ add_storage();
+ server->run();
+ }
}
void twmtp_MtpServer::set_storages(storages* mtpstorages) {
stores = mtpstorages;
}
-void twmtp_MtpServer::setup()
+int twmtp_MtpServer::setup()
{
#define USB_MTP_DEVICE "/dev/mtp_usb"
usePtp = false;
@@ -60,8 +61,10 @@
refserver = server;
MTPI("created new mtpserver object\n");
} else {
- MTPE("could not open MTP driver, errno: %d", errno);
+ MTPE("could not open MTP driver, errno: %d\n", errno);
+ return -1;
}
+ return 0;
}
void twmtp_MtpServer::run()
diff --git a/mtp/mtp_MtpServer.hpp b/mtp/mtp_MtpServer.hpp
index 360d1c3..ce6b13c 100755
--- a/mtp/mtp_MtpServer.hpp
+++ b/mtp/mtp_MtpServer.hpp
@@ -43,7 +43,7 @@
class twmtp_MtpServer {
public:
void start();
- void setup();
+ int setup();
void run();
void cleanup();
void send_object_added(int handle);