Merge "core.js: Failing service runner was not exiting with code != 0. This change should break the tests but because they were broken already."
diff --git a/extension/manifest.json b/extension/manifest.json
index 89c0449..ab38291 100644
--- a/extension/manifest.json
+++ b/extension/manifest.json
@@ -1,6 +1,6 @@
{
"name": "Vanadium Extension",
- "version": "0.1.7",
+ "version": "0.1.8",
"description": "Access and create Vanadium services from JavaScript.",
"manifest_version": 2,
"icons": {
diff --git a/extension/src/components/settings/index.js b/extension/src/components/settings/index.js
index 80e81af..636ec76 100644
--- a/extension/src/components/settings/index.js
+++ b/extension/src/components/settings/index.js
@@ -19,7 +19,7 @@
module.exports.render = render;
var defaults = {
- identityd: 'identity/dev.v.io/root/google',
+ identityd: 'identity/dev.v.io/u/google',
identitydBlessingUrl: 'https://dev.v.io/auth/blessing-root',
namespaceRoot: '/(dev.v.io/role/vprod/service/mounttabled)@ns.dev.v.io:8101',
proxy: 'proxy',
diff --git a/src/gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server/index.js b/src/gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server/index.js
index cd45b2d..b27766f 100644
--- a/src/gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server/index.js
+++ b/src/gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server/index.js
@@ -11,6 +11,7 @@
+var signature = require('./../../../../../../../v23/vdlroot/signature');
var time = require('./../../../../../../../v23/vdlroot/time');
var security = require('./../../../../../../../v23/security');
var vtrace = require('./../../../../../../../v23/vtrace');
@@ -27,9 +28,12 @@
var _type4 = new vdl.Type();
var _type5 = new vdl.Type();
var _type6 = new vdl.Type();
+var _type7 = new vdl.Type();
+var _typeAuthReply = new vdl.Type();
var _typeCaveatValidationRequest = new vdl.Type();
var _typeCaveatValidationResponse = new vdl.Type();
var _typeContext = new vdl.Type();
+var _typeLookupReply = new vdl.Type();
var _typeSecurityCall = new vdl.Type();
var _typeServerRpcRequest = new vdl.Type();
var _typeServerRpcRequestCall = new vdl.Type();
@@ -51,6 +55,12 @@
_type6.kind = vdl.kind.OPTIONAL;
_type6.name = "";
_type6.elem = new principal.JsBlessings()._type;
+_type7.kind = vdl.kind.LIST;
+_type7.name = "";
+_type7.elem = new signature.Interface()._type;
+_typeAuthReply.kind = vdl.kind.STRUCT;
+_typeAuthReply.name = "v.io/x/ref/services/wspr/internal/rpc/server.AuthReply";
+_typeAuthReply.fields = [{name: "Err", type: vdl.types.ERROR}];
_typeCaveatValidationRequest.kind = vdl.kind.STRUCT;
_typeCaveatValidationRequest.name = "v.io/x/ref/services/wspr/internal/rpc/server.CaveatValidationRequest";
_typeCaveatValidationRequest.fields = [{name: "Call", type: _typeSecurityCall}, {name: "Context", type: _typeContext}, {name: "Cavs", type: _type3}];
@@ -60,6 +70,9 @@
_typeContext.kind = vdl.kind.STRUCT;
_typeContext.name = "v.io/x/ref/services/wspr/internal/rpc/server.Context";
_typeContext.fields = [{name: "Language", type: vdl.types.STRING}];
+_typeLookupReply.kind = vdl.kind.STRUCT;
+_typeLookupReply.name = "v.io/x/ref/services/wspr/internal/rpc/server.LookupReply";
+_typeLookupReply.fields = [{name: "Handle", type: vdl.types.INT32}, {name: "HasAuthorizer", type: vdl.types.BOOL}, {name: "HasGlobber", type: vdl.types.BOOL}, {name: "Signature", type: _type7}, {name: "Err", type: vdl.types.ERROR}];
_typeSecurityCall.kind = vdl.kind.STRUCT;
_typeSecurityCall.name = "v.io/x/ref/services/wspr/internal/rpc/server.SecurityCall";
_typeSecurityCall.fields = [{name: "Method", type: vdl.types.STRING}, {name: "Suffix", type: vdl.types.STRING}, {name: "MethodTags", type: _type1}, {name: "LocalBlessings", type: new principal.JsBlessings()._type}, {name: "LocalBlessingStrings", type: _type2}, {name: "RemoteBlessings", type: new principal.JsBlessings()._type}, {name: "RemoteBlessingStrings", type: _type2}, {name: "LocalEndpoint", type: vdl.types.STRING}, {name: "RemoteEndpoint", type: vdl.types.STRING}];
@@ -75,15 +88,20 @@
_type4.freeze();
_type5.freeze();
_type6.freeze();
+_type7.freeze();
+_typeAuthReply.freeze();
_typeCaveatValidationRequest.freeze();
_typeCaveatValidationResponse.freeze();
_typeContext.freeze();
+_typeLookupReply.freeze();
_typeSecurityCall.freeze();
_typeServerRpcRequest.freeze();
_typeServerRpcRequestCall.freeze();
+module.exports.AuthReply = (vdl.registry.lookupOrCreateConstructor(_typeAuthReply));
module.exports.CaveatValidationRequest = (vdl.registry.lookupOrCreateConstructor(_typeCaveatValidationRequest));
module.exports.CaveatValidationResponse = (vdl.registry.lookupOrCreateConstructor(_typeCaveatValidationResponse));
module.exports.Context = (vdl.registry.lookupOrCreateConstructor(_typeContext));
+module.exports.LookupReply = (vdl.registry.lookupOrCreateConstructor(_typeLookupReply));
module.exports.SecurityCall = (vdl.registry.lookupOrCreateConstructor(_typeSecurityCall));
module.exports.ServerRpcRequest = (vdl.registry.lookupOrCreateConstructor(_typeServerRpcRequest));
module.exports.ServerRpcRequestCall = (vdl.registry.lookupOrCreateConstructor(_typeServerRpcRequestCall));
diff --git a/src/lib/hex-vom.js b/src/lib/hex-vom.js
new file mode 100644
index 0000000..fa73524
--- /dev/null
+++ b/src/lib/hex-vom.js
@@ -0,0 +1,24 @@
+// Copyright 2015 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+/**
+ * @private
+ * @fileoverview Helper methods for vom and hex encode/decode.
+ */
+
+var byteUtil = require('../vdl/byte-util');
+var vom = require('../vom');
+
+module.exports = {
+ decode: decode,
+ encode: encode
+};
+
+function encode(x) {
+ return byteUtil.bytes2Hex(vom.encode(x));
+}
+
+function decode(x) {
+ return vom.decode(byteUtil.hex2Bytes(x));
+}
diff --git a/src/proxy/index.js b/src/proxy/index.js
index 6e0b705..ec2d7ff 100644
--- a/src/proxy/index.js
+++ b/src/proxy/index.js
@@ -15,12 +15,10 @@
var Incoming = MessageType.Incoming;
var Outgoing = MessageType.Outgoing;
var vlog = require('./../lib/vlog');
-var byteUtil = require('../vdl/byte-util');
-var vom = require('../vom');
var unwrap = require('../vdl/type-util').unwrap;
var Encoder = require('../vom/encoder');
var Decoder = require('../vom/decoder');
-
+var hexVom = require('../lib/hex-vom');
// Cache the service signatures for one hour.
var SIGNATURE_CACHE_TTL = 3600 * 1000;
@@ -68,7 +66,7 @@
var payload;
try {
- payload = vom.decode(byteUtil.hex2Bytes(message.data));
+ payload = hexVom.decode(message.data);
payload.message = unwrap(payload.message);
} catch (e) {
vlog.logger.error(e);
@@ -147,7 +145,11 @@
if (handler) {
this.outstandingRequests[id] = handler;
}
- var body = JSON.stringify({ id: id, data: message, type: type });
+ var body = {
+ id: id,
+ data: message,
+ type: type
+ };
var self = this;
this.senderPromise.then(function(sender) {
diff --git a/src/proxy/nacl.js b/src/proxy/nacl.js
index 4d9d483..a21614f 100644
--- a/src/proxy/nacl.js
+++ b/src/proxy/nacl.js
@@ -7,14 +7,13 @@
* @private
*/
-var extensionEventProxy = require('../browser/event-proxy');
-var errors = require('../verror/index');
var Deferred = require('../lib/deferred');
+var errors = require('../verror/index');
+var extensionEventProxy = require('../browser/event-proxy');
+var hexVom = require('../lib/hex-vom');
var Proxy = require('./index');
var random = require('../lib/random');
var vlog = require('./../lib/vlog');
-var byteUtil = require('../vdl/byte-util');
-var vom = require('../vom');
module.exports = ProxyConnection;
@@ -32,7 +31,7 @@
this.onBrowsprMsg = function(msg) {
var body;
try {
- body = vom.decode(byteUtil.hex2Bytes(msg.body));
+ body = hexVom.decode(msg.body);
} catch (e) {
vlog.logger.warn('Failed to parse ' + msg.body + 'err: ' + e);
return;
diff --git a/src/proxy/stream-handler.js b/src/proxy/stream-handler.js
index f0a4c60..49c90be 100644
--- a/src/proxy/stream-handler.js
+++ b/src/proxy/stream-handler.js
@@ -3,15 +3,13 @@
// license that can be found in the LICENSE file.
var Incoming = require('./message-type').Incoming;
-var byteUtil = require('../vdl/byte-util');
-var vom = require('../vom');
var emitStreamError = require('../lib/emit-stream-error');
var vError = require('../gen-vdl/v.io/v23/verror');
var SharedContextKeys = require('../runtime/shared-context-keys');
var Blessings = require('../security/blessings');
var JsBlessings =
require('../gen-vdl/v.io/x/ref/services/wspr/internal/principal').JsBlessings;
-
+var hexVom = require('../lib/hex-vom');
module.exports = Handler;
@@ -32,7 +30,7 @@
switch (type) {
case Incoming.STREAM_RESPONSE:
try {
- data = vom.decode(byteUtil.hex2Bytes(data));
+ data = hexVom.decode(data);
} catch (e) {
emitStreamError(this._stream,
new vError.InternalError(this._ctx,
diff --git a/src/proxy/stream.js b/src/proxy/stream.js
index fcb2b67..e218fab 100644
--- a/src/proxy/stream.js
+++ b/src/proxy/stream.js
@@ -11,14 +11,13 @@
var Duplex = require('stream').Duplex;
var vlog = require('../lib/vlog');
var inherits = require('inherits');
-var byteUtil = require('../vdl/byte-util');
-var vom = require('../vom');
var fill = require('../vdl/canonicalize').fill;
var reduce = require('../vdl/canonicalize').reduce;
var unwrap = require('../vdl/type-util').unwrap;
var Blessings = require('../security/blessings');
var ServerRpcReply =
require('../gen-vdl/v.io/x/ref/services/wspr/internal/lib').ServerRpcReply;
+var hexVom = require('../lib/hex-vom');
/**
* @summary
@@ -79,11 +78,11 @@
var object = {
id: this.flowId,
type: Outgoing.RESPONSE,
- data: byteUtil.bytes2Hex(vom.encode(new ServerRpcReply({
+ data: hexVom.encode(new ServerRpcReply({
results: results,
err: err || null,
traceResponse: traceResponse
- })))
+ }))
};
Duplex.prototype.write.call(this, object);
};
@@ -171,7 +170,7 @@
var canonChunk = fill(chunk, this.writeType);
var object = {
id: this.flowId,
- data: byteUtil.bytes2Hex(vom.encode(canonChunk)),
+ data: hexVom.encode(canonChunk),
type: Outgoing.STREAM_VALUE
};
return Duplex.prototype.write.call(this, object, encoding, cb);
@@ -179,7 +178,7 @@
Stream.prototype._write = function(chunk, encoding, cb) {
this.webSocketPromise.then(function(websocket) {
- websocket.send(JSON.stringify(chunk));
+ websocket.send(chunk);
cb();
});
};
diff --git a/src/proxy/websocket.js b/src/proxy/websocket.js
index ef23e59..baa236e 100644
--- a/src/proxy/websocket.js
+++ b/src/proxy/websocket.js
@@ -10,11 +10,10 @@
var isBrowser = require('is-browser');
var WebSocket = require('ws');
-var byteUtil = require('../vdl/byte-util');
var Deferred = require('./../lib/deferred');
+var hexVom = require('../lib/hex-vom');
var Proxy = require('./index');
var vlog = require('./../lib/vlog');
-var vom = require('../vom');
/**
* A client for the vanadium service using websockets. Connects to the vanadium
@@ -34,7 +33,10 @@
// has completed.
var def = new Deferred();
Proxy.call(this, def.promise);
- def.resolve(this.getWebSocket());
+ var proxy = this;
+ this.getWebSocket().then(function success() {
+ def.resolve(proxy);
+ }, def.reject);
}
ProxyConnection.prototype = Object.create(Proxy.prototype);
@@ -86,7 +88,7 @@
websocket.onmessage = function(frame) {
var message;
try {
- message = vom.decode(byteUtil.hex2Bytes(frame.data));
+ message = hexVom.decode(frame.data);
} catch (e) {
vlog.logger.warn('Failed to parse ' + frame.data + ' err: ' + e);
return;
@@ -98,13 +100,18 @@
return deferred.promise;
};
+ProxyConnection.prototype.send = function(msg) {
+ this.getWebSocket().then(function(ws) {
+ ws.send(JSON.stringify(msg));
+ }).catch(function(err) {
+ throw err;
+ });
+};
+
ProxyConnection.prototype.close = function(cb) {
- var proxy = this;
var deferred = new Deferred(cb);
- proxy
- .getWebSocket()
- .then(close, function(err) {
+ this.getWebSocket().then(close, function(err) {
// TODO(jasoncampbell): Better error handling around websocket connection
// It's possible that the initial connection failed with
// "Error: getaddrinfo ENOTFOUND" Since there was not a
diff --git a/src/rpc/client.js b/src/rpc/client.js
index 4c5e292..6f05115 100644
--- a/src/rpc/client.js
+++ b/src/rpc/client.js
@@ -19,6 +19,7 @@
var context = require('../context');
var Deferred = require('../lib/deferred');
var emitStreamError = require('../lib/emit-stream-error');
+var hexVom = require('../lib/hex-vom');
var Incoming = require('../proxy/message-type').Incoming;
var makeError = require('../verror/make-errors');
var Outgoing = require('../proxy/message-type').Outgoing;
@@ -36,7 +37,6 @@
var vdl = require('../vdl');
var verror = require('../gen-vdl/v.io/v23/verror');
var vlog = require('../lib/vlog');
-var vom = require('../vom');
var SharedContextKeys = require('../runtime/shared-context-keys');
var vtrace = require('../vtrace');
var Blessings = require('../security/blessings');
@@ -241,7 +241,7 @@
OutstandingRPC.prototype.handleStreamData = function(data) {
if (this._def.stream) {
try {
- data = vom.decode(byteUtil.hex2Bytes(data));
+ data = hexVom.decode(data);
} catch (e) {
this.handleError(
new verror.InternalError(this._ctx, 'Failed to decode result: ', e));
diff --git a/src/rpc/granter-router.js b/src/rpc/granter-router.js
index 40394da..a2390a5 100644
--- a/src/rpc/granter-router.js
+++ b/src/rpc/granter-router.js
@@ -5,8 +5,7 @@
var asyncCall = require('../lib/async-call');
var Deferred = require('../lib/deferred');
-var vom = require('../vom');
-var byteUtil = require('../vdl/byte-util');
+var hexVom = require('../lib/hex-vom');
var verror = require('../gen-vdl/v.io/v23/verror');
var MessageType = require('../proxy/message-type');
var Incoming = MessageType.Incoming;
@@ -44,7 +43,7 @@
}
try {
- request = vom.decode(byteUtil.hex2Bytes(request));
+ request = hexVom.decode(request);
request = request.val;
} catch (e) {
// TODO(bjornick): Pass in context here so we can generate useful error
@@ -52,7 +51,7 @@
var res = new GranterResponse({
err: new verror.NoExistError(this._rootCtx, 'failed to decode message')
});
- var data = byteUtil.bytes2Hex(vom.encode(res));
+ var data = hexVom.encode(res);
this._proxy.sendRequest(data, Outgoing.GRANTER_RESPONSE,
null, messageId);
}
@@ -63,7 +62,7 @@
var res = new GranterResponse({
err: new verror.NoExistError(this._rootCtx, 'unknown granter')
});
- var data = byteUtil.bytes2Hex(vom.encode(res));
+ var data = hexVom.encode(res);
this._proxy.sendRequest(data, Outgoing.GRANTER_RESPONSE,
null, messageId);
return;
@@ -83,14 +82,14 @@
err: new verror.NoExistError(this._rootCtx, 'error while granting: ' +
err)
});
- var errData = byteUtil.bytes2Hex(vom.encode(res));
+ var errData = hexVom.encode(res);
self._proxy.sendRequest(errData, Outgoing.GRANTER_RESPONSE,
null, messageId);
def.resolve();
return;
}
var result = new GranterResponse({blessings: outBlessings[0]._id});
- var data = byteUtil.bytes2Hex(vom.encode(result));
+ var data = hexVom.encode(result);
self._proxy.sendRequest(data, Outgoing.GRANTER_RESPONSE, null,
messageId);
def.resolve();
diff --git a/src/rpc/server-router.js b/src/rpc/server-router.js
index 53520d8..9c4a3a1 100644
--- a/src/rpc/server-router.js
+++ b/src/rpc/server-router.js
@@ -19,21 +19,20 @@
var SecurityCall = require('../security/call');
var ServerCall = require('./server-call');
var vdl = require('../vdl');
-var byteUtil = require('../vdl/byte-util');
var typeUtil = require('../vdl/type-util');
var Deferred = require('../lib/deferred');
var capitalize = require('../vdl/util').capitalize;
-var vom = require('../vom');
-var vdlsig = require('../gen-vdl/v.io/v23/vdlroot/signature');
var namespaceUtil = require('../naming/util');
var naming = require('../gen-vdl/v.io/v23/naming');
var Glob = require('./glob');
var GlobStream = require('./glob-stream');
var ServerRpcReply =
require('../gen-vdl/v.io/x/ref/services/wspr/internal/lib').ServerRpcReply;
-var CaveatValidationResponse =
- require('../gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server').
- CaveatValidationResponse;
+var serverVdl =
+ require('../gen-vdl/v.io/x/ref/services/wspr/internal/rpc/server');
+var CaveatValidationResponse = serverVdl.CaveatValidationResponse;
+var AuthReply = serverVdl.AuthReply;
+var LookupReply = serverVdl.LookupReply;
var vtrace = require('../vtrace');
var lib =
require('../gen-vdl/v.io/x/ref/services/wspr/internal/lib');
@@ -43,6 +42,7 @@
var WireBlessings =
require('../gen-vdl/v.io/v23/security').WireBlessings;
var SharedContextKeys = require('../runtime/shared-context-keys');
+var hexVom = require('../lib/hex-vom');
/**
* A router that handles routing incoming requests to the right
@@ -101,43 +101,50 @@
};
Router.prototype.handleAuthorizationRequest = function(messageId, request) {
+ var authReply;
try {
- request = vom.decode(byteUtil.hex2Bytes(request));
+ request = hexVom.decode(request);
} catch (e) {
- JSON.stringify({
+ authReply = new AuthReply({
// TODO(bjornick): Use the real context
- err: new verror.InternalError(this._rootCtx,
- 'Failed to decode ', e)
+ err: new verror.InternalError(this._rootCtx, 'Failed to decode ', e)
});
- this._proxy.sendRequest(data, Outgoing.AUTHORIZATION_RESPONSE,
- null, messageId);
+
+ this._proxy.sendRequest(hexVom.encode(authReply),
+ Outgoing.AUTHORIZATION_RESPONSE, null, messageId);
+ return;
}
var ctx = this._rootCtx.withValue(SharedContextKeys.LANG_KEY,
request.context.language);
var server = this._servers[request.serverId];
if (!server) {
- var data = JSON.stringify({
+ authReply = new AuthReply({
// TODO(bjornick): Use the real context
err: new verror.ExistsError(ctx, 'unknown server')
});
- this._proxy.sendRequest(data, Outgoing.AUTHORIZATION_RESPONSE,
- null, messageId);
+
+ this._proxy.sendRequest(hexVom.encode(authReply),
+ Outgoing.AUTHORIZATION_RESPONSE, null, messageId);
return;
}
var router = this;
var call = new SecurityCall(request.call, this._controller);
+ authReply = new AuthReply({});
+
server.handleAuthorization(request.handle, ctx, call).then(function() {
- router._proxy.sendRequest('{}', Outgoing.AUTHORIZATION_RESPONSE, null,
- messageId);
+ router._proxy.sendRequest(hexVom.encode(authReply),
+ Outgoing.AUTHORIZATION_RESPONSE, null,
+ messageId);
}).catch(function(e) {
- var data = JSON.stringify({
+ var authReply = new AuthReply({
err: ErrorConversion.fromNativeValue(e, this._appName,
- request.call.method)
+ request.call.method)
});
- router._proxy.sendRequest(data, Outgoing.AUTHORIZATION_RESPONSE, null,
- messageId);
+ router._proxy.sendRequest(hexVom.encode(authReply),
+ Outgoing.AUTHORIZATION_RESPONSE, null,
+ messageId);
});
};
@@ -180,9 +187,9 @@
var response = new CaveatValidationResponse({
results: results
});
- var data = byteUtil.bytes2Hex(vom.encode(response));
- self._proxy.sendRequest(data, Outgoing.CAVEAT_VALIDATION_RESPONSE, null,
- messageId);
+ self._proxy.sendRequest(hexVom.encode(response),
+ Outgoing.CAVEAT_VALIDATION_RESPONSE, null,
+ messageId);
}).catch(function(err) {
throw new Error('Unexpected error (all promises should resolve): ' + err);
});
@@ -193,49 +200,33 @@
if (!server) {
// TODO(bjornick): Pass in context here so we can generate useful error
// messages.
- var data = JSON.stringify({
+ var reply = new LookupReply({
err: new verror.NoExistError(this._rootCtx, 'unknown server')
});
- this._proxy.sendRequest(data, Outgoing.LOOKUP_RESPONSE,
- null, messageId);
+ this._proxy.sendRequest(hexVom.encode(reply), Outgoing.LOOKUP_RESPONSE,
+ null, messageId);
return;
}
var self = this;
return server._handleLookup(request.suffix).then(function(value) {
var signatureList = value.invoker.signature();
- var res;
- try {
- // TODO(alexfandrianto): Define []signature.Interface in VDL.
- // See dispatcher.go lookupReply's signature field.
- // Also see dispatcher.go lookupIntermediateReply's signature field.
- // We have to pre-encode the signature list into a string.
- var canonicalSignatureList = vdl.canonicalize.fill(signatureList, {
- kind: vdl.kind.LIST,
- elem: vdlsig.Interface.prototype._type
- });
- res = byteUtil.bytes2Hex(vom.encode(canonicalSignatureList));
- } catch (e) {
- return Promise.reject(e);
- }
-
var hasAuthorizer = (typeof value.authorizer === 'function');
var hasGlobber = value.invoker.hasGlobber();
- var data = {
+ var reply = new LookupReply({
handle: value._handle,
- signature: res,
+ signature: signatureList,
hasAuthorizer: hasAuthorizer,
hasGlobber: hasGlobber
- };
- self._proxy.sendRequest(JSON.stringify(data), Outgoing.LOOKUP_RESPONSE,
- null, messageId);
- }).catch(function(err) {
- var data = JSON.stringify({
- err: ErrorConversion.fromNativeValue(err, self._appName,
- '__Signature'),
});
- self._proxy.sendRequest(data, Outgoing.LOOKUP_RESPONSE,
- null, messageId);
+ self._proxy.sendRequest(hexVom.encode(reply), Outgoing.LOOKUP_RESPONSE,
+ null, messageId);
+ }).catch(function(err) {
+ var reply = new LookupReply({
+ err: ErrorConversion.fromNativeValue(err, self._appName, '__Signature')
+ });
+ self._proxy.sendRequest(hexVom.encode(reply), Outgoing.LOOKUP_RESPONSE,
+ null, messageId);
});
};
@@ -270,7 +261,7 @@
var err;
var request;
try {
- request = vom.decode(byteUtil.hex2Bytes(vdlRequest));
+ request = hexVom.decode(vdlRequest);
} catch (e) {
err = new Error('Failed to decode args: ' + e);
this.sendResult(messageId, '', null, err);
@@ -633,9 +624,8 @@
err: errorStruct,
traceResponse: traceResponse
});
- var responseDataVOM = byteUtil.bytes2Hex(vom.encode(responseData));
- this._proxy.sendRequest(responseDataVOM, Outgoing.RESPONSE, null,
- messageId);
+ this._proxy.sendRequest(hexVom.encode(responseData), Outgoing.RESPONSE,
+ null, messageId);
}
};
diff --git a/test/unit/test-rpc-client.js b/test/unit/test-rpc-client.js
index c6d1643..883ed47 100644
--- a/test/unit/test-rpc-client.js
+++ b/test/unit/test-rpc-client.js
@@ -8,8 +8,7 @@
var createSignature = require('../../src/vdl/create-signature');
var createMockProxy = require('./mock-proxy');
var vdl = require('../../src/vdl');
-var byteUtil = require('../../src/vdl/byte-util');
-var vom = require('../../src/vom');
+var hexVom = require('../../src/lib/hex-vom');
var vtrace = require('../../src/vtrace');
var app = require('../../src/gen-vdl/v.io/x/ref/services/wspr/internal/app');
var SharedContextKeys = require('../../src/runtime/shared-context-keys');
@@ -50,7 +49,7 @@
}
var mockProxy = createMockProxy(function(data, type) {
- var decodedData = vom.decode(byteUtil.hex2Bytes(data));
+ var decodedData = hexVom.decode(data);
var response = new app.RpcResponse();
if (decodedData instanceof app.RpcRequest &&
@@ -60,7 +59,7 @@
// Take the first arg and return it in a result list.
response.outArgs = [decodedData];
}
- return byteUtil.bytes2Hex(vom.encode(response));
+ return hexVom.encode(response);
});
test('creating instances', function(assert) {
diff --git a/test/unit/test-rpc-signature-cache.js b/test/unit/test-rpc-signature-cache.js
index 087309f..fd75545 100644
--- a/test/unit/test-rpc-signature-cache.js
+++ b/test/unit/test-rpc-signature-cache.js
@@ -13,8 +13,7 @@
var createMockProxy = require('./mock-proxy');
var Outgoing = require('../../src/proxy/message-type').Outgoing;
var Client = require('../../src/rpc/client.js');
-var byteUtil = require('../../src/vdl/byte-util');
-var vom = require('../../src/vom');
+var hexVom = require('../../src/lib/hex-vom');
var app = require('../../src/gen-vdl/v.io/x/ref/services/wspr/internal/app');
var vtrace = require('../../src/vtrace');
var vdlsig = require('../../src/gen-vdl/v.io/v23/vdlroot/signature');
@@ -29,13 +28,13 @@
function createProxy() {
return createMockProxy(function(message, type) {
if (type === Outgoing.REQUEST) {
- var decodedData = vom.decode(byteUtil.hex2Bytes(message));
+ var decodedData = hexVom.decode(message);
if (decodedData.method !== 'Signature') {
throw new Error('Unexpected method call');
}
var response = new app.RpcResponse();
response.outArgs = [freshSig];
- return byteUtil.bytes2Hex(vom.encode(response));
+ return hexVom.encode(response);
}
throw new Error('Unexpected message type');
}, CACHE_TTL);
diff --git a/test/unit/test-server-router.js b/test/unit/test-server-router.js
index afe2932..7687a35 100644
--- a/test/unit/test-server-router.js
+++ b/test/unit/test-server-router.js
@@ -11,8 +11,7 @@
var Server = require('../../src/rpc/server');
var Outgoing = require('../../src/proxy/message-type').Outgoing;
var vdl = require('../../src/vdl');
-var byteUtil = require('../../src/vdl/byte-util');
-var vom = require('../../src/vom');
+var hexVom = require('../../src/lib/hex-vom');
var context = require('../../src/context');
test('Server Router Signature Lookup', function(t) {
@@ -102,11 +101,10 @@
t.equals(responseType, Outgoing.LOOKUP_RESPONSE, 'response type');
t.equals(responseMessageId, inputMessageId, 'message id');
- var data = JSON.parse(responseData);
- t.ok(data.hasOwnProperty('handle'), 'has a handle');
- t.equals(data.hasAuthorizer, true, 'has authorizer');
- var decodedSignature = vom.decode(byteUtil.hex2Bytes(data.signature));
- t.deepEquals(decodedSignature.val, expectedSignature, 'signature');
+ var reply = hexVom.decode(responseData);
+ t.ok(reply.hasOwnProperty('handle'), 'has a handle');
+ t.equals(reply.hasAuthorizer, true, 'has authorizer');
+ t.deepEquals(reply.signature, expectedSignature, 'signature');
t.end();
});