summaryrefslogtreecommitdiff
path: root/pkg/server/server.go
diff options
context:
space:
mode:
authorMikhail Osipov <mikhail.osipov@kaspersky.com>2020-01-22 19:07:42 +0300
committerMikhail Osipov <mikhail.osipov@kaspersky.com>2020-01-22 19:07:42 +0300
commitbd9866835bc61d7eb5e98fbd6f85252298974506 (patch)
tree7f7b5e4b9aef94a060af67795e9a3ba6b7ae7e7c /pkg/server/server.go
parentac7616442fc6767ba282db867901d50dbe8d50be (diff)
separate cmds interface
Diffstat (limited to 'pkg/server/server.go')
-rw-r--r--pkg/server/server.go59
1 files changed, 1 insertions, 58 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go
index d8a014d..8b803e7 100644
--- a/pkg/server/server.go
+++ b/pkg/server/server.go
@@ -12,18 +12,6 @@ import (
"io"
)
-type cmd struct {
- name string
- f func (r *request)
-}
-
-type node struct {
- c *cmd
- m map[string]*node
-}
-
-var cmds = newNode()
-
type Server struct {
listen net.Listener
since time.Time
@@ -124,51 +112,6 @@ func (r *request) expect(c ...int) {
}
}
-func newNode() *node {
- return &node{m: map[string]*node{}}
-}
-
-func setHandler(f func (r *request), path ...string) {
- node := cmds
-
- for _, name := range path {
- v := node.m[name]
- if v == nil {
- v = newNode()
- node.m[name] = v
- }
-
- node = v
- }
-
- if node.c != nil {
- s := strings.Join(path, " ")
- log.Panicf("handler already registered at '%s'", s)
- }
-
- node.c = &cmd{
- name: strings.Join(path, " "),
- f: f,
- }
-}
-
-func getHandler(path []string) (*cmd, []string) {
- node := cmds
-
- for n, name := range path {
- node = node.m[name]
- if node == nil {
- return nil, nil
- }
-
- if node.c != nil {
- return node.c, path[n + 1:]
- }
- }
-
- return nil, nil
-}
-
func (s *Server) isDone() bool {
select {
case <- s.done:
@@ -283,7 +226,7 @@ func (c *client) handle() {
}
func (r *request) parse(query string) bool {
- c, args := getHandler(strings.Split(query, " "))
+ c, args := getCmd(strings.Split(query, " "))
if c == nil {
r.Print("unknown command")