projects
/
svn42.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added command dispatcher
[svn42.git]
/
door_daemon_go
/
unix_socket_server.go
diff --git
a/door_daemon_go/unix_socket_server.go
b/door_daemon_go/unix_socket_server.go
index
eb34e0c
..
ee5429f
100644
(file)
--- a/
door_daemon_go/unix_socket_server.go
+++ b/
door_daemon_go/unix_socket_server.go
@@
-4,6
+4,11
@@
import "net"
import "bufio"
import "strings"
import "bufio"
import "strings"
+var cmdHandler = map[string]func([]string,string) {
+ "test":handleCmdTest,
+}
+
+
func readLineSafe(rw *bufio.ReadWriter) (string, error) {
wasPrefix:=false
var line string
func readLineSafe(rw *bufio.ReadWriter) (string, error) {
wasPrefix:=false
var line string
@@
-41,7
+46,11
@@
func handleConnection(c net.Conn) () {
for {
line,err:=readLineSafe(client)
if err != nil {
for {
line,err:=readLineSafe(client)
if err != nil {
- fmt.Println(err.Error())
+ if err.Error() != "EOF" {
+ fmt.Printf("Error: readLineSafe returned %v\n",err.Error())
+ } else {
+ fmt.Printf("Connection closed by remote host\n");
+ }
c.Close()
return
}
c.Close()
return
}
@@
-57,8
+66,19
@@
func handleConnection(c net.Conn) () {
func handleCmd(tokens []string, remainStr string) {
cmd:=tokens[0]
func handleCmd(tokens []string, remainStr string) {
cmd:=tokens[0]
- fmt.Printf("Handling Cmd: %v\n", cmd)
+ func_ptr,present := cmdHandler[cmd]
+ if present {
+ func_ptr(tokens, remainStr)
+ } else {
+ fmt.Printf("Error: unknown Cmd: %v\n", cmd)
+ }
}
}
+
+func handleCmdTest(tokens []string, remainStr string) {
+ //cmd:=tokens[0]
+ fmt.Printf("Test: %v\n", remainStr)
+}
+
func main() {
ln, err := net.Listen("unix", "/tmp/test.sock")
if err != nil {
func main() {
ln, err := net.Listen("unix", "/tmp/test.sock")
if err != nil {