Skip to content

Commit 2ab581e

Browse files
committed
feat: ssl handling improvements
1 parent 867f85e commit 2ab581e

1 file changed

Lines changed: 36 additions & 5 deletions

File tree

dadi/lib/index.js

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,23 @@ Server.prototype.start = function (done) {
110110

111111
controller(router)
112112

113+
var redirectInstance
114+
var redirectServer
115+
var redirectPort = config.get('server.redirectPort')
116+
if (redirectPort > 0) {
117+
redirectInstance = http.createServer((req, res) => {
118+
var port = config.get('server.port')
119+
var hostname = req.headers.host.split(':')[0]
120+
var location = 'https://' + hostname + ':' + port + req.url
121+
122+
res.setHeader('Location', location)
123+
res.statusCode = 301
124+
res.end()
125+
})
126+
redirectServer = this.redirectServer = redirectInstance.listen(redirectPort)
127+
redirectServer.on('listening', function () { onRedirectListening(this) })
128+
}
129+
113130
var app = createServer((req, res) => {
114131
config.updateConfigDataForDomain(req.headers.host)
115132

@@ -153,9 +170,11 @@ Server.prototype.start = function (done) {
153170
}
154171

155172
function createServer (listener) {
156-
var protocol = config.get('server.protocol') || 'http'
173+
var protocol = config.get('server.protocol')
157174

158-
if (protocol === 'https') {
175+
if (protocol === 'http') {
176+
return http.createServer(listener)
177+
} else if (protocol === 'https') {
159178
var readFileSyncSafe = (path) => {
160179
try {
161180
return fs.readFileSync(path)
@@ -203,9 +222,6 @@ function createServer (listener) {
203222
throw new Error(exPrefix + ex.message)
204223
}
205224
}
206-
} else {
207-
// default to http
208-
return http.createServer(listener)
209225
}
210226
}
211227

@@ -229,6 +245,21 @@ function onListening (server) {
229245
}
230246
}
231247

248+
function onRedirectListening (server) {
249+
var env = config.get('env')
250+
var address = server.address()
251+
252+
if (env !== 'test') {
253+
var startText = '\n ----------------------------\n'
254+
startText += " Started HTTP -> HTTPS Redirect\n"
255+
startText += ' ----------------------------\n'
256+
startText += ' Server: '.green + address.address + ':' + address.port + '\n'
257+
startText += ' ----------------------------\n'
258+
259+
console.log(startText)
260+
}
261+
}
262+
232263
function onStatusListening (server) {
233264
var env = config.get('env')
234265
var address = server.address()

0 commit comments

Comments
 (0)