Ejemplo n.º 1
0
/**
 * wpas_dbus_signal_network_enabled_changed - Signals Enabled property changes
 * @wpa_s: %wpa_supplicant network interface data
 * @ssid: configured network which Enabled property has changed
 *
 * Sends PropertyChanged signals containing new value of Enabled property
 * for specified network
 */
void wpas_dbus_signal_network_enabled_changed(struct wpa_supplicant *wpa_s,
					      struct wpa_ssid *ssid)
{

	char path[WPAS_DBUS_OBJECT_PATH_MAX];
	os_snprintf(path, WPAS_DBUS_OBJECT_PATH_MAX,
		    "%s/" WPAS_DBUS_NEW_NETWORKS_PART "/%d",
		    wpa_s->dbus_new_path, ssid->id);

	wpa_dbus_mark_property_changed(wpa_s->global->dbus, path,
				       WPAS_DBUS_NEW_IFACE_NETWORK, "Enabled");
}
Ejemplo n.º 2
0
/**
 * wpas_dbus_signal_prop_changed - Signals change of property
 * @wpa_s: %wpa_supplicant network interface data
 * @property: indicates which property has changed
 *
 * Sends ProertyChanged signals with path, interface and arguments
 * depending on which property has changed.
 */
void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
				   enum wpas_dbus_prop property)
{
	WPADBusPropertyAccessor getter;
	char *prop;

	if (wpa_s->dbus_new_path == NULL)
		return; /* Skip signal since D-Bus setup is not yet ready */

	switch (property) {
	case WPAS_DBUS_PROP_AP_SCAN:
		getter = (WPADBusPropertyAccessor) wpas_dbus_getter_ap_scan;
		prop = "ApScan";
		break;
	case WPAS_DBUS_PROP_SCANNING:
		getter = (WPADBusPropertyAccessor) wpas_dbus_getter_scanning;
		prop = "Scanning";
		break;
	case WPAS_DBUS_PROP_STATE:
		getter = (WPADBusPropertyAccessor) wpas_dbus_getter_state;
		prop = "State";
		break;
	case WPAS_DBUS_PROP_CURRENT_BSS:
		getter = (WPADBusPropertyAccessor)
			wpas_dbus_getter_current_bss;
		prop = "CurrentBSS";
		break;
	case WPAS_DBUS_PROP_CURRENT_NETWORK:
		getter = (WPADBusPropertyAccessor)
			wpas_dbus_getter_current_network;
		prop = "CurrentNetwork";
		break;
	case WPAS_DBUS_PROP_BSSS:
		getter = (WPADBusPropertyAccessor) wpas_dbus_getter_bsss;
		prop = "BSSs";
		break;
	case WPAS_DBUS_PROP_CURRENT_AUTH_MODE:
		getter = (WPADBusPropertyAccessor)
			wpas_dbus_getter_current_auth_mode;
		prop = "CurrentAuthMode";
		break;
	default:
		wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
			   __func__, property);
		return;
	}

	wpa_dbus_mark_property_changed(wpa_s->global->dbus,
				       wpa_s->dbus_new_path,
				       WPAS_DBUS_NEW_IFACE_INTERFACE, prop);
}
Ejemplo n.º 3
0
/**
 * wpas_dbus_bss_signal_prop_changed - Signals change of BSS property
 * @wpa_s: %wpa_supplicant network interface data
 * @property: indicates which property has changed
 * @id: unique BSS identifier
 *
 * Sends PropertyChanged signals with path, interface, and arguments depending
 * on which property has changed.
 */
void wpas_dbus_bss_signal_prop_changed(struct wpa_supplicant *wpa_s,
				       enum wpas_dbus_bss_prop property,
				       unsigned int id)
{
	char path[WPAS_DBUS_OBJECT_PATH_MAX];
	char *prop;

	switch (property) {
	case WPAS_DBUS_BSS_PROP_SIGNAL:
		prop = "Signal";
		break;
	case WPAS_DBUS_BSS_PROP_FREQ:
		prop = "Frequency";
		break;
	case WPAS_DBUS_BSS_PROP_MODE:
		prop = "Mode";
		break;
	case WPAS_DBUS_BSS_PROP_PRIVACY:
		prop = "Privacy";
		break;
	case WPAS_DBUS_BSS_PROP_RATES:
		prop = "Rates";
		break;
	case WPAS_DBUS_BSS_PROP_WPA:
		prop = "WPA";
		break;
	case WPAS_DBUS_BSS_PROP_RSN:
		prop = "RSN";
		break;
	case WPAS_DBUS_BSS_PROP_IES:
		prop = "IEs";
		break;
	default:
		wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
			   __func__, property);
		return;
	}

	os_snprintf(path, WPAS_DBUS_OBJECT_PATH_MAX,
		    "%s/" WPAS_DBUS_NEW_BSSIDS_PART "/%u",
		    wpa_s->dbus_new_path, id);

	wpa_dbus_mark_property_changed(wpa_s->global->dbus, path,
				       WPAS_DBUS_NEW_IFACE_BSS, prop);
}
/**
 * wpas_dbus_setter_process_credentials - Set credentials_processed conf param
 * @iter: Pointer to incoming dbus message iter
 * @error: Location to store error on failure
 * @user_data: Function specific data
 * Returns: TRUE on success, FALSE on failure
 *
 * Setter for "ProcessCredentials" property. Sets credentials_processed on 2
 * if boolean argument is true or on 1 if otherwise.
 */
dbus_bool_t wpas_dbus_setter_process_credentials(DBusMessageIter *iter,
						 DBusError *error,
						 void *user_data)
{
	struct wpa_supplicant *wpa_s = user_data;
	dbus_bool_t process_credentials, old_pc;

	if (!wpa_s->dbus_new_path)
		return FALSE;
	if (!wpas_dbus_simple_property_setter(iter, error, DBUS_TYPE_BOOLEAN,
					      &process_credentials))
		return FALSE;

	old_pc = wpa_s->conf->wps_cred_processing != 1;
	wpa_s->conf->wps_cred_processing = (process_credentials ? 2 : 1);

	if ((wpa_s->conf->wps_cred_processing != 1) != old_pc)
		wpa_dbus_mark_property_changed(wpa_s->global->dbus,
					       wpa_s->dbus_new_path,
					       WPAS_DBUS_NEW_IFACE_WPS,
					       "ProcessCredentials");

	return TRUE;
}
Ejemplo n.º 5
0
/**
 * wpas_dbus_signal_debug_show_keys_changed - Signals change of debug param
 * @global: wpa_global structure
 *
 * Sends ProertyChanged signals informing that debug show_keys has changed.
 */
void wpas_dbus_signal_debug_show_keys_changed(struct wpa_global *global)
{
	wpa_dbus_mark_property_changed(global->dbus, WPAS_DBUS_NEW_PATH,
				       WPAS_DBUS_NEW_INTERFACE,
				       "DebugShowKeys");
}
Ejemplo n.º 6
0
/**
 * wpas_dbus_signal_debug_timestamp_changed - Signals change of debug param
 * @global: wpa_global structure
 *
 * Sends ProertyChanged signals informing that debug timestamp has changed.
 */
void wpas_dbus_signal_debug_timestamp_changed(struct wpa_global *global)
{
	wpa_dbus_mark_property_changed(global->dbus, WPAS_DBUS_NEW_PATH,
				       WPAS_DBUS_NEW_INTERFACE,
				       "DebugTimestamp");
}