Sfoglia il codice sorgente

load plugin only in linux

Darien Raymond 8 anni fa
parent
commit
9db6c187c6
3 ha cambiato i file con 54 aggiunte e 44 eliminazioni
  1. 0 44
      plugin.go
  2. 47 0
      plugin_linux.go
  3. 7 0
      plugin_other.go

+ 0 - 44
plugin.go

@@ -1,15 +1,5 @@
 package core
 
-import (
-	"os"
-	"path/filepath"
-	"plugin"
-	"strings"
-
-	"v2ray.com/core/app/log"
-	"v2ray.com/core/common/platform"
-)
-
 type PluginMetadata struct {
 	Name string
 }
@@ -17,37 +7,3 @@ type PluginMetadata struct {
 const GetMetadataFuncName = "GetPluginMetadata"
 
 type GetMetadataFunc func() PluginMetadata
-
-func LoadPlugins() error {
-	pluginPath := platform.GetPluginDirectory()
-
-	dir, err := os.Open(pluginPath)
-	if err != nil {
-		return err
-	}
-	defer dir.Close()
-
-	files, err := dir.Readdir(-1)
-	if err != nil {
-		return err
-	}
-
-	for _, file := range files {
-		if !file.IsDir() && strings.HasSuffix(file.Name(), ".so") {
-			p, err := plugin.Open(filepath.Join(pluginPath, file.Name()))
-			if err != nil {
-				return err
-			}
-			f, err := p.Lookup(GetMetadataFuncName)
-			if err != nil {
-				return err
-			}
-			if gmf, ok := f.(GetMetadataFunc); ok {
-				metadata := gmf()
-				log.Trace(newError("plugin (", metadata.Name, ") loaded."))
-			}
-		}
-	}
-
-	return nil
-}

+ 47 - 0
plugin_linux.go

@@ -0,0 +1,47 @@
+// +build linux
+
+package core
+
+import (
+	"os"
+	"path/filepath"
+	"plugin"
+	"strings"
+
+	"v2ray.com/core/app/log"
+	"v2ray.com/core/common/platform"
+)
+
+func LoadPlugins() error {
+	pluginPath := platform.GetPluginDirectory()
+
+	dir, err := os.Open(pluginPath)
+	if err != nil {
+		return err
+	}
+	defer dir.Close()
+
+	files, err := dir.Readdir(-1)
+	if err != nil {
+		return err
+	}
+
+	for _, file := range files {
+		if !file.IsDir() && strings.HasSuffix(file.Name(), ".so") {
+			p, err := plugin.Open(filepath.Join(pluginPath, file.Name()))
+			if err != nil {
+				return err
+			}
+			f, err := p.Lookup(GetMetadataFuncName)
+			if err != nil {
+				return err
+			}
+			if gmf, ok := f.(GetMetadataFunc); ok {
+				metadata := gmf()
+				log.Trace(newError("plugin (", metadata.Name, ") loaded."))
+			}
+		}
+	}
+
+	return nil
+}

+ 7 - 0
plugin_other.go

@@ -0,0 +1,7 @@
+// +build !linux
+
+package core
+
+func LoadPlugins() error {
+	return nil
+}