forked from External/grumble
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
// Copyright (c) 2011 The Grumble Authors
|
|
// The use of this source code is goverened by a BSD-style
|
|
// license that can be found in the LICENSE-file.
|
|
|
|
package main
|
|
|
|
import "errors"
|
|
|
|
type ControlRPC struct {
|
|
|
|
}
|
|
|
|
type KeyValuePair struct {
|
|
Id int64
|
|
Key string
|
|
Value string
|
|
}
|
|
|
|
// Start a server
|
|
func (c *ControlRPC) Start(Id int64, out *int64) error {
|
|
server, exists := servers[Id]
|
|
if !exists {
|
|
return errors.New("no such server")
|
|
}
|
|
_ = server
|
|
return nil
|
|
}
|
|
|
|
// Stop a server
|
|
func (c *ControlRPC) Stop(Id int64, out *int) error {
|
|
server, exists := servers[Id]
|
|
if !exists {
|
|
return errors.New("no such server")
|
|
}
|
|
_ = server
|
|
return nil
|
|
}
|
|
|
|
// Set SuperUser password
|
|
func (c *ControlRPC) SetSuperUserPassword(in *KeyValuePair, out *int64) error {
|
|
server, exists := servers[in.Id]
|
|
if !exists {
|
|
return errors.New("no such server")
|
|
}
|
|
server.SetSuperUserPassword(in.Value)
|
|
*out = in.Id
|
|
return nil
|
|
}
|
|
|
|
// Set a config value
|
|
func (c *ControlRPC) SetConfig(in *KeyValuePair, out *KeyValuePair) error {
|
|
server, exists := servers[in.Id]
|
|
if !exists {
|
|
return errors.New("no such server")
|
|
}
|
|
server.cfg.Set(in.Key, in.Value)
|
|
server.cfgUpdate <- in
|
|
out.Id = in.Id
|
|
out.Key = in.Key
|
|
out.Value = in.Value
|
|
return nil
|
|
}
|
|
|
|
// Get a config value
|
|
func (c *ControlRPC) GetConfig(in *KeyValuePair, out *KeyValuePair) error {
|
|
server, exists := servers[in.Id]
|
|
if !exists {
|
|
return errors.New("no such server")
|
|
}
|
|
out.Id = in.Id
|
|
out.Key = in.Key
|
|
out.Value = server.cfg.StringValue(in.Key)
|
|
return nil
|
|
}
|