| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- // Generated by IcedCoffeeScript 1.7.1-c
- (function() {
- var E, HKPLoopback, env, http, iced, log, reqmod, urlmod, __iced_k, __iced_k_noop;
- iced = require('iced-runtime').iced;
- __iced_k = __iced_k_noop = function() {};
- http = require('http');
- env = require('./env').env;
- reqmod = require('./req');
- log = require('./log');
- E = require('./env').E;
- urlmod = require('url');
- exports.HKPLoopback = HKPLoopback = (function() {
- function HKPLoopback() {
- this._srv = http.createServer(this.serve.bind(this));
- this._port = null;
- this._hostname = "127.0.0.1";
- }
- HKPLoopback.prototype.url = function() {
- return "hkp://" + this._hostname + ":" + this._port + "/";
- };
- HKPLoopback.prototype.listen = function(cb) {
- var err, p, r, ___iced_passed_deferral, __iced_deferrals, __iced_k, _begin, _end, _positive;
- __iced_k = __iced_k_noop;
- ___iced_passed_deferral = iced.findDeferral(arguments);
- log.debug("+ HKPLoopback::init; hunt for a port");
- r = env().get_loopback_port_range();
- (function(_this) {
- return (function(__iced_k) {
- var _i, _results, _while;
- p = r[0];
- _begin = r[0];
- _end = r[1];
- _positive = _end > _begin;
- _results = [];
- _while = function(__iced_k) {
- var _break, _continue, _next;
- _break = function() {
- return __iced_k(_results);
- };
- _continue = function() {
- return iced.trampoline(function() {
- if (_positive) {
- p += 1;
- } else {
- p -= 1;
- }
- return _while(__iced_k);
- });
- };
- _next = function(__iced_next_arg) {
- _results.push(__iced_next_arg);
- return _continue();
- };
- if (!!((_positive === true && p > r[1]) || (_positive === false && p < r[1]))) {
- return _break();
- } else {
- (function(__iced_k) {
- __iced_deferrals = new iced.Deferrals(__iced_k, {
- parent: ___iced_passed_deferral,
- filename: "/Users/max/src/keybase/node-client/src/hkp_loopback.iced",
- funcname: "HKPLoopback.listen"
- });
- _this._srv.listen(p, _this._hostname, __iced_deferrals.defer({
- assign_fn: (function() {
- return function() {
- return err = arguments[0];
- };
- })(),
- lineno: 23
- }));
- __iced_deferrals._fulfill();
- })(function() {
- (function(__iced_k) {
- if (err == null) {
- log.debug("| found " + p);
- _this._port = p;
- (function(__iced_k) {
- _break()
- })(__iced_k);
- } else {
- return __iced_k();
- }
- })(_next);
- });
- }
- };
- _while(__iced_k);
- });
- })(this)((function(_this) {
- return function() {
- err = _this._port != null ? null : new E.LoopbackError("no available ports found");
- log.debug("- HKPLoopback::init -> " + err);
- return cb(err);
- };
- })(this));
- };
- HKPLoopback.prototype.serve = function(req, res) {
- var body, err, gres, inurl, opts, u, ___iced_passed_deferral, __iced_deferrals, __iced_k;
- __iced_k = __iced_k_noop;
- ___iced_passed_deferral = iced.findDeferral(arguments);
- u = req.url;
- log.debug("+ Incoming HKP request on loopback :" + this._port + ": " + u);
- inurl = urlmod.parse(u);
- opts = {
- json: false,
- jar: false,
- pathname: inurl.pathname,
- search: inurl.search
- };
- (function(_this) {
- return (function(__iced_k) {
- __iced_deferrals = new iced.Deferrals(__iced_k, {
- parent: ___iced_passed_deferral,
- filename: "/Users/max/src/keybase/node-client/src/hkp_loopback.iced",
- funcname: "HKPLoopback.serve"
- });
- reqmod.get(opts, __iced_deferrals.defer({
- assign_fn: (function() {
- return function() {
- err = arguments[0];
- body = arguments[1];
- return gres = arguments[2];
- };
- })(),
- lineno: 41
- }));
- __iced_deferrals._fulfill();
- });
- })(this)((function(_this) {
- return function() {
- gres.headers['connection'] = 'close';
- res.writeHead(gres.statusCode, gres.headers);
- res.write(gres.body);
- log.debug("- Replied to loopback request w/ status=" + gres.statusCode);
- return res.end();
- };
- })(this));
- };
- HKPLoopback.prototype.close = function(cb) {
- var ___iced_passed_deferral, __iced_deferrals, __iced_k;
- __iced_k = __iced_k_noop;
- ___iced_passed_deferral = iced.findDeferral(arguments);
- (function(_this) {
- return (function(__iced_k) {
- if (_this._srv != null) {
- (function(__iced_k) {
- __iced_deferrals = new iced.Deferrals(__iced_k, {
- parent: ___iced_passed_deferral,
- filename: "/Users/max/src/keybase/node-client/src/hkp_loopback.iced",
- funcname: "HKPLoopback.close"
- });
- _this._srv.close(__iced_deferrals.defer({
- lineno: 50
- }));
- __iced_deferrals._fulfill();
- })(__iced_k);
- } else {
- return __iced_k();
- }
- });
- })(this)((function(_this) {
- return function() {
- return cb(null);
- };
- })(this));
- };
- return HKPLoopback;
- })();
- }).call(this);
|