return true;
}
+static void __print_match_filter(unsigned char *filter, size_t filter_len)
+{
+}
+
static wifi_aware_error_e __parse_enable_reply(GVariant *reply, wifi_aware_s *aware)
{
int error;
reply = g_dbus_connection_call_finish(conn, res, &dbus_error);
if (dbus_error != NULL) {
- WIFI_AWARE_LOGE("Enable Request failure %s", dbus_error->message);
+ WIFI_AWARE_LOGE("Enable Request failure: %s", dbus_error->message);
error = _wifi_aware_convert_error_string_to_enum(dbus_error->message);
g_error_free(dbus_error);
}
reply = g_dbus_connection_call_finish(conn, res, &dbus_error);
if (dbus_error != NULL) {
- WIFI_AWARE_LOGE("Publish Request failure %s", dbus_error->message);
+ WIFI_AWARE_LOGE("Publish Request failure: %s", dbus_error->message);
error = _wifi_aware_convert_error_string_to_enum(dbus_error->message);
g_error_free(dbus_error);
}
else {
- g_variant_get(reply, "(ui)", &publish_id);
- WIFI_AWARE_LOGI("Publish ID: %u", publish_id);
+ g_variant_get(reply, "(ui)", &publish_id, &error);
+ WIFI_AWARE_LOGI("Publish ID: %u", publish_id, &error);
}
if (aware->published_cb)
reply = g_dbus_connection_call_finish(conn, res, &dbus_error);
if (dbus_error != NULL) {
- WIFI_AWARE_LOGE("Subscribe Request failure %s", dbus_error->message);
+ WIFI_AWARE_LOGE("Subscribe Request failure: %s", dbus_error->message);
error = _wifi_aware_convert_error_string_to_enum(dbus_error->message);
g_error_free(dbus_error);
}
else {
- g_variant_get(reply, "(ui)", &subscribe_id);
+ g_variant_get(reply, "(ui)", &subscribe_id, &error);
WIFI_AWARE_LOGI("Subscribe ID: %u", subscribe_id);
}
printf("Subscribe Request fails. Error: %s\n", __print_error(error));
}
+static void __print_match_filter(unsigned char filter[MAX_MATCH_FILTER_LEN + 1], int filter_len)
+{
+ int len = 0;
+ int i = 0;
+ while (i < filter_len) {
+ len = filter[i];
+ printf("%d: ", len);
+ for (int j = 1; j <= len; ++j) {
+ printf("%d, ", filter[i + j]);
+ }
+ printf("\n");
+ i += len + 1;
+ }
+}
+
+static int __set_match_filter(unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1])
+{
+ int total_num;
+ int total_len = 0;
+ int len;
+ char filter[MAX_MATCH_FILTER_LEN + 1];
+ printf("Total number of match filter items: ");
+ if (scanf("%d", &total_num) < 0)
+ return -1;
+
+ for (int i = 0; i < total_num; ++i) {
+ printf("%d match filter len: ", i);
+ if (scanf("%d", &len) < 0)
+ return -1;
+ printf("%d match filter value: ", i);
+ if (scanf("%s", filter) < 0)
+ return -1;
+ if (len != strlen(filter)) {
+ printf("The length of filter value is not %d\n", len);
+ return -1;
+ }
+ match_filter[total_len++] = len;
+ memcpy(&match_filter[total_len], filter, len);
+ total_len += len;
+ }
+ return total_len;
+}
+
static void __set_publish_config(wifi_aware_publish_config_h config)
{
int ret = 0;
unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, };
unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, };
size_t len = 0;
+ int set_mf = 0;
printf("Choose publish type(0-Solicited, 1-Unsolicited): ");
ret = scanf("%d", &publish_type);
if (ret != WIFI_AWARE_ERROR_NONE)
return;
- len = strlen(MATCH_FILTER);
- memcpy(match_filter, MATCH_FILTER, len);
- ret = wifi_aware_publish_config_set_match_filter(config,
- match_filter, len);
- if (ret != WIFI_AWARE_ERROR_NONE)
- return;
+ printf("Do you set Match Filter(0-No, 1-Yes): ");
+ ret = scanf("%d", &set_mf);
+ if (set_mf == 1) {
+ len = __set_match_filter(match_filter);
+ if (len < 0) {
+ printf("Not set match filter\n");
+ return;
+ }
+ __print_match_filter(match_filter, len);
+ ret = wifi_aware_publish_config_set_match_filter(config, match_filter, len);
+ if (ret != WIFI_AWARE_ERROR_NONE)
+ return;
+ }
}
void test_publish()
ret = wifi_aware_publish(g_wifi_aware_handle, config, __published_cb, NULL);
__print_result(ret, "wifi_aware_publish");
- ret = wifi_aware_publish_config_destroy(config);
- __print_result(ret, "wifi_aware_publish_config_destroy");
+// ret = wifi_aware_publish_config_destroy(config);
+// __print_result(ret, "wifi_aware_publish_config_destroy");
}
void test_cancel_publish()
int subscribe_type = 0;
unsigned char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, };
+ unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, };
size_t len = 0;
+ int set_mf = 0;
printf("Choose subscribe type(0-Active, 1-Passive): ");
ret = scanf("%d", &subscribe_type);
specific_info, len);
if (ret != WIFI_AWARE_ERROR_NONE)
return;
+
+ printf("Do you set Match Filter(0-No, 1-Yes): ");
+ ret = scanf("%d", &set_mf);
+ if (set_mf == 1) {
+ len = __set_match_filter(match_filter);
+ if (len < 0) {
+ printf("Not set match filter\n");
+ return;
+ }
+ ret = wifi_aware_subscribe_config_set_match_filter(config, match_filter, len);
+ if (ret != WIFI_AWARE_ERROR_NONE)
+ return;
+ }
}
void test_subscribe()