github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/srpc-test/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "net" 7 "net/http" 8 "os" 9 10 "github.com/Cloud-Foundations/Dominator/lib/flags/loadflags" 11 "github.com/Cloud-Foundations/Dominator/lib/log" 12 "github.com/Cloud-Foundations/Dominator/lib/log/serverlogger" 13 "github.com/Cloud-Foundations/Dominator/lib/srpc" 14 "github.com/Cloud-Foundations/Dominator/lib/srpc/setupserver" 15 "github.com/Cloud-Foundations/Dominator/proto/test" 16 "github.com/Cloud-Foundations/tricorder/go/tricorder" 17 ) 18 19 var ( 20 permitInsecureMode = flag.Bool("permitInsecureMode", false, 21 "If true, run in insecure mode. This gives remote access to all") 22 portNum = flag.Uint("portNum", 12345, 23 "Port number to allocate and listen on for HTTP/RPC") 24 ) 25 26 type serverType struct{} 27 28 func doMain(logger log.DebugLogger) error { 29 params := setupserver.Params{Logger: logger} 30 if err := setupserver.SetupTlsWithParams(params); err != nil { 31 if *permitInsecureMode { 32 logger.Println(err) 33 } else { 34 return err 35 } 36 } 37 listener, err := net.Listen("tcp", fmt.Sprintf(":%d", *portNum)) 38 if err != nil { 39 return err 40 } 41 srpc.RegisterName("Test", &serverType{}) 42 return http.Serve(listener, nil) 43 } 44 45 func main() { 46 if err := loadflags.LoadForDaemon("srpc-test"); err != nil { 47 fmt.Fprintln(os.Stderr, err) 48 os.Exit(1) 49 } 50 flag.Parse() 51 tricorder.RegisterFlags() 52 logger := serverlogger.New("") 53 srpc.SetDefaultLogger(logger) 54 if err := doMain(logger); err != nil { 55 logger.Fatalln(err) 56 } 57 } 58 59 func (t *serverType) RequestReply(conn *srpc.Conn, request test.EchoRequest, 60 response *test.EchoResponse) error { 61 *response = test.EchoResponse{Response: request.Request} 62 return nil 63 }