diff options
| author | mojganii <mojgan.jelodar@codic.se> | 2025-03-26 15:24:08 +0100 |
|---|---|---|
| committer | mojganii <mojgan.jelodar@codic.se> | 2025-04-15 15:38:45 +0200 |
| commit | 4f52ef7f5f4072ff53d1ddc1f358cbf3e35a6d14 (patch) | |
| tree | 610ce7ffe5e27b92bd4621e63e0e000a453ff802 /ios/MullvadRustRuntime | |
| parent | f8aeeb42fa5cc7f1cc428bb4b34cb8d5de09bb51 (diff) | |
| download | mullvadvpn-4f52ef7f5f4072ff53d1ddc1f358cbf3e35a6d14.tar.xz mullvadvpn-4f52ef7f5f4072ff53d1ddc1f358cbf3e35a6d14.zip | |
Add metadata support to send problem report
Diffstat (limited to 'ios/MullvadRustRuntime')
| -rw-r--r-- | ios/MullvadRustRuntime/MullvadApiCancellable.swift | 5 | ||||
| -rw-r--r-- | ios/MullvadRustRuntime/include/mullvad_rust_runtime.h | 17 |
2 files changed, 20 insertions, 2 deletions
diff --git a/ios/MullvadRustRuntime/MullvadApiCancellable.swift b/ios/MullvadRustRuntime/MullvadApiCancellable.swift index 6c76bc3c14..3c7c184096 100644 --- a/ios/MullvadRustRuntime/MullvadApiCancellable.swift +++ b/ios/MullvadRustRuntime/MullvadApiCancellable.swift @@ -10,12 +10,15 @@ import MullvadTypes public class MullvadApiCancellable: Cancellable { private let handle: SwiftCancelHandle + private let deinitializer: (() -> Void)? - public init(handle: consuming SwiftCancelHandle) { + public init(handle: consuming SwiftCancelHandle, deinitializer: (() -> Void)? = nil) { self.handle = handle + self.deinitializer = deinitializer } deinit { + deinitializer?() mullvad_api_cancel_task_drop(handle) } diff --git a/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h b/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h index 77dac6b4da..958144c802 100644 --- a/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h +++ b/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h @@ -24,6 +24,8 @@ typedef struct EncryptedDnsProxyState EncryptedDnsProxyState; typedef struct ExchangeCancelToken ExchangeCancelToken; +typedef struct Map Map; + typedef struct RequestCancelHandle RequestCancelHandle; typedef struct RetryStrategy RetryStrategy; @@ -54,6 +56,10 @@ typedef struct CompletionCookie { void *inner; } CompletionCookie; +typedef struct ProblemReportMetadata { + struct Map *inner; +} ProblemReportMetadata; + typedef struct SwiftProblemReportRequest { const uint8_t *address; uintptr_t address_len; @@ -61,6 +67,7 @@ typedef struct SwiftProblemReportRequest { uintptr_t message_len; const uint8_t *log; uintptr_t log_len; + struct ProblemReportMetadata meta_data; } SwiftProblemReportRequest; typedef struct ProxyHandle { @@ -270,7 +277,15 @@ struct SwiftRetryStrategy mullvad_api_retry_strategy_exponential(uintptr_t max_r struct SwiftCancelHandle mullvad_api_send_problem_report(struct SwiftApiContext api_context, void *completion_cookie, struct SwiftRetryStrategy retry_strategy, - const struct SwiftProblemReportRequest *request); + struct SwiftProblemReportRequest request); + +struct ProblemReportMetadata swift_problem_report_meta_data_new(void); + +bool swift_problem_report_meta_data_add(struct ProblemReportMetadata map, + const char *key, + const char *value); + +void swift_problem_report_meta_data_free(struct ProblemReportMetadata map); /** * Initializes a valid pointer to an instance of `EncryptedDnsProxyState`. |
