This fixes the case of cascading rfkill switches: if enabled, hard rfkilling
such technology might generate contradictory events.
1 - first all switches are hardblocked
2 - then one of these switch (usually: device's switch) gets fully unblocked
3 - then this same switch gets removed
Step 2 is in contradiction with step 1, so we need to care about such switch
getting removed by recomputing the hardblocked state.
gboolean apply = TRUE;
GList *start, *list;
+ DBG("technology %p --> %d/%d vs %d/%d",
+ technology, softblock, hardblock,
+ technology->softblocked, technology->hardblocked);
+
if (technology->hardblocked == hardblock)
goto softblock_change;
if (technology == NULL)
return -ENXIO;
+ technology_apply_rfkill_change(technology,
+ technology->softblocked, !technology->hardblocked);
+
technology_put(technology);
return 0;