1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 18:29:17 +02:00

Give forward plugin its own folder. Should make it easier to clean it up.

This commit is contained in:
Simo Kinnunen 2014-10-14 16:24:18 +09:00
parent 035acec372
commit 100280db5a
3 changed files with 65 additions and 59 deletions

View file

@ -3,19 +3,21 @@ var net = require('net')
var Promise = require('bluebird') var Promise = require('bluebird')
var syrup = require('syrup') var syrup = require('syrup')
var wire = require('../../../wire') var wire = require('../../../../wire')
var logger = require('../../../util/logger') var logger = require('../../../../util/logger')
var lifecycle = require('../../../util/lifecycle') var lifecycle = require('../../../../util/lifecycle')
var streamutil = require('../../../util/streamutil') var streamutil = require('../../../../util/streamutil')
var forwardutil = require('../../../util/forwardutil') var wireutil = require('../../../../wire/util')
var wireutil = require('../../../wire/util')
var ForwardReader = require('./util/reader')
var ForwardWriter = require('./util/writer')
module.exports = syrup.serial() module.exports = syrup.serial()
.dependency(require('../support/adb')) .dependency(require('../../support/adb'))
.dependency(require('../support/router')) .dependency(require('../../support/router'))
.dependency(require('../support/push')) .dependency(require('../../support/push'))
.dependency(require('../resources/minirev')) .dependency(require('../../resources/minirev'))
.dependency(require('./group')) .dependency(require('../group'))
.define(function(options, adb, router, push, minirev, group) { .define(function(options, adb, router, push, minirev, group) {
var log = logger.createLogger('device:plugins:forward') var log = logger.createLogger('device:plugins:forward')
var plugin = Object.create(null) var plugin = Object.create(null)
@ -42,7 +44,7 @@ module.exports = syrup.serial()
conn.removeListener('end', killListeners) conn.removeListener('end', killListeners)
} }
var src = new forwardutil.ForwardWriter(fd) var src = new ForwardWriter(fd)
.on('readable', maybeSend) .on('readable', maybeSend)
.on('error', function(err) { .on('error', function(err) {
log.error('Proxy writer %d had an error', fd, to, err.stack) log.error('Proxy writer %d had an error', fd, to, err.stack)
@ -67,7 +69,7 @@ module.exports = syrup.serial()
} }
} }
conn.pipe(new forwardutil.ForwardParser()) conn.pipe(new ForwardReader())
.on('packet', function(fd, packet) { .on('packet', function(fd, packet) {
var proxy = proxies[fd] var proxy = proxies[fd]

View file

@ -2,18 +2,17 @@ var util = require('util')
var stream = require('stream') var stream = require('stream')
var HEADER_SIZE = 4 var HEADER_SIZE = 4
var MAX_PACKET_SIZE = 0xFFFF
function ForwardParser() { function ForwardReader() {
stream.Transform.call(this) stream.Transform.call(this)
this._header = new Buffer(4) this._header = new Buffer(HEADER_SIZE)
this._needLength = -HEADER_SIZE this._needLength = -HEADER_SIZE
this._target = 0 this._target = 0
} }
util.inherits(ForwardParser, stream.Transform) util.inherits(ForwardReader, stream.Transform)
ForwardParser.prototype._transform = function(chunk, encoding, done) { ForwardReader.prototype._transform = function(chunk, encoding, done) {
var cursor = 0 var cursor = 0
while (cursor < chunk.length) { while (cursor < chunk.length) {
@ -73,44 +72,4 @@ ForwardParser.prototype._transform = function(chunk, encoding, done) {
done() done()
} }
module.exports.ForwardParser = ForwardParser module.exports = ForwardReader
function ForwardWriter(target) {
stream.Transform.call(this)
this._target = target
}
util.inherits(ForwardWriter, stream.Transform)
ForwardWriter.prototype._transform = function(chunk, encoding, done) {
var header
, length
do {
length = Math.min(MAX_PACKET_SIZE, chunk.length)
header = new Buffer(HEADER_SIZE)
header.writeUInt16LE(this._target, 0)
header.writeUInt16LE(length, 2)
this.push(header)
this.push(chunk.slice(0, length))
chunk = chunk.slice(length)
}
while (chunk.length)
done()
}
ForwardWriter.prototype._flush = function(done) {
var header = new Buffer(HEADER_SIZE)
header.writeUInt16LE(this._target, 0)
header.writeUInt16LE(0, 2)
this.push(header)
done()
}
module.exports.ForwardWriter = ForwardWriter

View file

@ -0,0 +1,45 @@
var util = require('util')
var stream = require('stream')
var HEADER_SIZE = 4
var MAX_PACKET_SIZE = 0xFFFF
function ForwardWriter(target) {
stream.Transform.call(this)
this._target = target
}
util.inherits(ForwardWriter, stream.Transform)
ForwardWriter.prototype._transform = function(chunk, encoding, done) {
var header
, length
do {
length = Math.min(MAX_PACKET_SIZE, chunk.length)
header = new Buffer(HEADER_SIZE)
header.writeUInt16LE(this._target, 0)
header.writeUInt16LE(length, 2)
this.push(header)
this.push(chunk.slice(0, length))
chunk = chunk.slice(length)
}
while (chunk.length)
done()
}
ForwardWriter.prototype._flush = function(done) {
var header = new Buffer(HEADER_SIZE)
header.writeUInt16LE(this._target, 0)
header.writeUInt16LE(0, 2)
this.push(header)
done()
}
module.exports = ForwardWriter