x/ref: Add internal packages for rps and tunnel.
examples/rps/common -> examples/rps/internal
examples/tunnel/tunnelutil -> examples/tunnel/internal
Change-Id: Ie1e721cc7b0b89a3cc2dfe3d9df892955b0f0ea4
diff --git a/examples/rps/common/common.go b/examples/rps/internal/common.go
similarity index 95%
rename from examples/rps/common/common.go
rename to examples/rps/internal/common.go
index f71a277..d6a875c 100644
--- a/examples/rps/common/common.go
+++ b/examples/rps/internal/common.go
@@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package common factors out common utility functions that both the
-// rock paper scissors clients and servers invoke.
-package common
+// Package internal defines common functions used by both rock paper scissors
+// clients and servers.
+package internal
import (
"bytes"
@@ -14,12 +14,11 @@
"os"
"time"
- "v.io/x/ref/examples/rps"
-
"v.io/v23"
"v.io/v23/context"
"v.io/v23/naming"
"v.io/x/lib/vlog"
+ "v.io/x/ref/examples/rps"
)
// CreateName creates a name using the username and hostname.
diff --git a/examples/rps/rpsbot/judge.go b/examples/rps/rpsbot/judge.go
index af54726..aa68af5 100644
--- a/examples/rps/rpsbot/judge.go
+++ b/examples/rps/rpsbot/judge.go
@@ -14,7 +14,7 @@
"v.io/v23/context"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/stats"
"v.io/x/ref/lib/stats/counter"
)
@@ -229,7 +229,7 @@
// Send the score card to the score keepers.
scoreCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
defer cancel()
- keepers, err := common.FindScoreKeepers(scoreCtx)
+ keepers, err := internal.FindScoreKeepers(scoreCtx)
if err != nil || len(keepers) == 0 {
vlog.Infof("No score keepers: %v", err)
return
diff --git a/examples/rps/rpsbot/main.go b/examples/rps/rpsbot/main.go
index ab97eb5..8a0fa15 100644
--- a/examples/rps/rpsbot/main.go
+++ b/examples/rps/rpsbot/main.go
@@ -20,7 +20,7 @@
"v.io/v23/context"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/security/securityflag"
"v.io/x/ref/lib/signals"
@@ -51,7 +51,7 @@
vlog.Fatalf("Listen(%v) failed: %v", listenSpec, err)
}
if *name == "" {
- *name = common.CreateName()
+ *name = internal.CreateName()
}
names := []string{
fmt.Sprintf("rps/judge/%s", *name),
diff --git a/examples/rps/rpsbot/player.go b/examples/rps/rpsbot/player.go
index 8d08e10..40a7720 100644
--- a/examples/rps/rpsbot/player.go
+++ b/examples/rps/rpsbot/player.go
@@ -11,7 +11,7 @@
"v.io/v23/context"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/stats"
"v.io/x/ref/lib/stats/counter"
)
@@ -44,7 +44,7 @@
}
func (p *Player) InitiateGame(ctx *context.T) error {
- judge, err := common.FindJudge(ctx)
+ judge, err := internal.FindJudge(ctx)
if err != nil {
vlog.Infof("FindJudge: %v", err)
return err
@@ -57,7 +57,7 @@
vlog.VI(1).Infof("Created gameID %q on %q", gameID, judge)
for {
- opponent, err := common.FindPlayer(ctx)
+ opponent, err := internal.FindPlayer(ctx)
if err != nil {
vlog.Infof("FindPlayer: %v", err)
return err
@@ -139,7 +139,7 @@
vlog.VI(1).Infof("Player 1 played %q. Player 2 played %q. Winner: %v %s",
rr.Moves[0], rr.Moves[1], rr.Winner, rr.Comment)
case rps.JudgeActionScore:
- vlog.VI(1).Infof("Score card: %s", common.FormatScoreCard(v.Value))
+ vlog.VI(1).Infof("Score card: %s", internal.FormatScoreCard(v.Value))
default:
vlog.Infof("unexpected message type: %T", in)
}
diff --git a/examples/rps/rpsbot/scorekeeper.go b/examples/rps/rpsbot/scorekeeper.go
index fe67bce..197ebd7 100644
--- a/examples/rps/rpsbot/scorekeeper.go
+++ b/examples/rps/rpsbot/scorekeeper.go
@@ -9,7 +9,7 @@
"v.io/v23/security"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/stats"
"v.io/x/ref/lib/stats/counter"
)
@@ -31,7 +31,7 @@
func (k *ScoreKeeper) Record(call rpc.ServerCall, score rps.ScoreCard) error {
b, _ := security.RemoteBlessingNames(call.Context())
vlog.VI(1).Infof("Received ScoreCard from %v:", b)
- vlog.VI(1).Info(common.FormatScoreCard(score))
+ vlog.VI(1).Info(internal.FormatScoreCard(score))
k.numRecords.Incr(1)
return nil
}
diff --git a/examples/rps/rpsplayer/main.go b/examples/rps/rpsplayer/main.go
index 2541492..56122fb 100644
--- a/examples/rps/rpsplayer/main.go
+++ b/examples/rps/rpsplayer/main.go
@@ -23,7 +23,7 @@
"v.io/v23/vtrace"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/security/securityflag"
_ "v.io/x/ref/profiles/roaming"
@@ -120,7 +120,7 @@
vlog.Fatalf("Listen(%v) failed: %v", listenSpec, err)
}
if *name == "" {
- *name = common.CreateName()
+ *name = internal.CreateName()
}
if err := server.Serve(fmt.Sprintf("rps/player/%s", *name), rps.PlayerServer(&impl{ch: ch}), securityflag.NewAuthorizerOrDie()); err != nil {
vlog.Fatalf("Serve failed: %v", err)
@@ -239,7 +239,7 @@
score := v.Value
fmt.Println()
fmt.Println("==== GAME SUMMARY ====")
- fmt.Print(common.FormatScoreCard(score))
+ fmt.Print(internal.FormatScoreCard(score))
fmt.Println("======================")
if rps.WinnerTag(playerNum) == score.Winner {
fmt.Println("You won! :)")
diff --git a/examples/rps/rpsscorekeeper/main.go b/examples/rps/rpsscorekeeper/main.go
index 201fbad..329782d 100644
--- a/examples/rps/rpsscorekeeper/main.go
+++ b/examples/rps/rpsscorekeeper/main.go
@@ -17,7 +17,7 @@
"v.io/v23/security"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/rps"
- "v.io/x/ref/examples/rps/common"
+ "v.io/x/ref/examples/rps/internal"
"v.io/x/ref/lib/security/securityflag"
_ "v.io/x/ref/profiles/roaming"
@@ -62,6 +62,6 @@
vlog.Infof("Listening on endpoint /%s", ep)
for score := range ch {
- fmt.Print("======================\n", common.FormatScoreCard(score))
+ fmt.Print("======================\n", internal.FormatScoreCard(score))
}
}
diff --git a/examples/tunnel/tunnelutil/forward.go b/examples/tunnel/internal/forward.go
similarity index 98%
rename from examples/tunnel/tunnelutil/forward.go
rename to examples/tunnel/internal/forward.go
index 6d98883..d87886a 100644
--- a/examples/tunnel/tunnelutil/forward.go
+++ b/examples/tunnel/internal/forward.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package tunnelutil
+package internal
import (
"fmt"
diff --git a/examples/tunnel/tunnelutil/terminal.go b/examples/tunnel/internal/terminal.go
similarity index 78%
rename from examples/tunnel/tunnelutil/terminal.go
rename to examples/tunnel/internal/terminal.go
index de51af0..db08dba 100644
--- a/examples/tunnel/tunnelutil/terminal.go
+++ b/examples/tunnel/internal/terminal.go
@@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package tunnelutil contains a set of common types and functions
-// used by both tunnel service clients and servers.
-package tunnelutil
+// Package internal defines common types and functions used by both tunnel
+// clients and servers.
+package internal
import (
"errors"
@@ -16,7 +16,7 @@
"v.io/x/lib/vlog"
)
-// Used with ioctl TIOCGWINSZ and TIOCSWINSZ.
+// Winsize defines the window size used by ioctl TIOCGWINSZ and TIOCSWINSZ.
type Winsize struct {
Row uint16
Col uint16
@@ -52,6 +52,10 @@
return ws, nil
}
+// EnterRawTerminalMode uses stty to enter the terminal into raw mode; stdin is
+// unbuffered, local echo of input characters is disabled, and special signal
+// characters are disabled. Returns a string which may be passed to
+// RestoreTerminalSettings to restore to the original terminal settings.
func EnterRawTerminalMode() string {
var savedBytes []byte
var err error
@@ -88,6 +92,8 @@
return string(saved)
}
+// RestoreTerminalSettings uses stty to restore the terminal to the original
+// settings, taking the saved settings returned by EnterRawTerminalMode.
func RestoreTerminalSettings(saved string) {
args := []string{
"-F", "/dev/tty",
diff --git a/examples/tunnel/tunneld/impl.go b/examples/tunnel/tunneld/impl.go
index 32f7627..08442c3 100644
--- a/examples/tunnel/tunneld/impl.go
+++ b/examples/tunnel/tunneld/impl.go
@@ -19,7 +19,7 @@
"v.io/v23/security"
"v.io/x/lib/vlog"
"v.io/x/ref/examples/tunnel"
- "v.io/x/ref/examples/tunnel/tunnelutil"
+ "v.io/x/ref/examples/tunnel/internal"
)
// T implements tunnel.TunnelServerMethods
@@ -36,7 +36,7 @@
b, _ := security.RemoteBlessingNames(call.Context())
name := fmt.Sprintf("RemoteBlessings:%v LocalAddr:%v RemoteAddr:%v", b, conn.LocalAddr(), conn.RemoteAddr())
vlog.Infof("TUNNEL START: %v", name)
- err = tunnelutil.Forward(conn, call.SendStream(), call.RecvStream())
+ err = internal.Forward(conn, call.SendStream(), call.RecvStream())
vlog.Infof("TUNNEL END : %v (%v)", name, err)
return err
}
@@ -167,8 +167,8 @@
}
func setWindowSize(fd uintptr, row, col uint16) {
- ws := tunnelutil.Winsize{Row: row, Col: col}
- if err := tunnelutil.SetWindowSize(fd, ws); err != nil {
+ ws := internal.Winsize{Row: row, Col: col}
+ if err := internal.SetWindowSize(fd, ws); err != nil {
vlog.Infof("Failed to set window size: %v", err)
}
}
diff --git a/examples/tunnel/vsh/iomanager.go b/examples/tunnel/vsh/iomanager.go
index 47b7501..de41910 100644
--- a/examples/tunnel/vsh/iomanager.go
+++ b/examples/tunnel/vsh/iomanager.go
@@ -14,7 +14,7 @@
"v.io/x/lib/vlog"
"v.io/x/ref/examples/tunnel"
- "v.io/x/ref/examples/tunnel/tunnelutil"
+ "v.io/x/ref/examples/tunnel/internal"
)
func runIOManager(stdin io.Reader, stdout, stderr io.Writer, stream tunnel.TunnelShellClientCall) error {
@@ -125,7 +125,7 @@
func (m *ioManager) handleWindowResize(winch <-chan os.Signal, outchan chan<- tunnel.ClientShellPacket, wg *sync.WaitGroup) {
defer wg.Done()
for _ = range winch {
- ws, err := tunnelutil.GetWindowSize()
+ ws, err := internal.GetWindowSize()
if err != nil {
vlog.Infof("GetWindowSize failed: %v", err)
continue
diff --git a/examples/tunnel/vsh/main.go b/examples/tunnel/vsh/main.go
index 64fdef4..a08c0c3 100644
--- a/examples/tunnel/vsh/main.go
+++ b/examples/tunnel/vsh/main.go
@@ -18,12 +18,11 @@
"v.io/v23"
"v.io/v23/context"
"v.io/x/lib/vlog"
+ "v.io/x/ref/examples/tunnel"
+ "v.io/x/ref/examples/tunnel/internal"
+ "v.io/x/ref/lib/signals"
_ "v.io/x/ref/profiles"
-
- "v.io/x/ref/examples/tunnel"
- "v.io/x/ref/examples/tunnel/tunnelutil"
- "v.io/x/ref/lib/signals"
)
var (
@@ -106,8 +105,8 @@
return 1
}
if opts.UsePty {
- saved := tunnelutil.EnterRawTerminalMode()
- defer tunnelutil.RestoreTerminalSettings(saved)
+ saved := internal.EnterRawTerminalMode()
+ defer internal.RestoreTerminalSettings(saved)
}
runIOManager(os.Stdin, os.Stdout, os.Stderr, stream)
@@ -131,7 +130,7 @@
func shellOptions(cmd string) (opts tunnel.ShellOpts) {
opts.UsePty = (len(cmd) == 0 || *forcePty) && !*disablePty
opts.Environment = environment()
- ws, err := tunnelutil.GetWindowSize()
+ ws, err := internal.GetWindowSize()
if err != nil {
vlog.VI(1).Infof("GetWindowSize failed: %v", err)
} else {
@@ -206,7 +205,7 @@
name := fmt.Sprintf("%v-->%v-->(%v)-->%v", conn.RemoteAddr(), conn.LocalAddr(), oname, raddr)
go func() {
vlog.VI(1).Infof("TUNNEL START: %v", name)
- errf := tunnelutil.Forward(conn, stream.SendStream(), stream.RecvStream())
+ errf := internal.Forward(conn, stream.SendStream(), stream.RecvStream())
err := stream.Finish()
vlog.VI(1).Infof("TUNNEL END : %v (%v, %v)", name, errf, err)
}()