app/testpmd: fix error message when setting Tx VLAN
[dpdk.git] / lib / librte_eal / common / eal_common_options.c
index bed7385..29942ea 100644 (file)
@@ -191,12 +191,14 @@ eal_plugindir_init(const char *path)
        }
 
        while ((dent = readdir(d)) != NULL) {
-               if (dent->d_type != DT_REG && dent->d_type != DT_LNK)
-                       continue;
+               struct stat sb;
 
                snprintf(sopath, PATH_MAX-1, "%s/%s", path, dent->d_name);
                sopath[PATH_MAX-1] = 0;
 
+               if (!(stat(sopath, &sb) == 0 && S_ISREG(sb.st_mode)))
+                       continue;
+
                if (eal_plugin_add(sopath) == -1)
                        break;
        }
@@ -216,22 +218,15 @@ eal_plugins_init(void)
 
        TAILQ_FOREACH(solib, &solib_list, next) {
                struct stat sb;
-               if (stat(solib->name, &sb) == -1) {
-                       RTE_LOG(ERR, EAL, "Invalid plugin specified: %s: %s\n",
-                               solib->name, strerror(errno));
-                       return -1;
-               }
 
-               switch (sb.st_mode & S_IFMT) {
-               case S_IFDIR:
+               if (stat(solib->name, &sb) == 0 && S_ISDIR(sb.st_mode)) {
                        if (eal_plugindir_init(solib->name) == -1) {
                                RTE_LOG(ERR, EAL,
                                        "Cannot init plugin directory %s\n",
                                        solib->name);
                                return -1;
                        }
-                       break;
-               case S_IFREG:
+               } else {
                        RTE_LOG(DEBUG, EAL, "open shared lib %s\n",
                                solib->name);
                        solib->lib_handle = dlopen(solib->name, RTLD_NOW);
@@ -239,7 +234,6 @@ eal_plugins_init(void)
                                RTE_LOG(ERR, EAL, "%s\n", dlerror());
                                return -1;
                        }
-                       break;
                }
 
        }