gchar *info_value = NULL;
g_variant_get(parameters, "(uusq)", sub_id, peer_id,
- info_value, specific_info_len);
+ &info_value, specific_info_len);
memcpy(specific_info, info_value, *specific_info_len);
+ specific_info[*specific_info_len] = 0;
+ WIFI_AWARE_LOGD("specific_info: %s", specific_info);
+ g_free(info_value);
}
static void __service_discovered_cb(GDBusConnection *connection,
unsigned int sub_id = 0;
unsigned int peer_id = 0;
- unsigned char *specific_info = NULL;
+ unsigned char specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN];
size_t specific_info_len = 0;
wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)user_data;
return;
}
- WIFI_AWARE_LOGD("Peer ID: %u", peer_id);
+ WIFI_AWARE_LOGD("subscribe ID: %u, Peer ID: %u", sub_id, peer_id);
if (_wifi_aware_peer_create(&peer, peer_id) != WIFI_AWARE_ERROR_NONE) {
WIFI_AWARE_LOGE("Fail to create peer");
return;
} while (0)
#define SERVICE_NAME "CtsVerifierTestService"
-#define UPDATE_SERVICE_NAME "UpdatedServiceName"
#define MATCH_FILTER "bytes used for matching"
#define PUB_SSI "Extra bytes in the publisher discovery"
+#define UPDATE_PUB_SSI "Updated Specific Information"
#define SUB_SSI "Arbitrary bytes for the subscribe discovery"
#define MSG_SUB_TO_PUB "Let's talk"
#define MSG_PUB_TO_SUB "Ready"
const unsigned char *ptr = data;
const unsigned char *max = data + len;
while (ptr < max) {
- const unsigned char *const end = ptr + 1 + ptr[0];
- if (end > max) {
- printf("<< invalid data >>");
- break;
- }
- if (++ptr < end)
- printf(" "); /* As long as string is non-empty, begin with a space */
- while (ptr < end) {
- if (strchr(" &;`'\"|*?~<>^()[]{}$", *ptr))
- printf("\\");
- if (*ptr == '\\')
- printf("\\\\\\\\");
- else if (*ptr >= ' ')
- printf("%c", *ptr);
- else
- printf("\\\\x%02X", *ptr);
- ptr++;
- }
+ if (strchr(" &;`'\"|*?~<>^()[]{}$", *ptr))
+ printf("\\");
+ if (*ptr == '\\')
+ printf("\\\\\\\\");
+ else if (*ptr >= ' ')
+ printf("%c", *ptr);
+ else
+ printf("\\\\x%02X", *ptr);
+ ptr++;
}
printf("\n");
}
void test_update_publish()
{
int ret = 0;
- char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
+ unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, };
+ size_t len = 0;
RET_IF_LOOP_IS_NULL();
RET_IF_HANDLE_IS_NULL();
return;
}
- strncpy(service_name, UPDATE_SERVICE_NAME, MAX_SERVICE_NAME_LEN);
- ret = wifi_aware_publish_set_service_name(g_publish_handle,
- service_name);
+ len = strlen(UPDATE_PUB_SSI);
+ memcpy(specific_info, UPDATE_PUB_SSI, len);
+ ret = wifi_aware_publish_set_service_specific_info(g_publish_handle,
+ specific_info, len);
if (ret != WIFI_AWARE_ERROR_NONE)
return;