typedef void (*asp_tech_session_request_cb)(gint32 error_code, const guint8 *session_mac, guint32 session_id, guint32 adv_id, const gchar *device_name, size_t name_length, const guint8 *session_info, size_t info_length, gboolean get_pin, guint32 pin, gpointer user_data);
typedef void (*asp_tech_session_config_request_cb)(gint32 error_code, const guint8 *session_mac, guint32 session_id, gboolean get_pin, guint32 pin, gpointer user_data);
typedef void (*asp_tech_connect_status_cb)(gint32 error_code, const guint8 *session_mac, guint32 session_id, asp_session_connect_status_e status, gpointer user_data);
-typedef void (*asp_tech_ip_assigned_cb)(gint32 error_code, const guint8 *session_mac, guint32 session_id, gchar *service_mac, gchar *peer_ip_addr, gint32 ip_length, gpointer user_data);
+typedef void (*asp_tech_ip_assigned_cb)(gint32 error_code, const guint8 *session_mac, guint32 session_id, const guint8 *service_mac, gchar *peer_ip_addr, gint32 ip_length, gpointer user_data);
#define PINSTR_LEN 8
#ifndef MACSTR_LEN
Name: asp-manager
Summary: ASP(application service platform) manager
-Version: 0.0.13
+Version: 0.0.14
Release: 2
Group: Network & Connectivity/Other
License: Apache-2.0
service.service_info_map = NULL;
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "adv_id"))
memset(&service, 0, sizeof(asp_service_advertise_s));
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "adv_id"))
service.service_info_map = NULL;
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "discovery_tech"))
DEBUG_PARAMS(parameters);
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "service_mac")) {
DEBUG_PARAMS(parameters);
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "session_mac"))
g_variant_get(var, "&s", &session_mac);
DEBUG_PARAMS(parameters);
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "session_mac"))
g_variant_get(var, "&s", &session_mac);
asp_session_complete_bound_port(object, invocation, ASP_ERROR_NONE);
out:
+ g_variant_iter_free(iter);
__ASP_LOG_FUNC_EXIT__;
return TRUE;
}
DEBUG_PARAMS(parameters);
g_variant_get(parameters, "a{sv}", &iter);
+ if(!iter) {
+ ASP_LOGE("Failed to get iter");
+ ASP_RETURN_SERVICE_ERR(invocation, -ASP_ERROR_OPERATION_FAILED);
+ goto out;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "session_mac"))
g_variant_get(var, "&s", &session_mac);
asp_session_complete_release_port(object, invocation, ASP_ERROR_NONE);
out:
+ g_variant_iter_free(iter);
__ASP_LOG_FUNC_EXIT__;
return TRUE;
}
asp_manager_gdbus_notify_connect_status(session_mac_str, session_id,
- status, deferred_resp);
+ status, (gchar *)deferred_resp);
__ASP_LOG_FUNC_EXIT__;
return;
const guint8 *session_mac, guint32 session_id,
asp_session_connect_status_e status, gpointer user_data);
typedef void (*asp_p2p_conn_ip_assigned_cb)(gint32 error_code,
- const guint8 *session_mac, guint32 session_id, gchar *service_mac,
+ const guint8 *session_mac, guint32 session_id, const guint8 *service_mac,
gchar *peer_ip_addr, gint32 ip_length, gpointer user_data);
void asp_p2p_conn_initialize();
void _p2p_conn_connect_status_cb(gint32 error_code, const guint8 *session_mac,
guint32 session_id, asp_session_connect_status_e status, gpointer user_data);
void _p2p_conn_ip_assigned_cb(gint32 error_code, const guint8 *session_mac,
- guint32 session_id, gchar *service_mac, gchar *peer_ip_addr, gint32 ip_length,
+ guint32 session_id, const guint8 *service_mac, gchar *peer_ip_addr, gint32 ip_length,
gpointer user_data);
/* state machine using gfsm */
}
void _p2p_conn_ip_assigned_cb(gint32 error_code, const guint8 *session_mac,
- guint32 session_id, gchar *service_mac, gchar *peer_ip_addr, gint32 ip_length,
+ guint32 session_id, const guint8 *service_mac, gchar *peer_ip_addr, gint32 ip_length,
gpointer user_data)
{
INFO_MSG;
{
GInetSocketAddress *inetaddr;
GInetAddress *hostaddr;
+ gchar *ip_str = NULL;
inetaddr = G_INET_SOCKET_ADDRESS(sock_addr);
hostaddr = g_inet_socket_address_get_address(inetaddr);
- g_strlcpy(peer_ip, g_inet_address_to_string(hostaddr),
- ASP_SESSION_IPV4_STR_LEN);
+ ip_str = g_inet_address_to_string(hostaddr);
+ g_strlcpy(peer_ip, ip_str, ASP_SESSION_IPV4_STR_LEN);
ASP_LOGD("%s peer_ip: %s", ROLE, peer_ip);
+ g_free(ip_str);
/*g_object_unref(hostaddr); */
/*g_object_unref(inetaddr); */
asp_event_data event;
guint32 search_id = -1;
gchar *service_mac = NULL;
- const gchar *service_device_name = NULL;
+ gchar *service_device_name = NULL;
guint32 adv_id = -1;
gchar *service_name = NULL;
GHashTable *service_info_map = NULL;
event.search_result.service_info = service_info_map;
asp_manager_event(NULL, ASP_EVENT_SEARCH_RESULT, &event);
- if (service_mac)
- g_free(service_mac);
+ g_free(service_device_name);
+ g_free(service_mac);
}
static gint32 __asp_service_infra_convert_error_type(gint32 dnssd_error)
result = wifi_deinitialize();
if (result != WIFI_ERROR_NONE) {
ASP_LOGD("Failed to deinitialize wifi");
+ free(if_name);
return ASP_ERROR_OPERATION_FAILED;
}
result = dnssd_service_set_interface(service_handle, if_name);
if (result != DNSSD_ERROR_NONE) {
result = __asp_service_infra_convert_error_type(result);
+ free(if_name);
return result;
}
ASP_LOGD("Success to set interface %s", if_name);
+ free(if_name);
result = dnssd_register_local_service(service_handle,
_advertise_status_cb, GUINT_TO_POINTER(service->adv_id));
/* Add MAC Address to TXT record */
mac_addr = vconf_get_str(VCONFKEY_WIFI_BSSID_ADDRESS);
+ if (!mac_addr) {
+ ASP_LOGE("Failed to get vconf value for %s", VCONFKEY_WIFI_BSSID_ADDRESS);
+ return ASP_ERROR_OPERATION_FAILED;
+ }
+
mac_addr_len = strlen(mac_addr);
result = __add_txt_record(service_handle, ASP_INFRA_MAC_ADDR_KEY, mac_addr, mac_addr_len);
if (result != DNSSD_ERROR_NONE) {
result = __asp_service_infra_convert_error_type(result);
- g_free(mac_addr);
+ free(mac_addr);
return result;
}
- g_free(mac_addr);
+ free(mac_addr);
/* Other TXT records */
if (service->service_info_map != NULL) {
result = wifi_deinitialize();
if (result != WIFI_ERROR_NONE) {
ASP_LOGD("Failed to deinitialize wifi");
+ free(if_name);
return ASP_ERROR_OPERATION_FAILED;
}
if (result != DNSSD_ERROR_NONE) {
result = __asp_service_infra_convert_error_type(result);
+ free(if_name);
return result;
}
ASP_LOGD("Success to start browsing service. service_type: %s, browser_handle: %u",
service->search_id, browser_handle,
g_hash_table_size(g_browser_hash));
+ free(if_name);
__ASP_LOG_FUNC_EXIT__;
return result;
}
g_free(device_name);
g_free(instance_name);
g_hash_table_remove_all(service_info_map);
+ g_variant_iter_free(iter);
__ASP_LOG_FUNC_EXIT__;
return;
if (!g_strcmp0(key, "adv_id")) {
g_variant_get(var, "u", &adv_id);
} else if (!g_strcmp0(key, "session_mac")) {
- if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0)
+ if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0) {
+ g_free(device_name);
+ g_free(session_info);
+ g_variant_iter_free(iter);
return;
+ }
} else if (!g_strcmp0(key, "session_id")) {
g_variant_get(var, "u", &session_id);
} else if (!g_strcmp0(key, "device_name")) {
asp_tech_p2p_ops.session_request_cb_user_data);
}
+ g_variant_iter_free(iter);
g_free(device_name);
g_free(session_info);
session_mac, session_id, get_pin, pin,
asp_tech_p2p_ops.session_config_request_cb_user_data);
}
+ g_variant_iter_free(iter);
__ASP_LOG_FUNC_EXIT__;
return;
g_variant_get(parameters, "(a{sv})", &iter);
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "session_mac")) {
- if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0)
+ if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0) {
+ g_variant_iter_free(iter);
+ g_free(deferred);
return;
+ }
} else if (!g_strcmp0(key, "session_id")) {
g_variant_get(var, "u", &session_id);
} else if (!g_strcmp0(key, "status")) {
asp_tech_p2p_ops.connect_status_cb_user_data);
}
+ g_variant_iter_free(iter);
g_free(deferred);
__ASP_LOG_FUNC_EXIT__;
g_variant_get(parameters, "(a{sv})", &iter);
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "session_mac")) {
- if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0)
+ if (asp_dbus_unpack_ay(session_mac, var, MAC_LEN) < 0) {
+ g_variant_iter_free(iter);
+ g_free(peer_ip);
return;
+ }
} else if (!g_strcmp0(key, "session_id")) {
g_variant_get(var, "u", &session_id);
} else if (!g_strcmp0(key, "service_mac")) {
if (peer_ip == NULL) {
ASP_LOGE("Invalid peer IP address");
+ g_variant_iter_free(iter);
+ g_free(peer_ip);
return;
}
strlen(peer_ip), asp_tech_p2p_ops.ip_assigned_cb_user_data);
}
+ g_variant_iter_free(iter);
g_free(peer_ip);
__ASP_LOG_FUNC_EXIT__;
;/* Do Nothing */
}
+ g_variant_iter_free(iter_peer);
g_variant_unref(reply);
if (is_group_owner)
*role = ASP_TECH_P2P_ROLE_GO;