veyron/runtimes/google/ipc: Pass client to server to allow discharge client
to use client from context.
Change-Id: Ife7ce864964867f1e007748a04f7a40f31bdc795
diff --git a/runtimes/google/ipc/cancel_test.go b/runtimes/google/ipc/cancel_test.go
index 31d5abc..d5e2e01 100644
--- a/runtimes/google/ipc/cancel_test.go
+++ b/runtimes/google/ipc/cancel_test.go
@@ -56,7 +56,7 @@
func makeCanceld(ns naming.Namespace, name, child string) (*canceld, error) {
sm := manager.InternalNew(naming.FixedRoutingID(0x111111111))
ctx := testContext()
- s, err := InternalNewServer(ctx, sm, ns, nil)
+ s, err := testInternalNewServer(ctx, sm, ns)
if err != nil {
return nil, err
}
diff --git a/runtimes/google/ipc/debug_test.go b/runtimes/google/ipc/debug_test.go
index 547d350..e1bf356 100644
--- a/runtimes/google/ipc/debug_test.go
+++ b/runtimes/google/ipc/debug_test.go
@@ -36,7 +36,7 @@
defer sm.Shutdown()
ns := tnaming.NewSimpleNamespace()
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, ReservedNameDispatcher{debugDisp}, vc.LocalPrincipal{pserver})
+ server, err := testInternalNewServer(ctx, sm, ns, ReservedNameDispatcher{debugDisp}, vc.LocalPrincipal{pserver})
if err != nil {
t.Fatalf("InternalNewServer failed: %v", err)
}
diff --git a/runtimes/google/ipc/full_test.go b/runtimes/google/ipc/full_test.go
index f46b0b7..f9859b2 100644
--- a/runtimes/google/ipc/full_test.go
+++ b/runtimes/google/ipc/full_test.go
@@ -97,6 +97,14 @@
return ctx
}
+func testInternalNewServer(ctx *context.T, streamMgr stream.Manager, ns naming.Namespace, opts ...ipc.ServerOpt) (ipc.Server, error) {
+ client, err := InternalNewClient(streamMgr, ns)
+ if err != nil {
+ return nil, err
+ }
+ return InternalNewServer(ctx, streamMgr, ns, client, opts...)
+}
+
type userType string
type testServer struct{}
@@ -214,7 +222,7 @@
vlog.VI(1).Info("InternalNewServer")
opts = append(opts, vc.LocalPrincipal{principal})
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, opts...)
+ server, err := testInternalNewServer(ctx, sm, ns, opts...)
if err != nil {
t.Errorf("InternalNewServer failed: %v", err)
}
@@ -364,7 +372,7 @@
sm := imanager.InternalNew(naming.FixedRoutingID(0x555555555))
ns := tnaming.NewSimpleNamespace()
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{tsecurity.NewPrincipal()})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{tsecurity.NewPrincipal()})
if err != nil {
t.Errorf("InternalNewServer failed: %v", err)
}
@@ -808,7 +816,7 @@
// Setup the discharge server.
var tester dischargeTestServer
ctx := testContext()
- dischargeServer, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{pdischarger})
+ dischargeServer, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{pdischarger})
if err != nil {
t.Fatal(err)
}
@@ -821,7 +829,7 @@
}
// Setup the application server.
- appServer, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{pserver})
+ appServer, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{pserver})
if err != nil {
t.Fatal(err)
}
@@ -1276,7 +1284,7 @@
return []ipc.Address{&netstate.AddrIfc{Addr: a}}, nil
}
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
if err != nil {
t.Errorf("InternalNewServer failed: %v", err)
}
@@ -1318,7 +1326,7 @@
return nil, fmt.Errorf("oops")
}
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
if err != nil {
t.Errorf("InternalNewServer failed: %v", err)
}
@@ -1347,7 +1355,7 @@
defer sm.Shutdown()
ns := tnaming.NewSimpleNamespace()
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, options.VCSecurityNone)
+ server, err := testInternalNewServer(ctx, sm, ns, options.VCSecurityNone)
if err != nil {
t.Fatalf("InternalNewServer failed: %v", err)
}
@@ -1419,7 +1427,7 @@
t.Fatal(err)
}
sm := imanager.InternalNew(rid)
- server, err := InternalNewServer(ctx, sm, ns, opts...)
+ server, err := testInternalNewServer(ctx, sm, ns, opts...)
if err != nil {
t.Fatal(err)
}
@@ -1513,7 +1521,7 @@
t.Fatal(err)
}
sm := imanager.InternalNew(rid)
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{principal})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{principal})
if err != nil {
t.Fatal(err)
}
@@ -1589,7 +1597,7 @@
t.Fatal(err)
}
sm := imanager.InternalNew(rid)
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{principal})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{principal})
if err != nil {
t.Fatal(err)
}
@@ -1654,7 +1662,7 @@
}
runServer := func(principal security.Principal, rid naming.RoutingID) (ipc.Server, stream.Manager, naming.Endpoint) {
sm := imanager.InternalNew(rid)
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{principal})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{principal})
if err != nil {
t.Fatal(err)
}
diff --git a/runtimes/google/ipc/server.go b/runtimes/google/ipc/server.go
index 12eeba0..936402c 100644
--- a/runtimes/google/ipc/server.go
+++ b/runtimes/google/ipc/server.go
@@ -146,7 +146,7 @@
func (ReservedNameDispatcher) IPCServerOpt() {}
-func InternalNewServer(ctx *context.T, streamMgr stream.Manager, ns naming.Namespace, opts ...ipc.ServerOpt) (ipc.Server, error) {
+func InternalNewServer(ctx *context.T, streamMgr stream.Manager, ns naming.Namespace, client ipc.Client, opts ...ipc.ServerOpt) (ipc.Server, error) {
ctx, _ = vtrace.SetNewSpan(ctx, "NewServer")
statsPrefix := naming.Join("ipc", "server", "routing-id", streamMgr.RoutingID().String())
s := &server{
@@ -184,10 +184,6 @@
s.preferredProtocols = []string(opt)
}
}
- client, err := InternalNewClient(streamMgr, ns)
- if err != nil {
- return nil, fmt.Errorf("failed to create discharge-client: %v", err)
- }
dc := InternalNewDischargeClient(ctx, client)
s.listenerOpts = append(s.listenerOpts, dc)
blessingsStatsName := naming.Join(statsPrefix, "security", "blessings")
diff --git a/runtimes/google/ipc/server_test.go b/runtimes/google/ipc/server_test.go
index 8502416..9caf0d3 100644
--- a/runtimes/google/ipc/server_test.go
+++ b/runtimes/google/ipc/server_test.go
@@ -49,7 +49,7 @@
ns := tnaming.NewSimpleNamespace()
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil)
+ server, err := testInternalNewServer(ctx, sm, ns)
if err != nil {
t.Fatal(err)
}
@@ -153,7 +153,7 @@
}
defer client.Close()
ctx := testContext()
- server, err := InternalNewServer(ctx, sm, ns, nil, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
+ server, err := testInternalNewServer(ctx, sm, ns, vc.LocalPrincipal{tsecurity.NewPrincipal("server")})
if err != nil {
t.Fatal(err)
}
@@ -343,7 +343,7 @@
sm := imanager.InternalNew(naming.FixedRoutingID(0x555555555))
ns := tnaming.NewSimpleNamespace()
principal := vc.LocalPrincipal{tsecurity.NewPrincipal("testServerStatus")}
- server, err := InternalNewServer(testContext(), sm, ns, principal)
+ server, err := testInternalNewServer(testContext(), sm, ns, principal)
if err != nil {
t.Fatal(err)
}
@@ -445,7 +445,7 @@
}
}
- server, err := InternalNewServer(testContext(), sm, ns)
+ server, err := testInternalNewServer(testContext(), sm, ns)
expectNoError(err)
expectState := func(s ipc.ServerState) {
diff --git a/runtimes/google/rt/runtime.go b/runtimes/google/rt/runtime.go
index 4a5d3da..fceb78e 100644
--- a/runtimes/google/rt/runtime.go
+++ b/runtimes/google/rt/runtime.go
@@ -228,7 +228,7 @@
if protocols, ok := ctx.Value(protocolsKey).([]string); ok {
otherOpts = append(otherOpts, iipc.PreferredServerResolveProtocols(protocols))
}
- server, err := iipc.InternalNewServer(ctx, sm, ns, otherOpts...)
+ server, err := iipc.InternalNewServer(ctx, sm, ns, r.GetClient(ctx), otherOpts...)
if err != nil {
return nil, err
}
diff --git a/runtimes/google/vtrace/vtrace_test.go b/runtimes/google/vtrace/vtrace_test.go
index 61f46c6..323ef8c 100644
--- a/runtimes/google/vtrace/vtrace_test.go
+++ b/runtimes/google/vtrace/vtrace_test.go
@@ -89,7 +89,11 @@
func makeTestServer(ctx *context.T, ns naming.Namespace, name, child string, forceCollect bool) (*testServer, error) {
sm := manager.InternalNew(naming.FixedRoutingID(0x111111111))
- s, err := iipc.InternalNewServer(ctx, sm, ns, nil)
+ client, err := iipc.InternalNewClient(sm, ns)
+ if err != nil {
+ return nil, err
+ }
+ s, err := iipc.InternalNewServer(ctx, sm, ns, client)
if err != nil {
return nil, err
}