mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 18:48:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			817 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			817 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package dbplugin
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 
 | |
| 	"github.com/hashicorp/go-plugin"
 | |
| 	"github.com/hashicorp/vault/sdk/helper/pluginutil"
 | |
| )
 | |
| 
 | |
| // Serve is called from within a plugin and wraps the provided
 | |
| // Database implementation in a databasePluginRPCServer object and starts a
 | |
| // RPC server.
 | |
| func Serve(db Database) {
 | |
| 	plugin.Serve(ServeConfig(db))
 | |
| }
 | |
| 
 | |
| func ServeConfig(db Database) *plugin.ServeConfig {
 | |
| 	err := pluginutil.OptionallyEnableMlock()
 | |
| 	if err != nil {
 | |
| 		fmt.Println(err)
 | |
| 		return nil
 | |
| 	}
 | |
| 
 | |
| 	// pluginSets is the map of plugins we can dispense.
 | |
| 	pluginSets := map[int]plugin.PluginSet{
 | |
| 		5: {
 | |
| 			"database": &GRPCDatabasePlugin{
 | |
| 				Impl: db,
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	conf := &plugin.ServeConfig{
 | |
| 		HandshakeConfig:  handshakeConfig,
 | |
| 		VersionedPlugins: pluginSets,
 | |
| 		GRPCServer:       plugin.DefaultGRPCServer,
 | |
| 	}
 | |
| 
 | |
| 	return conf
 | |
| }
 | 
