//LCOV_EXCL_START
static int __dnssd_getaddrinfo(dnssd_handle_s *dnssd_handle, unsigned int flags,
- unsigned int if_index, const char *host_name,
+ unsigned int if_index, const char *host_name, char *service_name,
const char *fullname, const char *txt_record,
unsigned short txt_len, int port)
{
domain = strtok_r(NULL, ".", &save_str);
domain = strtok_r(NULL, ".", &save_str);
domain = strtok_r(NULL, ".", &save_str);
+ g_free(name);
local_handle = g_try_malloc0(FOUND_SIZE);
if (local_handle == NULL) {
DNSSD_LOGD("g_try_malloc failed");
- g_free(name);
__DNSSD_LOG_FUNC_EXIT__;
return DNSSD_ERROR_OUT_OF_MEMORY;
}
local_handle->service_type = g_strdup(dnssd_handle->service_type);
found->browse_handler = dnssd_handle->service_handler;
- found->service_name = g_strdup(name);
- g_free(name);
+ found->service_name = g_strdup(service_name);
if (txt_record != NULL) {
found->txt_record = g_strndup(txt_record, txt_len);
found->txt_len = txt_len;
/* Get Address Info details and send browse callback */
__dnssd_getaddrinfo(resolve_data->dnssd_handle, flags, if_index,
- host_name, fullname, (const char *) txt_record,
- txt_len, port);
+ host_name, resolve_data->service_name, fullname,
+ (const char *) txt_record, txt_len, port);
g_idle_add_full(G_PRIORITY_HIGH, __remove_service_resolve_socket,
resolve_data, NULL);
}
data->dnssd_handle = dnssd_handle;
data->watch_id = 0;
+ data->service_name = g_strdup(service_name);
resolve_handle_list = g_slist_prepend(resolve_handle_list, data);
if (resolve_data->dnssd_handle == local_handle) {
resolve_handle_list = g_slist_remove(resolve_handle_list,
resolve_data);
+ g_free(resolve_data->service_name);
g_free(resolve_data);
}
//LCOV_EXCL_STOP