Browse code

bb#7861 - Improve error message for missing files

Shawn Webb authored on 2013/10/09 02:16:14
Showing 1 changed files
... ...
@@ -2909,7 +2909,36 @@ int cl_load(const char *path, struct cl_engine *engine, unsigned int *signo, uns
2909 2909
     }
2910 2910
 
2911 2911
     if(CLAMSTAT(path, &sb) == -1) {
2912
-        cli_errmsg("cl_load(): Can't get status of %s\n", path);
2912
+        switch (errno) {
2913
+#if defined(EACCES)
2914
+            case EACCES:
2915
+                cli_errmsg("cl_load(): Access denied for path: %s\n", path);
2916
+                break;
2917
+#endif
2918
+#if defined(ENOENT)
2919
+            case ENOENT:
2920
+                cli_errmsg("cl_load(): No such file or directory: %s\n", path);
2921
+                break;
2922
+#endif
2923
+#if defined(ELOOP)
2924
+            case ELOOP:
2925
+                cli_errmsg("cl_load(): Too many symbolic links encountered in path: %s\n", path);
2926
+                break;
2927
+#endif
2928
+#if defined(EOVERFLOW)
2929
+            case EOVERFLOW:
2930
+                cli_errmsg("cl_load(): File size is too large to be recognized. Path: %s\n", path);
2931
+                break;
2932
+#endif
2933
+#if defined(EIO)
2934
+            case EIO:
2935
+                cli_errmsg("cl_load(): An I/O error occurred while reading from path: %s\n", path);
2936
+                break;
2937
+#endif
2938
+            default:
2939
+                cli_errmsg("cl_load: Can't get status of: %s\n", path);
2940
+                break;
2941
+        }
2913 2942
         return CL_ESTAT;
2914 2943
     }
2915 2944