diff --git a/dongle_infrastructure.c b/dongle_infrastructure.c
index 76d9c5dc06070f593952b19c75e776c05554901c..c2632ce128daacf58f66fe40948b785729af94cb 100644
--- a/dongle_infrastructure.c
+++ b/dongle_infrastructure.c
@@ -297,6 +297,21 @@ fail_unknown:
return UBUS_STATUS_UNKNOWN_ERROR;
}
+int get_pin_status(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
+{
+ struct json_object *response;
+
+ response = mobile_get_pin_status(global_dev);
+ if (!response)
+ goto fail_unknown;
+
+ return print_to_ubus(response, ctx, req);
+fail_unknown:
+ return UBUS_STATUS_UNKNOWN_ERROR;
+}
+
int unlock_sim(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
@@ -587,13 +602,14 @@ struct ubus_method dynamic_object_methods[] = {
UBUS_METHOD("enable_pin", enable_pin, pin_policy),
UBUS_METHOD("verify_pin", verify_pin, pin_policy),
UBUS_METHOD_NOARG("remaining_tries", remaining_tries),
+ UBUS_METHOD_NOARG("pin_status", get_pin_status),
UBUS_METHOD("unlock_sim", unlock_sim, unlock_policy),
- UBUS_METHOD_NOARG("list_apn_profiles", list_apn_profiles), //apn
+ UBUS_METHOD_NOARG("list_apn_profiles", list_apn_profiles), //apn
UBUS_METHOD("create_apn_profiles", create_apn_profile, create_apn_policy),
UBUS_METHOD("delete_apn_profile", delete_apn_profile, apn_policy),
UBUS_METHOD("set_apn_profile", set_apn_profile, apn_policy),
UBUS_METHOD_NOARG("current_apn_profile", show_current_apn),
- UBUS_METHOD_NOARG("signal_strength", get_signal_strength), //network..
+ UBUS_METHOD_NOARG("signal_strength", get_signal_strength), //network..
UBUS_METHOD_NOARG("connect_network", connect_network),
UBUS_METHOD_NOARG("disconnect_network", disconnect_network),
UBUS_METHOD_NOARG("modem_state", modem_state),