some adverts don't contain lat/lon, etc

This commit is contained in:
Ben Menking
2026-05-29 13:26:54 -04:00
parent c4b2a5274a
commit 6f9080068b
+2 -5
View File
@@ -105,20 +105,17 @@ class CoreParser {
$m->pub_key = base64_encode(substr($payload, 1, CoreProtocol::PUB_KEY_SIZE));
if( strlen($payload) > CoreProtocol::PUB_KEY_SIZE + 2 ) {
try {
$m->type = ord($payload[33]);
$m->flags = ord($payload[34]);
$m->out_path = substr($payload, 35, CoreProtocol::MAX_PATH_SIZE);
$m->name = substr($payload, 99, 32);
if( strlen($payload) > 204 ) {
$m->last_advert_time = unpack('V', substr($payload, 203, 4))[1];
$m->lat = unpack('V', substr($payload, 207, 4))[1];
$m->lon = unpack('V', substr($payload, 211, 4))[1];
$m->last_mod = unpack('V', substr($payload, 215, 4))[1];
}
catch(\Throwable $t) {
// hidden problem? packet wasn't long enough so we'll just be missing data i suppose
error_log("Tried to decode Advert but packet too small. Packet size: " . strlen($payload) . " and expected 215..");
}
}
return $m;