futoin-invoker
Advanced tools
Comparing version 1.5.7 to 1.6.0
=== 1.6.0 (2017-12-05) === | ||
NEW: FTN3 v1.8 "maxreqsize" & "maxrspsize" function definition attribute | ||
=== 1.5.7 (2017-11-25) === | ||
@@ -3,0 +6,0 @@ FIXED: license disclaimers |
{ | ||
"name": "futoin-invoker", | ||
"version": "1.5.7", | ||
"version": "1.6.0", | ||
"vcs": "git", | ||
@@ -5,0 +5,0 @@ "rms": "npm", |
@@ -125,2 +125,5 @@ "use strict"; | ||
ctx.max_rsp_size = finfo._max_rsp_size; | ||
ctx.max_req_size = finfo._max_req_size; | ||
if ( ctx.upload_data && | ||
@@ -127,0 +130,0 @@ !finfo.rawupload ) |
@@ -219,3 +219,3 @@ "use strict"; | ||
if ( byte_length > optname.SAFE_PAYLOAD_LIMIT ) | ||
if ( byte_length > ctx.max_req_size ) | ||
{ | ||
@@ -285,3 +285,3 @@ as.error( FutoInError.InvokerError, "FutoIn message exceeds safety limit" ); | ||
false : | ||
optname.SAFE_PAYLOAD_LIMIT; | ||
ctx.max_rsp_size; | ||
@@ -545,2 +545,9 @@ rsp.setEncoding( 'utf8' ); | ||
// dirty hack | ||
ws._driver._maxLength = Math.max( | ||
ws._driver._maxLength, | ||
ctx.max_rsp_size, | ||
ctx.max_req_size | ||
); | ||
const reqas = this.reqas; | ||
@@ -547,0 +554,0 @@ |
@@ -27,3 +27,4 @@ "use strict"; | ||
var InterfaceInfo = require( './InterfaceInfo' ); | ||
var FUTOIN_CONTENT_TYPE = common.Options.FUTOIN_CONTENT_TYPE; | ||
var Options = common.Options; | ||
var FUTOIN_CONTENT_TYPE = Options.FUTOIN_CONTENT_TYPE; | ||
@@ -141,2 +142,4 @@ /** | ||
signMessage : this._signMessageDummy, | ||
max_rsp_size: Options.SAFE_PAYLOAD_LIMIT, | ||
max_req_size: Options.SAFE_PAYLOAD_LIMIT, | ||
}; | ||
@@ -143,0 +146,0 @@ |
{ | ||
"name": "futoin-invoker", | ||
"version": "1.5.7", | ||
"version": "1.6.0", | ||
"description": "FutoIn Invoker - Reference Implementation. Transparently and efficiently invoke remote or local service methods with strict API definition for Node and Browser", | ||
@@ -5,0 +5,0 @@ "main": "lib/invoker.js", |
@@ -67,3 +67,3 @@ "use strict"; | ||
_max_supported_v1_minor : 7, | ||
_max_supported_v1_minor : 8, | ||
@@ -698,2 +698,14 @@ /** | ||
{ | ||
for ( f in funcs ) | ||
{ | ||
if ( funcs[f].maxreqsize || funcs[f].maxrspsize ) | ||
{ | ||
as.error( FutoInError.InternalError, | ||
"Function maxreqsize/maxrspsize is FTN3 v1.8 feature" ); | ||
} | ||
} | ||
} | ||
if ( mnr < 9 ) | ||
{ | ||
// TODO | ||
@@ -849,2 +861,5 @@ } | ||
} | ||
finfo._max_req_size = this._maxSize( finfo.maxreqsize ); | ||
finfo._max_rsp_size = this._maxSize( finfo.maxrspsize ); | ||
} | ||
@@ -855,2 +870,26 @@ }, | ||
* @private | ||
* @param {string} ms - max size value | ||
* @return {integer} size in bytes | ||
*/ | ||
_maxSize : function( ms ) | ||
{ | ||
if ( ms ) | ||
{ | ||
var res = parseInt( ms ); | ||
switch( ms[ ms.length ? ms.length - 1 : 0 ] ) | ||
{ | ||
case 'K': return res << 10; | ||
case 'M': return res << 20; | ||
default: return res; | ||
} | ||
} | ||
else | ||
{ | ||
return common.Options.SAFE_PAYLOAD_LIMIT; | ||
} | ||
}, | ||
/** | ||
* @private | ||
* @param {AsyncSteps} as - _ | ||
@@ -857,0 +896,0 @@ * @param {object} info - _ |
@@ -500,2 +500,95 @@ 'use strict'; | ||
version: info.version, | ||
ftn3rev: "1.6", | ||
funcs: { | ||
f: { | ||
result: "string", | ||
}, | ||
}, | ||
}; | ||
SpecTools.loadIface( as, info, [ iface ] ); | ||
}, | ||
function( as, err ) | ||
{ | ||
try | ||
{ | ||
err.should.equal( 'InternalError' ); | ||
as.state.error_info.should.equal( "Custom result type FTN3 v1.7 feature" ); | ||
as.success( 'OK' ); | ||
} | ||
catch ( e ) | ||
{ | ||
done( e ); | ||
} | ||
} | ||
).add( | ||
function( as, ok ) | ||
{ | ||
ok.should.equal( 'OK' ); | ||
var iface = { | ||
iface : info.iface, | ||
version: info.version, | ||
ftn3rev: "1.7", | ||
funcs: { | ||
f: { | ||
maxreqsize: '1M', | ||
}, | ||
}, | ||
}; | ||
SpecTools.loadIface( as, info, [ iface ] ); | ||
}, | ||
function( as, err ) | ||
{ | ||
try | ||
{ | ||
err.should.equal( 'InternalError' ); | ||
as.state.error_info.should.equal( "Function maxreqsize/maxrspsize is FTN3 v1.8 feature" ); | ||
as.success( 'OK' ); | ||
} | ||
catch ( e ) | ||
{ | ||
done( e ); | ||
} | ||
} | ||
).add( | ||
function( as, ok ) | ||
{ | ||
ok.should.equal( 'OK' ); | ||
var iface = { | ||
iface : info.iface, | ||
version: info.version, | ||
ftn3rev: "1.7", | ||
funcs: { | ||
f: { | ||
maxrspsize: '1K', | ||
}, | ||
}, | ||
}; | ||
SpecTools.loadIface( as, info, [ iface ] ); | ||
}, | ||
function( as, err ) | ||
{ | ||
try | ||
{ | ||
err.should.equal( 'InternalError' ); | ||
as.state.error_info.should.equal( "Function maxreqsize/maxrspsize is FTN3 v1.8 feature" ); | ||
as.success( 'OK' ); | ||
} | ||
catch ( e ) | ||
{ | ||
done( e ); | ||
} | ||
} | ||
).add( | ||
function( as, ok ) | ||
{ | ||
ok.should.equal( 'OK' ); | ||
var iface = { | ||
iface : info.iface, | ||
version: info.version, | ||
ftn3rev: '1.' + ( 1 + SpecTools._max_supported_v1_minor ), | ||
@@ -502,0 +595,0 @@ }; |
530758
9324