From ce423f257e8ee7559d93f6218190782c3a2b1b5a Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Wed, 14 Aug 2024 14:43:50 +0200 Subject: [PATCH] uqmid: modem_tx: add tx_wds_stop_network() Signed-off-by: Alexander Couzens --- uqmid/modem_tx.c | 26 ++++++++++++++++++++++++++ uqmid/modem_tx.h | 2 ++ 2 files changed, 28 insertions(+) diff --git a/uqmid/modem_tx.c b/uqmid/modem_tx.c index fb51698..caf2072 100644 --- a/uqmid/modem_tx.c +++ b/uqmid/modem_tx.c @@ -185,6 +185,32 @@ int tx_wds_start_network(struct modem *modem, struct qmi_service *wds, request_c return uqmi_service_send_msg(wds, req); } +int tx_wds_stop_network(struct modem *modem, struct qmi_service *wds, request_cb cb, uint32_t *packet_data_handle, + bool *disable_autoconnect) +{ + struct qmi_request *req = talloc_zero(wds, struct qmi_request); + struct qmi_msg *msg = talloc_zero_size(req, 1024); + + struct qmi_wds_stop_network_request stop_req = {}; + + if (packet_data_handle) + qmi_set(&stop_req, packet_data_handle, *packet_data_handle); + + if (disable_autoconnect) + qmi_set(&stop_req, disable_autoconnect, *disable_autoconnect); + + int ret = qmi_set_wds_stop_network_request(msg, &stop_req); + if (ret) { + LOG_ERROR("Failed to encode start network request"); + return 1; + } + + req->msg = msg; + req->cb = cb; + req->cb_data = modem; + return uqmi_service_send_msg(wds, req); +} + int tx_wds_get_current_settings(struct modem *modem, struct qmi_service *wds, request_cb cb) { struct qmi_request *req = talloc_zero(wds, struct qmi_request); diff --git a/uqmid/modem_tx.h b/uqmid/modem_tx.h index 5ef3615..17a30ea 100644 --- a/uqmid/modem_tx.h +++ b/uqmid/modem_tx.h @@ -18,6 +18,8 @@ int tx_wds_modify_profile(struct modem *modem, struct qmi_service *wds, request_ uint8_t pdp_type, const char *username, const char *password); int tx_wds_start_network(struct modem *modem, struct qmi_service *wds, request_cb cb, uint8_t profile_idx, uint8_t ip_family); +int tx_wds_stop_network(struct modem *modem, struct qmi_service *wds, request_cb cb, uint32_t *packet_data_handle, + bool *disable_autoconnect); int tx_wds_get_current_settings(struct modem *modem, struct qmi_service *wds, request_cb cb); #endif /* __UQMID_MODEM_TX_H */ -- 2.30.2