mirror of git://git.sysmocom.de/ofono
Emit LockedPins after pin_type is queried
Fixes property change not being emited when hot-swapping a PIN-enabled card.
This commit is contained in:
parent
4677729502
commit
eebe2f3ac2
22
src/sim.c
22
src/sim.c
|
@ -2740,6 +2740,10 @@ static void sim_pin_query_cb(const struct ofono_error *error,
|
||||||
DBusConnection *conn = ofono_dbus_get_connection();
|
DBusConnection *conn = ofono_dbus_get_connection();
|
||||||
const char *path = __ofono_atom_get_path(sim->atom);
|
const char *path = __ofono_atom_get_path(sim->atom);
|
||||||
const char *pin_name;
|
const char *pin_name;
|
||||||
|
char **locked_pins;
|
||||||
|
gboolean lock_changed;
|
||||||
|
|
||||||
|
DBG("sim->pin_type: %d, pin_type: %d", sim->pin_type, pin_type);
|
||||||
|
|
||||||
if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
|
if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
|
||||||
ofono_error("Querying PIN authentication state failed");
|
ofono_error("Querying PIN authentication state failed");
|
||||||
|
@ -2754,9 +2758,25 @@ static void sim_pin_query_cb(const struct ofono_error *error,
|
||||||
password_is_pin(pin_type) == FALSE)
|
password_is_pin(pin_type) == FALSE)
|
||||||
pin_type = puk2pin(pin_type);
|
pin_type = puk2pin(pin_type);
|
||||||
|
|
||||||
if (pin_type != OFONO_SIM_PASSWORD_INVALID)
|
|
||||||
|
if (pin_type != OFONO_SIM_PASSWORD_INVALID
|
||||||
|
&& pin_type != OFONO_SIM_PASSWORD_NONE) {
|
||||||
|
lock_changed = !sim->locked_pins[pin_type];
|
||||||
|
|
||||||
sim->locked_pins[pin_type] = TRUE;
|
sim->locked_pins[pin_type] = TRUE;
|
||||||
|
|
||||||
|
if (lock_changed) {
|
||||||
|
locked_pins = get_locked_pins(sim);
|
||||||
|
|
||||||
|
ofono_dbus_signal_array_property_changed(conn,
|
||||||
|
path,
|
||||||
|
OFONO_SIM_MANAGER_INTERFACE,
|
||||||
|
"LockedPins", DBUS_TYPE_STRING,
|
||||||
|
&locked_pins);
|
||||||
|
|
||||||
|
g_strfreev(locked_pins);
|
||||||
|
}
|
||||||
|
}
|
||||||
ofono_dbus_signal_property_changed(conn, path,
|
ofono_dbus_signal_property_changed(conn, path,
|
||||||
OFONO_SIM_MANAGER_INTERFACE,
|
OFONO_SIM_MANAGER_INTERFACE,
|
||||||
"PinRequired", DBUS_TYPE_STRING,
|
"PinRequired", DBUS_TYPE_STRING,
|
||||||
|
|
Loading…
Reference in New Issue