fix ip processing bug: ip was sometimes an array

This commit is contained in:
Evan
2024-12-30 13:24:09 -08:00
committed by evanpelle
parent 843a1186ce
commit 0b8950f4bc
2 changed files with 16 additions and 17 deletions
-2
View File
@@ -166,10 +166,8 @@ function anonymizeIPv6(ipv6: string): string | null {
}
function anonymizeIP(ip: string): string | null {
console.log(`anonymize got ip: ${ip}`)
const ipv4Result = anonymizeIPv4(ip);
if (ipv4Result) {
console.log(`got ipv4 result: ${ipv4Result}`)
return ipv4Result;
}
+16 -15
View File
@@ -122,19 +122,19 @@ app.get('/private_lobby/:id', (req, res) => {
wss.on('connection', (ws, req) => {
ws.on('message', (message: string) => {
const clientMsg: ClientMessage = ClientMessageSchema.parse(JSON.parse(message))
slog({
logKey: 'websocket_msg',
msg: 'server received websocket message',
data: clientMsg,
severity: LogSeverity.Debug
})
if (clientMsg.type == "join") {
const forwarded = req.headers['x-forwarded-for']
const ip = Array.isArray(forwarded)
? forwarded[0] // Get the first IP if it's an array
: forwarded || req.socket.remoteAddress;
try {
const clientMsg: ClientMessage = ClientMessageSchema.parse(JSON.parse(message))
slog({
logKey: 'websocket_msg',
msg: 'server received websocket message',
data: clientMsg,
severity: LogSeverity.Debug
})
if (clientMsg.type == "join") {
const forwarded = req.headers['x-forwarded-for']
const ip = Array.isArray(forwarded)
? forwarded[0] // Get the first IP if it's an array
: forwarded || req.socket.remoteAddress;
const username = clientMsg.username;
const { isValid, error } = validateUsername(username);
if (!isValid) {
@@ -147,8 +147,9 @@ wss.on('connection', (ws, req) => {
}));
return;
}
// If username is valid, add the client
if (Array.isArray(ip)) {
ip = ip[0]
}
gm.addClient(
new Client(
clientMsg.clientID,