diff --git a/src/admin/admin.go b/src/admin/admin.go index 7d5c66d..d41a48e 100644 --- a/src/admin/admin.go +++ b/src/admin/admin.go @@ -83,6 +83,7 @@ func (a *AdminSocket) Init(c *core.Core, nc *config.NodeConfig, log *log.Logger, } return res, nil }) + a.core.SetAdmin(a) return nil } @@ -142,6 +143,10 @@ func (a *AdminSocket) SetupAdminHandlers(na *AdminSocket) { } return res, nil }) + //_ = a.AddHandler("getNodeInfo", []string{"key"}, t.proto.nodeinfo.nodeInfoAdminHandler) + //_ = a.AddHandler("debug_remoteGetSelf", []string{"key"}, t.proto.getSelfHandler) + //_ = a.AddHandler("debug_remoteGetPeers", []string{"key"}, t.proto.getPeersHandler) + //_ = a.AddHandler("debug_remoteGetDHT", []string{"key"}, t.proto.getDHTHandler) } // Start runs the admin API socket to listen for / respond to admin API calls. diff --git a/src/core/api.go b/src/core/api.go index 536b1a8..d1b931c 100644 --- a/src/core/api.go +++ b/src/core/api.go @@ -3,6 +3,7 @@ package core import ( "crypto/ed25519" //"encoding/hex" + "encoding/json" //"errors" //"fmt" "net" @@ -259,3 +260,27 @@ func (c *Core) Close() error { c.Stop() return nil } + +// Hack to get the admin stuff working, TODO something cleaner + +type AddHandler interface { + AddHandler(name string, args []string, handlerfunc func(json.RawMessage) (interface{}, error)) error +} + +// SetAdmin must be called after Init and before Start. +// It sets the admin handler for NodeInfo and the Debug admin functions. +func (c *Core) SetAdmin(a AddHandler) error { + if err := a.AddHandler("getNodeInfo", []string{"key"}, c.proto.nodeinfo.nodeInfoAdminHandler); err != nil { + return err + } + if err := a.AddHandler("debug_remoteGetSelf", []string{"key"}, c.proto.getSelfHandler); err != nil { + return err + } + if err := a.AddHandler("debug_remoteGetPeers", []string{"key"}, c.proto.getPeersHandler); err != nil { + return err + } + if err := a.AddHandler("debug_remoteGetDHT", []string{"key"}, c.proto.getDHTHandler); err != nil { + return err + } + return nil +} diff --git a/src/tuntap/admin.go b/src/tuntap/admin.go index 80b2df0..862a3c6 100644 --- a/src/tuntap/admin.go +++ b/src/tuntap/admin.go @@ -34,8 +34,4 @@ func (t *TunAdapter) SetupAdminHandlers(a *admin.AdminSocket) { } return res, nil }) - //_ = a.AddHandler("getNodeInfo", []string{"key"}, t.proto.nodeinfo.nodeInfoAdminHandler) - //_ = a.AddHandler("debug_remoteGetSelf", []string{"key"}, t.proto.getSelfHandler) - //_ = a.AddHandler("debug_remoteGetPeers", []string{"key"}, t.proto.getPeersHandler) - //_ = a.AddHandler("debug_remoteGetDHT", []string{"key"}, t.proto.getDHTHandler) }