github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/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 if err := setupserver.SetupTls(); err != nil { 30 if *permitInsecureMode { 31 logger.Println(err) 32 } else { 33 return err 34 } 35 } 36 listener, err := net.Listen("tcp", fmt.Sprintf(":%d", *portNum)) 37 if err != nil { 38 return err 39 } 40 srpc.RegisterName("Test", &serverType{}) 41 return http.Serve(listener, nil) 42 } 43 44 func main() { 45 if err := loadflags.LoadForDaemon("srpc-test"); err != nil { 46 fmt.Fprintln(os.Stderr, err) 47 os.Exit(1) 48 } 49 flag.Parse() 50 tricorder.RegisterFlags() 51 logger := serverlogger.New("") 52 if err := doMain(logger); err != nil { 53 logger.Fatalln(err) 54 } 55 } 56 57 func (t *serverType) RequestReply(conn *srpc.Conn, request test.EchoRequest, 58 response *test.EchoResponse) error { 59 *response = test.EchoResponse{Response: request.Request} 60 return nil 61 }