forked from mirrors/gecko-dev
		
	MozReview-Commit-ID: 6c5RrFFDak0 --HG-- extra : rebase_source : 4c4b9fe9546427e85db5c333657933f10b94da91
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var fs = require('fs');
 | 
						|
var path = require('path');
 | 
						|
var http2 = require('..');
 | 
						|
var urlParse = require('url').parse;
 | 
						|
 | 
						|
// Setting the global logger (optional)
 | 
						|
http2.globalAgent = new http2.Agent({
 | 
						|
  rejectUnauthorized: true,
 | 
						|
  log: require('../test/util').createLogger('client')
 | 
						|
});
 | 
						|
 | 
						|
// Sending the request
 | 
						|
var url = process.argv.pop();
 | 
						|
var options = urlParse(url);
 | 
						|
 | 
						|
// Optionally verify self-signed certificates.
 | 
						|
if (options.hostname == 'localhost') {
 | 
						|
  options.key = fs.readFileSync(path.join(__dirname, '/localhost.key'));
 | 
						|
  options.ca = fs.readFileSync(path.join(__dirname, '/localhost.crt'));
 | 
						|
}
 | 
						|
 | 
						|
var request = process.env.HTTP2_PLAIN ? http2.raw.get(options) : http2.get(options);
 | 
						|
 | 
						|
// Receiving the response
 | 
						|
request.on('response', function(response) {
 | 
						|
  response.pipe(process.stdout);
 | 
						|
  response.on('end', finish);
 | 
						|
});
 | 
						|
 | 
						|
// Receiving push streams
 | 
						|
request.on('push', function(pushRequest) {
 | 
						|
  var filename = path.join(__dirname, '/push-' + push_count);
 | 
						|
  push_count += 1;
 | 
						|
  console.error('Receiving pushed resource: ' + pushRequest.url + ' -> ' + filename);
 | 
						|
  pushRequest.on('response', function(pushResponse) {
 | 
						|
    pushResponse.pipe(fs.createWriteStream(filename)).on('finish', finish);
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
// Quitting after both the response and the associated pushed resources have arrived
 | 
						|
var push_count = 0;
 | 
						|
var finished = 0;
 | 
						|
function finish() {
 | 
						|
  finished += 1;
 | 
						|
  if (finished === (1 + push_count)) {
 | 
						|
    process.exit();
 | 
						|
  }
 | 
						|
}
 |