{
__WIFI_AWARE_FUNC_ENTER__;
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(config == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_config_h is NULL");
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
- wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)config;
- memcpy(req->match_filter, match_filter, len);
- req->match_filter_len = len;
+ // TODO: Check if len is valid
+
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ memcpy(handle->req.match_filter, match_filter, len);
+ handle->req.match_filter_len = len;
__WIFI_AWARE_FUNC_EXIT__;
return WIFI_AWARE_ERROR_NONE;
printf("Subscribe Request fails. Error: %s\n", __print_error(error));
}
- static void __set_publish_config(wifi_aware_publish_config_h config)
+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_h config)
{
int ret = 0;
int publish_type = 0;
if (ret != WIFI_AWARE_ERROR_NONE)
return;
- len = strlen(MATCH_FILTER);
- memcpy(match_filter, MATCH_FILTER, len);
- ret = wifi_aware_publish_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);
++ ret = wifi_aware_publish_set_match_filter(config, match_filter, len);
+ if (ret != WIFI_AWARE_ERROR_NONE)
+ return;
+ }
}
void test_publish()
__set_publish_config(config);
- ret = wifi_aware_publish(g_wifi_aware_handle, config, __published_cb, NULL);
+ g_publish_handle = config;
+ ret = wifi_aware_start_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_destroy(config);
- __print_result(ret, "wifi_aware_publish_destroy");
++ //ret = wifi_aware_publish_destroy(config);
++ //__print_result(ret, "wifi_aware_publish_destroy");
}
void test_cancel_publish()