_pingCM(addr, callback) {
		let host = addr.split(':')[0];
		let port = parseInt(addr.split(':')[1] || '443', 10);
		let options = {
			host,
			port,
			timeout: 700,
			path: '/cmping/',
			agent: this.user._getProxyAgent()
		};

		// The timeout option seems to not work
		let finished = false;
		let timeout = setTimeout(() => {
			if (finished) {
				return;
			}

			this._debug(`CM ${addr} timed out`, true);
			callback(new Error(`CM ${addr} timed out`));
			finished = true;
		}, 700);

		let start = Date.now();
		HTTPS.get(options, (res) => {
			clearTimeout(timeout);
			if (finished) {
				return;
			}

			let latency = Date.now() - start;

			res.on('data', () => {
			}); // there is no body, so just throw it away

			if (res.statusCode != 200) {
				// CM is disqualified
				this._debug(`CM ${addr} disqualified: HTTP error ${res.statusCode}`, true);
				callback(new Error(`CM ${addr} disqualified: HTTP error ${res.statusCode}`));
				return;
			}

			let load = parseInt(res.headers['x-steam-cmload'], 10) || 999;
			this._debug(`CM ${addr} latency ${latency} ms + load ${load}`, true);
			callback(null, {addr, load, latency});
		}).on('error', (err) => {
			clearTimeout(timeout);
			if (!finished) {
				this._debug(`CM ${addr} disqualified: ${err.message}`, true);
				callback(new Error(`CM ${addr} disqualified: ${err.message}`)); // if error, this CM is disqualified
			}
		});
	}
Ping a CM and return its load and latency
@param addr
@param callback
@private