Skip to content

Commit 6ff539c

Browse files
authored
rel: 4.0.14 (#50)
1 parent 9d86d38 commit 6ff539c

File tree

6 files changed

+23
-19
lines changed

6 files changed

+23
-19
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Changelog
22

3-
## [4.0.12] 2025-04-14
3+
## [4.0.14] 2025-04-14
44

55
- Added `--ls-hack-bad-transaction-initiator` to bypass incorrect location server behaviour
6+
- Added logging when sending or receive LPP message
67

78
## [4.0.11] 2025-04-07
89

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ include(cmake/compiler.cmake)
1212
include(cmake/target.cmake)
1313

1414
add_definitions(-D_POSIX_C_SOURCE=200809L)
15-
add_definitions(-DCLIENT_VERSION="4.0.13")
16-
add_definitions(-DCLIENT_VERSION_INT=0x04000D)
15+
add_definitions(-DCLIENT_VERSION="4.0.14")
16+
add_definitions(-DCLIENT_VERSION_INT=0x04000E)
1717

1818
find_package(Threads REQUIRED)
1919

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SUPL 3GPP LPP client
22

3-
![version](https://img.shields.io/badge/version-4.0.13-green)
3+
![version](https://img.shields.io/badge/version-4.0.14-green)
44
![license](https://img.shields.io/badge/license-MXM-blue)
55

66
A comprehensive toolkit for developing 3GPP LPP (LTE Positioning Protocol) clients. This project provides libraries and tools for handling SUPL (Secure User Plane Location) communication and various positioning-related message conversions.

dependency/lpp/periodic_session/handler.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,21 @@ void PeriodicSession::message(TransactionHandle const& transaction, Message mess
7272
// doesn't match one in the mRequestTransactions.
7373
if (mHackBadTransactionInitiator) {
7474
if (transaction.initiator() == Initiator::LocationServer) {
75-
WARNF("HACK: bad transaction initiator: %s", transaction.to_string().c_str());
76-
auto corrected_transaction = TransactionHandle{
77-
mSession, transaction.id(), transaction.generation_id(), Initiator::TargetDevice};
78-
79-
auto rit = mRequestTransactions.find(corrected_transaction);
80-
if (rit != mRequestTransactions.end()) {
81-
handle_request_response(corrected_transaction, std::move(message));
82-
83-
// To actuall stop the request timeout, we to simulate PeriodicSession::end for the
84-
// correction transaction. If the location server doesn't indicate that the
85-
// transaction has ended - which would be weird - then this is technically
86-
// incorrect. However, this is already a hack...
87-
end(corrected_transaction);
88-
return;
75+
for (auto& [t, m] : mRequestTransactions) {
76+
auto corrected_transaction = TransactionHandle{t};
77+
if (corrected_transaction.initiator() == Initiator::TargetDevice &&
78+
corrected_transaction.id() == transaction.id()) {
79+
WARNF("HACK: bad transaction initiator: %s", transaction.to_string().c_str());
80+
handle_request_response(corrected_transaction, std::move(message));
81+
82+
// To actuall stop the request timeout, we to simulate PeriodicSession::end for
83+
// the correction transaction. If the location server doesn't indicate that the
84+
// transaction has ended - which would be weird - then this is technically
85+
// incorrect. However, this is already a hack...
86+
end(corrected_transaction);
87+
return; // NOTE: 'end' will modify mRequestTransactions, not return and
88+
// continuing to use the loop is bad
89+
}
8990
}
9091
}
9192
}

dependency/lpp/session.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,7 @@ void Session::send(TransactionHandle const& handle, Message& message) {
559559
return;
560560
}
561561

562+
DEBUGF("send message %s", handle.to_string().c_str());
562563
XVERBOSEF(&LOGLET_MODULE_REF2(lpp, print), "send:\n%s",
563564
encode_lpp_message_xer(message).c_str());
564565

@@ -704,6 +705,7 @@ void Session::process_lpp_payload(supl::Payload const& payload) {
704705

705706
auto& transaction = *transaction_ptr;
706707
auto handle = transaction.handle;
708+
DEBUGF("recv message %s", handle.to_string().c_str());
707709
if (on_message) {
708710
on_message(*this, handle, std::move(message));
709711
}

dependency/time/include/time/timestamp.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ struct TimePoint {
9999
class LeapSeconds {
100100
public:
101101
NODISCARD static int64_t count() {
102-
#define LAST_UPDATE_CHECKED 0x04000D
102+
#define LAST_UPDATE_CHECKED 0x04000E
103103
#ifndef CLIENT_VERSION_INT
104104
#error "Please define CLIENT_VERSION_INT"
105105
#endif

0 commit comments

Comments
 (0)