Fix broken connection detection; disallow stale XWB_IM_HERE
This commit is contained in:
		@@ -339,7 +339,7 @@ export function Client(cid, secret) {
 | 
				
			|||||||
		if(localstate.practitioner) delete localstate.practitioner;
 | 
							if(localstate.practitioner) delete localstate.practitioner;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.XWB_IM_HERE = unwrapped(logged(() => this.call({ method: 'XWB_IM_HERE', ttl: 30 }), 'XWB_IM_HERE'));
 | 
						this.XWB_IM_HERE = unwrapped(logged(() => this.call({ method: 'XWB_IM_HERE', ttl: 30, stale: false }), 'XWB_IM_HERE'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.XUS_INTRO_MSG = memoized(unwrapped(logged(() => this.callctx(['XUCOMMAND'], 'XUS_INTRO_MSG'), 'XUS_INTRO_MSG')));
 | 
						this.XUS_INTRO_MSG = memoized(unwrapped(logged(() => this.callctx(['XUCOMMAND'], 'XUS_INTRO_MSG'), 'XUS_INTRO_MSG')));
 | 
				
			||||||
	this.XWB_GET_BROKER_INFO = memoized(unwrapped(logged(() => this.callctx(['XUCOMMAND'], 'XWB_GET_BROKER_INFO'), 'XWB_GET_BROKER_INFO')));
 | 
						this.XWB_GET_BROKER_INFO = memoized(unwrapped(logged(() => this.callctx(['XUCOMMAND'], 'XWB_GET_BROKER_INFO'), 'XWB_GET_BROKER_INFO')));
 | 
				
			||||||
@@ -463,7 +463,7 @@ Client.fromCookie = async function(secret, defaulthost='vista.northport.med.va.g
 | 
				
			|||||||
			console.log('Using saved secret and connection', secret);
 | 
								console.log('Using saved secret and connection', secret);
 | 
				
			||||||
			var cid = localstate.cid;
 | 
								var cid = localstate.cid;
 | 
				
			||||||
			var client = Client.fromID(cid, secret);
 | 
								var client = Client.fromID(cid, secret);
 | 
				
			||||||
			if((await vista.call(cid, { method: 'XWB_IM_HERE', ttl: 30, id: Date.now() })).result == '1') {
 | 
								if((await vista.call(cid, { method: 'XWB_IM_HERE', ttl: 0, stale: false, id: Date.now() })).result == '1') {
 | 
				
			||||||
				var server = await client.serverinfo();
 | 
									var server = await client.serverinfo();
 | 
				
			||||||
				if((host[0] == server.result.host) && (host[1] == server.result.port)) {
 | 
									if((host[0] == server.result.host) && (host[1] == server.result.port)) {
 | 
				
			||||||
					localstate.host = host.join(':');
 | 
										localstate.host = host.join(':');
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user