]>
Commit | Line | Data |
---|---|---|
69818c93 C |
1 | import 'express-validator' |
2 | import * as express from 'express' | |
3 | ||
e02643f3 | 4 | import { REMOTE_SCHEME } from '../initializers' |
1ab844d8 | 5 | |
69818c93 | 6 | function setBodyHostsPort (req: express.Request, res: express.Response, next: express.NextFunction) { |
b09ce645 C |
7 | if (!req.body.hosts) return next() |
8 | ||
49abbbbe C |
9 | for (let i = 0; i < req.body.hosts.length; i++) { |
10 | const hostWithPort = getHostWithPort(req.body.hosts[i]) | |
1ab844d8 C |
11 | |
12 | // Problem with the url parsing? | |
49abbbbe | 13 | if (hostWithPort === null) { |
1ab844d8 C |
14 | return res.sendStatus(500) |
15 | } | |
16 | ||
49abbbbe | 17 | req.body.hosts[i] = hostWithPort |
1ab844d8 C |
18 | } |
19 | ||
20 | return next() | |
21 | } | |
22 | ||
1ab844d8 C |
23 | // --------------------------------------------------------------------------- |
24 | ||
65fcc311 | 25 | export { |
d4f1e94c | 26 | setBodyHostsPort |
65fcc311 | 27 | } |
1ab844d8 C |
28 | |
29 | // --------------------------------------------------------------------------- | |
30 | ||
69818c93 | 31 | function getHostWithPort (host: string) { |
49abbbbe C |
32 | const splitted = host.split(':') |
33 | ||
49abbbbe C |
34 | // The port was not specified |
35 | if (splitted.length === 1) { | |
e02643f3 | 36 | if (REMOTE_SCHEME.HTTP === 'https') return host + ':443' |
49abbbbe C |
37 | |
38 | return host + ':80' | |
1ab844d8 C |
39 | } |
40 | ||
49abbbbe | 41 | return host |
1ab844d8 | 42 | } |