Needed for v.io/c/13354
MultiPart: 2/6
Change-Id: I52923fbe1fb8ddb5af0bcee9689143c181f5b5dd
diff --git a/runtime/internal/rpc/server.go b/runtime/internal/rpc/server.go
index fdaa655..ccbee62 100644
--- a/runtime/internal/rpc/server.go
+++ b/runtime/internal/rpc/server.go
@@ -743,7 +743,7 @@
auth security.Authorizer
}
-func (d leafDispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
+func (d leafDispatcher) Lookup(ctx *context.T, suffix string) (interface{}, security.Authorizer, error) {
defer apilog.LogCallf(nil, "suffix=%.10s...", suffix)(nil, "") // gologcop: DO NOT EDIT, MUST BE FIRST STATEMENT
if suffix != "" {
return nil, nil, verror.New(verror.ErrUnknownSuffix, nil, suffix)
@@ -986,7 +986,7 @@
// authorizeVtrace works by simulating a call to __debug/vtrace.Trace. That
// rpc is essentially equivalent in power to the data we are attempting to
// attach here.
-func (fs *flowServer) authorizeVtrace() error {
+func (fs *flowServer) authorizeVtrace(ctx *context.T) error {
// Set up a context as though we were calling __debug/vtrace.
params := &security.CallParams{}
params.Copy(fs)
@@ -996,7 +996,7 @@
var auth security.Authorizer
if fs.server.dispReserved != nil {
- _, auth, _ = fs.server.dispReserved.Lookup(params.Suffix)
+ _, auth, _ = fs.server.dispReserved.Lookup(ctx, params.Suffix)
}
return authorize(fs.ctx, security.NewCall(params), auth)
}
@@ -1010,7 +1010,7 @@
var traceResponse vtrace.Response
// Check if the caller is permitted to view vtrace data.
- if fs.authorizeVtrace() == nil {
+ if fs.authorizeVtrace(fs.ctx) == nil {
traceResponse = vtrace.GetResponse(fs.ctx)
}
@@ -1123,7 +1123,7 @@
// Prepare invoker and decode args.
numArgs := int(req.NumPosArgs)
- argptrs, tags, err := invoker.Prepare(strippedMethod, numArgs)
+ argptrs, tags, err := invoker.Prepare(fs.ctx, strippedMethod, numArgs)
fs.tags = tags
if err != nil {
fs.drainDecoderArgs(numArgs)
@@ -1197,7 +1197,7 @@
return nil, nil, verror.New(verror.ErrUnknownSuffix, fs.ctx, suffix, innerErr)
}
if disp != nil {
- obj, auth, err := disp.Lookup(suffix)
+ obj, auth, err := disp.Lookup(fs.ctx, suffix)
switch {
case err != nil:
return nil, nil, err