better code
Massimo Melina committed
Apr 25, 2022 at 19:02 UTC
0b68c70a1faeb25e7bfb9dbcdd1e2d67703ad54e
2 files changed
+5
-5
server/src/adminApis.ts
+1
-1
@@ -57,7 +57,7 @@ export const adminApis: ApiHandlers = {
57
urls: getUrls(),
58
proxyDetected: getProxyDetected(),
59
frpDetected: getConfig('localhost_admin') && !getProxyDetected()
60
- && getConnections().every(c => isLocalHost(c.ctx || c.socket.remoteAddress || ''))
60
+ && getConnections().every(isLocalHost)
61
&& await frpDebounced(),
62
}
63
server/src/misc.ts
+4
-4
@@ -10,6 +10,7 @@ import Koa from 'koa'
10
import glob from 'fast-glob'
11
import { IS_WINDOWS } from './const'
12
import { execFile } from 'child_process'
13
+import { Connection } from './connections'
14
15
export type Callback<IN=void, OUT=void> = (x:IN) => OUT
16
export type Dict<T = any> = Record<string, T>
@@ -239,10 +240,9 @@ export function with_<T,RT>(par:T, cb: (par:T) => RT) {
240
return cb(par)
241
}
242
242
-export function isLocalHost(s: string | Koa.Context) {
243
- if (typeof s !== 'string')
244
- s = s.socket.remoteAddress || '' // don't use .ip as it is subject to proxied ips
245
- return s === '127.0.0.1' || s === '::1' || s === '::ffff:127.0.0.1'
243
+export function isLocalHost(c: Connection | Koa.Context) {
244
+ const ip = c.socket.remoteAddress // don't use Context.ip as it is subject to proxied ips, and that's no use for localhost detection
245
+ return ip && (ip === '::1' || ip.endsWith('127.0.0.1'))
246
}
247
248
export async function* dirStream(path: string) {