From 60931e2b68b8dd2c71e363635258c80285d00b53 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Tue, 1 Nov 2016 18:22:35 -0700 Subject: [PATCH] Fix bug where preset preconditions cause unnecessary GPN RPC s --- lib/session.coffee | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/session.coffee b/lib/session.coffee index 06b4e95..3a70d5f 100644 --- a/lib/session.coffee +++ b/lib/session.coffee @@ -434,12 +434,9 @@ rpcRequest = (sessionData, _declarations, callback) -> for ad in device.getAliasDeclarations(d[0], 1) loadPath(sessionData, ad[0]) - return clear(sessionData, toClear, (err) -> + return loadParameters(sessionData, (err) -> return callback(err) if err - loadParameters(sessionData, (err) -> - return callback(err) if err - return rpcRequest(sessionData, _declarations, callback) - ) + return rpcRequest(sessionData, _declarations, callback) ) ) @@ -450,6 +447,15 @@ rpcRequest = (sessionData, _declarations, callback) -> sessionData.provisions[0] ?= [] sessionData.revisions[0] ?= 0 + for d in _declarations + for ad in device.getAliasDeclarations(d[0], 1) + loadPath(sessionData, ad[0]) + + return loadParameters(sessionData, (err) -> + return callback(err) if err + return rpcRequest(sessionData, null, callback) + ) + if (sessionData.syncState?.virtualParameterDeclarations?.length or 0) < sessionData.declarations.length inception = sessionData.syncState?.virtualParameterDeclarations?.length or 0