diff --git a/templates/status.html b/templates/status.html index 112a729..2cc283e 100644 --- a/templates/status.html +++ b/templates/status.html @@ -35,8 +35,8 @@ Connected Peers function ipToNumber(ip) { // Extract IP from formats like "10.9.0.132/32" or "99.92.101.230:56078" - const match = ip.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/); - if (!match) return 0; + const match = (ip || '').trim().match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/); + if (!match) return null; // Empty/invalid IPs will be sorted to bottom return (parseInt(match[1]) << 24) + (parseInt(match[2]) << 16) + (parseInt(match[3]) << 8) + parseInt(match[4]); } @@ -66,6 +66,11 @@ Connected Peers const aValue = getSortValue(a.cells[columnIndex], sortType); const bValue = getSortValue(b.cells[columnIndex], sortType); + // Push null/empty values to bottom regardless of sort direction + if (aValue === null && bValue === null) return 0; + if (aValue === null) return 1; + if (bValue === null) return -1; + let comparison = 0; if (sortType === 'text') { comparison = aValue.localeCompare(bValue);