diff --git a/cmd/hwtd/main.go b/cmd/hwtd/main.go index aac9e4a..45ac0e5 100644 --- a/cmd/hwtd/main.go +++ b/cmd/hwtd/main.go @@ -3,13 +3,18 @@ package main import ( "log" "net/http" + "os" "mcquay.me/hwt" pb "mcquay.me/hwt/rpc/hwt" ) func main() { - s := &hwt.Server{} + hn, err := os.Hostname() + if err != nil { + log.Fatalf("cannot get hostname: %v", err) + } + s := &hwt.Server{hn} th := pb.NewHelloWorldServer(s, nil) if err := http.ListenAndServe(":8080", th); err != nil { log.Fatalf("listen and serve: %v", err) diff --git a/hwt.go b/hwt.go index 95bba28..01058cf 100644 --- a/hwt.go +++ b/hwt.go @@ -8,11 +8,18 @@ import ( pb "mcquay.me/hwt/rpc/hwt" ) -type Server struct{} +type Server struct { + Hostname string +} func (s *Server) Hello(ctx context.Context, req *pb.HelloReq) (*pb.HelloResp, error) { if req.Subject == "" { return nil, twirp.RequiredArgumentError("subject") } - return &pb.HelloResp{Text: fmt.Sprintf("echo: %v", req.Subject)}, nil + + r := &pb.HelloResp{ + Text: fmt.Sprintf("echo: %v", req.Subject), + Hostname: s.Hostname, + } + return r, nil } diff --git a/rpc/hwt/service.proto b/rpc/hwt/service.proto index d7cda80..c3eba20 100644 --- a/rpc/hwt/service.proto +++ b/rpc/hwt/service.proto @@ -14,4 +14,5 @@ message HelloReq { message HelloResp { string text = 1; // required + string hostname = 2; }