index.jsView |
---|
85 | 85 … | 'issue': true, |
86 | 86 … | 'pull-request': true |
87 | 87 … | } |
88 | 88 … | |
89 | | -var _httpServer |
90 | | - |
91 | 89 … | module.exports = { |
92 | 90 … | name: 'git-ssb-web', |
93 | 91 … | version: require('./package').version, |
94 | 92 … | manifest: {}, |
95 | | - init: function (ssb, config, reconnect) { |
96 | | - |
97 | | - |
98 | | - if (_httpServer) |
99 | | - _httpServer.close() |
100 | | - |
101 | | - var web = new GitSSBWeb(ssb, config, reconnect) |
102 | | - _httpSserver = web.httpServer |
103 | | - |
| 93 … | + init: function (ssb, config) { |
| 94 … | + var web = new GitSSBWeb(ssb, config) |
104 | 95 … | return {} |
105 | 96 … | } |
106 | 97 … | } |
107 | 98 … | |
108 | | -function GitSSBWeb(ssb, config, reconnect) { |
| 99 … | +function GitSSBWeb(ssb, config) { |
109 | 100 … | this.ssb = ssb |
110 | 101 … | this.config = config |
111 | | - this.reconnect = reconnect |
112 | 102 … | |
113 | 103 … | if (config.logging && config.logging.level) |
114 | 104 … | this.logLevel = this.logLevels.indexOf(config.logging.level) |
115 | 105 … | this.ssbAppname = config.appname || 'ssb' |
144 | 134 … | host: webConfig.host || 'localhost', |
145 | 135 … | port: webConfig.port || 7718 |
146 | 136 … | }) |
147 | 137 … | this.listen(addr.host, addr.port) |
| 138 … | + |
| 139 … | + this.monitorSsbClient() |
148 | 140 … | } |
149 | 141 … | |
150 | 142 … | var G = GitSSBWeb.prototype |
151 | 143 … | |
478 | 470 … | ]) |
479 | 471 … | } |
480 | 472 … | |
481 | 473 … | G.serveError = function (req, err, status) { |
482 | | - if (err.message == 'stream is closed') |
483 | | - this.reconnect && this.reconnect() |
484 | 474 … | return pull( |
485 | 475 … | pull.once(this.renderError(err, 'h2')), |
486 | 476 … | this.serveTemplate(req, err.name, status || 500) |
487 | 477 … | ) |
924 | 914 … | else |
925 | 915 … | id(null, cb) |
926 | 916 … | } |
927 | 917 … | } |
| 918 … | + |
| 919 … | +G.monitorSsbClient = function () { |
| 920 … | + pull( |
| 921 … | + function (abort, cb) { |
| 922 … | + if (abort) throw abort |
| 923 … | + |
| 924 … | + }, |
| 925 … | + this.ssb.gossip.ping(), |
| 926 … | + pull.drain(null, function (err) { |
| 927 … | + |
| 928 … | + if (err) console.error(err) |
| 929 … | + console.error('sbot client connection closed. aborting') |
|
| 930 … | + process.exit(1) |
| 931 … | + }) |
| 932 … | + ) |
| 933 … | +} |