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  }