mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
Give forward plugin its own folder. Should make it easier to clean it up.
This commit is contained in:
parent
035acec372
commit
100280db5a
3 changed files with 65 additions and 59 deletions
|
@ -3,19 +3,21 @@ var net = require('net')
|
|||
var Promise = require('bluebird')
|
||||
var syrup = require('syrup')
|
||||
|
||||
var wire = require('../../../wire')
|
||||
var logger = require('../../../util/logger')
|
||||
var lifecycle = require('../../../util/lifecycle')
|
||||
var streamutil = require('../../../util/streamutil')
|
||||
var forwardutil = require('../../../util/forwardutil')
|
||||
var wireutil = require('../../../wire/util')
|
||||
var wire = require('../../../../wire')
|
||||
var logger = require('../../../../util/logger')
|
||||
var lifecycle = require('../../../../util/lifecycle')
|
||||
var streamutil = require('../../../../util/streamutil')
|
||||
var wireutil = require('../../../../wire/util')
|
||||
|
||||
var ForwardReader = require('./util/reader')
|
||||
var ForwardWriter = require('./util/writer')
|
||||
|
||||
module.exports = syrup.serial()
|
||||
.dependency(require('../support/adb'))
|
||||
.dependency(require('../support/router'))
|
||||
.dependency(require('../support/push'))
|
||||
.dependency(require('../resources/minirev'))
|
||||
.dependency(require('./group'))
|
||||
.dependency(require('../../support/adb'))
|
||||
.dependency(require('../../support/router'))
|
||||
.dependency(require('../../support/push'))
|
||||
.dependency(require('../../resources/minirev'))
|
||||
.dependency(require('../group'))
|
||||
.define(function(options, adb, router, push, minirev, group) {
|
||||
var log = logger.createLogger('device:plugins:forward')
|
||||
var plugin = Object.create(null)
|
||||
|
@ -42,7 +44,7 @@ module.exports = syrup.serial()
|
|||
conn.removeListener('end', killListeners)
|
||||
}
|
||||
|
||||
var src = new forwardutil.ForwardWriter(fd)
|
||||
var src = new ForwardWriter(fd)
|
||||
.on('readable', maybeSend)
|
||||
.on('error', function(err) {
|
||||
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) {
|
||||
var proxy = proxies[fd]
|
||||
|
|
@ -2,18 +2,17 @@ var util = require('util')
|
|||
var stream = require('stream')
|
||||
|
||||
var HEADER_SIZE = 4
|
||||
var MAX_PACKET_SIZE = 0xFFFF
|
||||
|
||||
function ForwardParser() {
|
||||
function ForwardReader() {
|
||||
stream.Transform.call(this)
|
||||
this._header = new Buffer(4)
|
||||
this._header = new Buffer(HEADER_SIZE)
|
||||
this._needLength = -HEADER_SIZE
|
||||
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
|
||||
|
||||
while (cursor < chunk.length) {
|
||||
|
@ -73,44 +72,4 @@ ForwardParser.prototype._transform = function(chunk, encoding, done) {
|
|||
done()
|
||||
}
|
||||
|
||||
module.exports.ForwardParser = ForwardParser
|
||||
|
||||
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
|
||||
module.exports = ForwardReader
|
45
lib/units/device/plugins/forward/util/writer.js
Normal file
45
lib/units/device/plugins/forward/util/writer.js
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue