Clean up error messages for open failures.
authorbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 24 Apr 2014 18:43:31 +0000 (18:43 +0000)
committerbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 24 Apr 2014 18:43:31 +0000 (18:43 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1553 01035d8c-6547-0410-b346-abe4f91aad63

freedv-server/source/driver_manager.cpp
freedv-server/source/platform/linux/evdev.cpp

index 09221d268ae0d2c1a501f126ebf7c4f403673eb7..a66865828b2a6a3b71ba580a5e4e958d094dd177 100644 (file)
@@ -61,7 +61,7 @@ namespace FreeDV {
            return (*(list->creator))(parameters);
         }
         catch(std::exception & e) {
-          std::cerr << "Open " << type << " \"" << key << "\": " << e.what() << std::endl;
+          std::cerr << "Open " << type << " \"" << key << ':' << parameters << "\": " << e.what() << std::endl;
           return 0;
         }
       }
index dd663570532ca4f14b08296d33e6e598795bfffe..2710041863ed5369ff50a28cd78a59441be892f3 100644 (file)
@@ -29,15 +29,18 @@ namespace FreeDV {
   do_throw(
    const int error,
    const char * name,
-   const char * special_file,
+   const char * special_file = 0,
    const char * message = 0)
   {
     std::ostringstream str;
 
     str << "EVDEV ";
 
-    str << '\"' << name << "\" device \"" << special_file
-     << "\" set-up error: ";
+    str << "\"evdev:" << name << '\"';
+    if ( special_file ) 
+      str << " device \"" << special_file << '\"';
+
+    str << " set-up error: ";
     if ( message ) {
       str << message;
       if ( error )
@@ -244,8 +247,14 @@ namespace FreeDV {
 
         if ( fd < 0 )
           do_throw(errno, name, special_file, "open");
+
+        return;
       }
     } 
+    throw std::runtime_error(
+     "No device was found that matched the provided name." \
+     " The device may not be attached," \
+     " or root privileges may be required to access it");
   }
   
   EvDev::~EvDev()