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)
 		}()