feat: 초기 프로젝트 설정 및 룰.md 파일 추가
This commit is contained in:
48
api.hyungi.net/node_modules/js-git/net/transport-tcp.js
generated
vendored
Normal file
48
api.hyungi.net/node_modules/js-git/net/transport-tcp.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
|
||||
var makeChannel = require('culvert');
|
||||
var bodec = require('bodec');
|
||||
var pktLine = require('../lib/pkt-line');
|
||||
var wrapHandler = require('../lib/wrap-handler');
|
||||
|
||||
module.exports = function (connect) {
|
||||
|
||||
return function tcpTransport(path, host, port) {
|
||||
port = (port|0) || 9418;
|
||||
if (!path || !host) throw new Error("path and host are required");
|
||||
|
||||
return function (serviceName, onError) {
|
||||
|
||||
onData = wrapHandler(onData, onError);
|
||||
onDrain = wrapHandler(onDrain, onError);
|
||||
|
||||
var socket = connect(host, port, onError);
|
||||
var inter = makeChannel();
|
||||
inter.put = pktLine.deframer(inter.put);
|
||||
|
||||
socket.put = pktLine.framer(socket.put);
|
||||
var greeting = bodec.fromRaw(serviceName + " " + path + "\0host=" + host + "\0");
|
||||
socket.put(greeting);
|
||||
|
||||
// Pipe socket to inter with backpressure
|
||||
socket.take(onData);
|
||||
function onData(chunk) {
|
||||
if (inter.put(chunk)) {
|
||||
socket.take(onData);
|
||||
}
|
||||
else {
|
||||
inter.drain(onDrain);
|
||||
}
|
||||
}
|
||||
function onDrain() {
|
||||
socket.take(onData);
|
||||
}
|
||||
|
||||
return {
|
||||
put: socket.put,
|
||||
drain: socket.drain,
|
||||
take: inter.take
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user