|
9 | 9 |
|
10 | 10 | // node libs |
11 | 11 | const fs = require('fs'); |
12 | | -const fsp = require('fs/promises'); |
| 12 | +const fsp = fs.promises; |
13 | 13 | const http = require('http'); |
14 | 14 | const url = require('url'); |
15 | 15 | const zlib = require('zlib'); |
@@ -969,14 +969,17 @@ const querystring_parse = (querystring, result) => { |
969 | 969 |
|
970 | 970 | const request_handle = async (request, response, https) => { |
971 | 971 | const request_method = request.method; |
| 972 | + const request_method_head = request_method === 'HEAD'; |
972 | 973 | const request_headers = request.headers; |
973 | 974 | const request_ip = ( |
974 | | - request_headers['x-forwarded-for'] |
975 | | - ?.split(HTTP_LIST_REG) |
976 | | - .findLast(addr => !IPS_PRIVATE.test(addr)) || |
| 975 | + ('x-forwarded-for' in request_headers) && ( |
| 976 | + request_headers['x-forwarded-for'] |
| 977 | + .split(HTTP_LIST_REG) |
| 978 | + .reverse() |
| 979 | + .find(addr => !IPS_PRIVATE.test(addr)) |
| 980 | + ) || |
977 | 981 | request.socket.remoteAddress |
978 | 982 | ); |
979 | | - const request_method_head = request_method === 'HEAD'; |
980 | 983 |
|
981 | 984 | if ('x-forwarded-proto' in request_headers) { |
982 | 985 | https = request_headers['x-forwarded-proto'] === 'https'; |
@@ -1076,7 +1079,7 @@ const request_handle = async (request, response, https) => { |
1076 | 1079 | ) { |
1077 | 1080 | if (!file_dyn_enabled) throw 405; |
1078 | 1081 | if ('content-length' in request_headers) { |
1079 | | - const content_length = Number(request_headers['content-length']); |
| 1082 | + const content_length = parseInt(request_headers['content-length']); |
1080 | 1083 | if ( |
1081 | 1084 | isNaN(content_length) || |
1082 | 1085 | content_length < 0 || |
@@ -1698,7 +1701,7 @@ process.on('SIGTERM', actions.exit); |
1698 | 1701 | log(`rtjscomp v${ |
1699 | 1702 | VERSION |
1700 | 1703 | } in ${ |
1701 | | - IS_BUN ? 'bun' : 'node' |
| 1704 | + IS_BUN ? 'bun v' + Bun.version : 'node ' + process.version |
1702 | 1705 | } on ${ |
1703 | 1706 | process.platform |
1704 | 1707 | .replace('win32', 'windows') |
@@ -1787,13 +1790,13 @@ await file_keep_new(PATH_CONFIG + 'init.js', async data => { |
1787 | 1790 | json['path_aliases'] = parse_old_map(old_path_aliases); |
1788 | 1791 | } |
1789 | 1792 | if (old_port_http) { |
1790 | | - const number = Number(old_port_http); |
| 1793 | + const number = parseInt(old_port_http); |
1791 | 1794 | if (!isNaN(number)) { |
1792 | 1795 | json['port_http'] = number; |
1793 | 1796 | } |
1794 | 1797 | } |
1795 | 1798 | if (old_port_https) { |
1796 | | - const number = Number(old_port_https); |
| 1799 | + const number = parseInt(old_port_https); |
1797 | 1800 | if (!isNaN(number)) { |
1798 | 1801 | json['port_https'] = number; |
1799 | 1802 | } |
|
0 commit comments