Generalize RPC client code, add basic RPC functionality to client
This commit is contained in:
@ -1,26 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net"
|
||||
"net/rpc"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func RPCCall(socket, method string, args interface{}, reply interface{}) error {
|
||||
client, err := rpc.DialHTTP("unix", socket)
|
||||
if err != nil {
|
||||
if err2, ok := err.(*net.OpError); ok {
|
||||
if err2.Err == syscall.ENOENT {
|
||||
log.Fatal("The socket (" + socket + ") was not found")
|
||||
} else if err2.Err == syscall.ECONNREFUSED {
|
||||
log.Fatal("A connection was refused to " + socket + ". Please check the permissions and ensure the server is running.")
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
err = client.Call(method, args, reply)
|
||||
return err
|
||||
}
|
@ -74,7 +74,7 @@ func StopServer(args []string) {
|
||||
|
||||
i := 99
|
||||
returnCode := 0
|
||||
err := RPCCall(rpcSock, "ServerStopper.StopServer", &returnCode, &i)
|
||||
err := asink.RPCCall(rpcSock, "ServerStopper.StopServer", &returnCode, &i)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"asink"
|
||||
"code.google.com/p/gopass"
|
||||
"flag"
|
||||
"fmt"
|
||||
@ -70,7 +71,7 @@ func UserAdd(args []string) {
|
||||
user.PWHash = HashPassword(passwordOne)
|
||||
|
||||
i := 99
|
||||
err = RPCCall(*rpcSocket, "UserModifier.AddUser", user, &i)
|
||||
err = asink.RPCCall(*rpcSocket, "UserModifier.AddUser", user, &i)
|
||||
if err != nil {
|
||||
if _, ok := err.(rpc.ServerError); ok && err.Error() == DuplicateUsernameErr.Error() {
|
||||
fmt.Println("Error: " + err.Error())
|
||||
@ -94,7 +95,7 @@ func UserDel(args []string) {
|
||||
user.Username = args[0]
|
||||
|
||||
i := 99
|
||||
err := RPCCall(*rpcSocket, "UserModifier.RemoveUser", user, &i)
|
||||
err := asink.RPCCall(*rpcSocket, "UserModifier.RemoveUser", user, &i)
|
||||
if err != nil {
|
||||
if _, ok := err.(rpc.ServerError); ok && err.Error() == NoUserErr.Error() {
|
||||
fmt.Println("Error: " + err.Error())
|
||||
@ -162,7 +163,7 @@ func UserMod(args []string) {
|
||||
}
|
||||
|
||||
i := 99
|
||||
err := RPCCall(*rpcSocket, "UserModifier.ModifyUser", rpcargs, &i)
|
||||
err := asink.RPCCall(*rpcSocket, "UserModifier.ModifyUser", rpcargs, &i)
|
||||
if err != nil {
|
||||
if _, ok := err.(rpc.ServerError); ok && err.Error() == NoUserErr.Error() {
|
||||
fmt.Println("Error: " + err.Error())
|
||||
|
Reference in New Issue
Block a user