aboutsummaryrefslogtreecommitdiff
path: root/rpc.go
blob: 62a6a3fd5eb269c70aab9f1ff1af7db67b7cbe97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main

import (
	"log"
	"net/rpc"
)

// GoXY defines RPC interface
type GoXY struct{}

func init() {
	rpc.Register(GoXY{})
	rpc.HandleHTTP()
}

// Add adds a new route
func (GoXY) Add(e Entry, _ *struct{}) error {
	log.Println("Add route", e)
	defer route.Save(*data)
	route[e.ServerName] = e
	return route.Restore()
}

// Del removes a route
func (GoXY) Del(e Entry, _ *struct{}) error {
	log.Println("Del route", e)
	defer route.Save(*data)
	delete(route, e.ServerName)
	return route.Restore()
}

// List routes
func (GoXY) List(_ struct{}, r *[]Entry) error {
	for _, v := range route {
		*r = append(*r, v)
	}
	return nil
}