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);