static unsigned short calculate_channel(struct supplicant_result *result)
{
- return 0;
+ if (result->frequency < 0)
+ return 0;
+
+ return (result->frequency - 2407) / 5;
}
static void get_properties(struct supplicant_task *task);
void *ssid;
int ssid_len;
char *mode;
+ unsigned short channel;
char *security;
char *passphrase;
} wifi;
connman_dbus_dict_append_variant(&dict, "WiFi.Mode",
DBUS_TYPE_STRING, &network->wifi.mode);
+ if (network->wifi.channel > 0)
+ connman_dbus_dict_append_variant(&dict, "WiFi.Channel",
+ DBUS_TYPE_UINT16, &network->wifi.channel);
+
if (network->wifi.security != NULL)
connman_dbus_dict_append_variant(&dict, "WiFi.Security",
DBUS_TYPE_STRING, &network->wifi.security);
if (g_str_equal(key, "Frequency") == TRUE)
network->frequency = value;
+ else if (g_str_equal(key, "WiFi.Channel") == TRUE)
+ network->wifi.channel = value;
return -EINVAL;
}
if (g_str_equal(key, "Frequency") == TRUE)
return network->frequency;
+ else if (g_str_equal(key, "WiFi.Channel") == TRUE)
+ return network->wifi.channel;
return 0;
}