#include "asp-dbus.h"
#include "asp-log.h"
#include "asp-seek.h"
+#include "asp-session.h"
#include "asp-utils.h"
/*****************************************************************************
.user_data_for_cb_session_port_status = NULL
};
-static __thread GList *asp_sessions = NULL;
/*****************************************************************************
* Local Structures Definition
return ASP_ERROR_OPERATION_FAILED;
}
-static asp_client_session_s *get_session_by_id_mac(const char *session_mac, unsigned int session_id)
-{
- asp_client_session_s *session = NULL;
- GList *temp = NULL;
-
- for (temp = g_list_first(asp_sessions);
- temp != NULL; temp = g_list_next(temp)) {
- session = (asp_client_session_s *)temp->data;
- if (session != NULL && session->session_id == session_id &&
- memcmp(session->session_mac, session_mac, MACSTR_LEN) == 0)
- break;
- session = NULL;
- }
-
- return session;
-}
-
void asp_process_seek_search_result(GDBusConnection *connection,
const gchar *object_path, GVariant *parameters)
{
unsigned int session_id, const char *session_info)
{
__ASP_LOG_FUNC_START__;
- AspAdvert *service = NULL;
- asp_client_session_s *session = NULL;
- GList *temp = NULL;
- int res = 0;
-
- service = getAdvertById(adv_id);
+ AspAdvert *service = getAdvertById(adv_id);
if (service == NULL) {
ASP_LOGD("No matched local service");
__ASP_LOG_FUNC_END__;
ASP_LOGD("Process auto accept service");
- temp = NULL;
- for (temp = g_list_first(asp_sessions);
- temp != NULL; temp = g_list_next(temp)) {
- session = (asp_client_session_s *)temp->data;
- if (session != NULL && session->session_id == session_id &&
- memcmp(session->session_mac, session_mac, MACSTR_LEN) == 0)
- break;
- session = NULL;
- }
-
+ AspSession *session = getSession(session_mac, session_id);
if (session == NULL) {
- res = asp_session_get_handle((char *)session_mac, session_id, (void **)&session);
+ int res = asp_session_get_handle((char *)session_mac, session_id, (void **)&session);
if (res < 0) {
ASP_LOGE("asp_get_session failed");
__ASP_LOG_FUNC_END__;
}
if (session_info)
- session->session_information = g_strdup(session_info);
- asp_sessions = g_list_prepend(asp_sessions, session);
+ session->setSessionInfo(session_info);
+ addSessionToServiceList(session);
}
if (service->auto_accept == FALSE) {
return;
}
- asp_client_session_s *session = get_session_by_id_mac(variant->session_mac, variant->session_id);
+ AspSession *session = getSession(variant->session_mac, variant->session_id);
if (!session) {
ASP_LOGD("There's no related session");
return;
const gchar *object_path, GVariant *parameters)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *session = NULL;
asp_client_info_s *client = &g_client_info;
if (!client->session_config_request_cb) {
ASP_LOGE("session_config_request_cb is NULL!!");
return;
}
+ AspSession *session = NULL;
if (variant->session_mac == NULL) {
ASP_LOGE("session_mac is NULL");
goto ERROR;
}
- session = get_session_by_id_mac(variant->session_mac, variant->session_id);
+ session = getSession(variant->session_mac, variant->session_id);
if (!session) {
ASP_LOGD("There's no related session");
goto ERROR;
const gchar *object_path, GVariant *parameters)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *session = NULL;
asp_client_info_s *client = &g_client_info;
if (!client->session_connect_status_cb) {
ASP_LOGE("connect_status_cb is NULL!!");
return;
}
+ AspSession *session = NULL;
if (variant->session_mac == NULL) {
ASP_LOGE("session_mac is NULL");
goto ERROR;
}
- session = get_session_by_id_mac(variant->session_mac, variant->session_id);
+ session = getSession(variant->session_mac, variant->session_id);
if (!session) {
ASP_LOGD("There's no related session");
goto ERROR;
const gchar *object_path, GVariant *parameters)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *session = NULL;
asp_client_info_s *client = &g_client_info;
if (!client->session_status_cb) {
ASP_LOGE("session_status_cb is NULL!!");
return;
}
+ AspSession *session = NULL;
if (variant->session_mac == NULL) {
ASP_LOGE("session_mac is NULL");
goto ERROR;
}
- session = get_session_by_id_mac(variant->session_mac, variant->session_id);
+ session = getSession(variant->session_mac, variant->session_id);
if (!session) {
ASP_LOGD("There's no related session");
goto ERROR;
const gchar *object_path, GVariant *parameters)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *session = NULL;
asp_client_info_s *client = &g_client_info;
if (!client->session_port_status_cb) {
ASP_LOGE("port_status_cb is NULL!!");
return;
}
+ AspSession *session = NULL;
if (variant->session_mac == NULL) {
ASP_LOGE("session_mac is NULL");
goto ERROR;
}
- session = get_session_by_id_mac(variant->session_mac, variant->session_id);
+ session = getSession(variant->session_mac, variant->session_id);
if (!session) {
ASP_LOGD("There's no related session");
goto ERROR;
typedef void (*free_func)(void *);
-
-static void __free_session(void *session)
-{
- __ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
-
- service = (asp_client_session_s *)session;
- if (service == NULL) {
- ASP_LOGE("invalid parameter");
- __ASP_LOG_FUNC_END__;
- return;
- }
-
- g_free(service->session_information);
- g_free(service->deferred_session_response);
- g_free(service);
- service = NULL;
- __ASP_LOG_FUNC_END__;
- return;
-}
-
-static asp_client_session_s *__get_session(void *handle)
-{
- __ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- GList *temp = NULL;
-
- if (asp_sessions == NULL) {
-
- __ASP_LOG_FUNC_END__;
- return NULL;
- }
-
- ASP_LOGD("service [%p]", handle);
-
- temp = g_list_first(asp_sessions);
- for (temp = g_list_first(asp_sessions); temp != NULL; temp = g_list_next(temp)) {
- service = (asp_client_session_s *)temp->data;
-
- ASP_LOGD("temp [%p]", service);
- if (service != NULL && service == handle)
- break;
- service = NULL;
- }
- __ASP_LOG_FUNC_END__;
- return service;
-}
-
-static int __remove_session(void *handle)
-{
- __ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- service = __get_session(handle);
-
- if (service == NULL) {
- __ASP_LOG_FUNC_END__;
- return ASP_ERROR_OPERATION_FAILED;
- } else {
- asp_sessions = g_list_remove(asp_sessions, handle);
- __free_session(service);
- }
-
- __ASP_LOG_FUNC_END__;
- return ASP_ERROR_NONE;
-}
-
static bool __is_valid_instance_name(char *instance_name)
{
if (strlen(instance_name) > INSTANCE_NAME_LEN)
int asp_session_create(char *service_mac, unsigned int adv_id, asp_session_h* session)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
return ASP_ERROR_INVALID_PARAMETER;
}
- service = (asp_client_session_s *)g_try_malloc0(sizeof(asp_client_session_s));
+ AspSession *service = new AspSession(service_mac, adv_id);
if (!service) {
- ASP_LOGE("malloc() failed!!!.");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_OUT_OF_MEMORY;
}
- ASP_LOGD("service [%p]", service);
- service->advertisement_id = adv_id;
- g_strlcpy(service->service_mac, service_mac, MACSTR_LEN);
-
- asp_sessions = g_list_prepend(asp_sessions, service);
+ ASP_LOGD("service [%p]", service);
+ addSessionToServiceList(service);
/* Session ID will be generated by asp-manager */
- *session = (asp_session_h)service;
- ASP_LOGD("asp_session_create() SUCCESS");
-
- ASP_LOGD("service [%p]", *session);
+ *session = static_cast<asp_session_h>(service);
+ ASP_LOGD("asp_session_create() SUCCESS. session [%p]", *session);
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_destroy(asp_session_h session)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
ASP_LOGD("service [%p]", session);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- res = __remove_session((void *)service);
- if (res != ASP_ERROR_NONE) {
+ if (removeSession((void *)service) == false) {
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_OPERATION_FAILED;
}
ASP_LOGD("asp_session_destroy() SUCCESS");
-
__ASP_LOG_FUNC_END__;
return ASP_ERROR_NONE;
}
-
int asp_session_get_mac(asp_session_h session, char **session_mac)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
ASP_LOGD("service [%p]", session);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- *session_mac = service->session_mac;
+ *session_mac = g_strdup(service->sessionMac.c_str());
ASP_LOGD("asp_session_get_mac() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_get_id(asp_session_h session, unsigned int *session_id)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
ASP_LOGD("service [%p]", session);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- *session_id = service->session_id;
+ *session_id = service->sessionId;
ASP_LOGD("asp_session_get_id() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_set_info(asp_session_h session, char *service_info)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
- char *info = NULL;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(service_info, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- if (strlen(service_info) > SESSION_INFO_LEN) {
- ASP_LOGE("NULL Param!");
- __ASP_LOG_FUNC_END__;
- return ASP_ERROR_INVALID_PARAMETER;
- }
-
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- info = g_strdup(service_info);
- if (!info) {
- ASP_LOGE("malloc() failed!!!.");
- __ASP_LOG_FUNC_END__;
- return ASP_ERROR_OPERATION_FAILED;
- }
- g_free(service->session_information);
- service->session_information = info;
+ if (service->setSessionInfo(service_info) == false)
+ return ASP_ERROR_INVALID_PARAMETER;
ASP_LOGD("asp_session_set_info() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_get_info(asp_session_h session, char **service_info)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(service_info, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- if (service->session_information)
- *service_info = service->session_information;
+ if (service->sessionInformation.length() > 0)
+ *service_info = (char *)service->sessionInformation.c_str();
ASP_LOGD("asp_session_get_info() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_set_p2p_role_scheme(asp_session_h session,
asp_advert_p2p_role_scheme_e role)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(role, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- service->network_role = role;
+ service->networkRole = role;
ASP_LOGD("asp_session_set_p2p_role_scheme() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_get_p2p_role_scheme(asp_session_h session,
asp_advert_p2p_role_scheme_e *role)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(role, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- *role = (asp_advert_p2p_role_scheme_e)service->network_role;
+ *role = (asp_advert_p2p_role_scheme_e)service->networkRole;
ASP_LOGD("asp_session_get_p2p_role_scheme() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_set_p2p_config_method(asp_session_h session,
asp_wps_type_e config_method)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- if (config_method < ASP_WPS_TYPE_DEFAULT ||
- config_method > ASP_WPS_TYPE_PIN_KEYPAD) {
- ASP_LOGE("network_config is invalid");
- __ASP_LOG_FUNC_END__;
+ if (service->setNetworkConfig((int)config_method) == false)
return ASP_ERROR_INVALID_PARAMETER;
- }
-
- service->network_config = config_method;
ASP_LOGD("asp_session_set_p2p_config_method() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_get_p2p_config_method(asp_session_h session,
asp_wps_type_e *config_method)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(config_method, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
return ASP_ERROR_SESSION_NOT_FOUND;
}
- *config_method = (asp_wps_type_e)service->network_config;
+ *config_method = (asp_wps_type_e)service->networkConfig;
ASP_LOGD("asp_session_get_p2p_config_method() SUCCESS");
-
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
int asp_session_get_close_status(asp_session_h session, int *status)
{
__ASP_LOG_FUNC_START__;
- asp_client_session_s *service = NULL;
- int res = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(status, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
ASP_LOGD("asp_session_get_close_status() SUCCESS");
__ASP_LOG_FUNC_END__;
- return res;
+ return ASP_ERROR_NONE;
}
+
int asp_session_connect(asp_session_h session)
{
__ASP_LOG_FUNC_START__;
- GVariantBuilder *builder = NULL;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- const char *str = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
}
// LCOV_EXCL_START
- builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
- g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", service->service_mac));
- g_variant_builder_add(builder, "{sv}", "adv_id", g_variant_new("u", service->advertisement_id));
- g_variant_builder_add(builder, "{sv}", "role", g_variant_new("y", service->network_config));
- g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->network_config));
- if (service->session_information)
- g_variant_builder_add(builder, "{sv}", "session_info", g_variant_new("s", service->session_information));
+ GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", service->serviceMac));
+ g_variant_builder_add(builder, "{sv}", "adv_id", g_variant_new("u", service->advertisementId));
+ g_variant_builder_add(builder, "{sv}", "role", g_variant_new("y", service->networkConfig));
+ g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->networkConfig));
+ if (service->sessionInformation.length() > 0)
+ g_variant_builder_add(builder, "{sv}", "session_info", g_variant_new("s", service->sessionInformation));
- params = g_variant_new("(a{sv})", builder);
+
+ GVariant *params = g_variant_new("(a{sv})", builder);
g_variant_builder_unref(builder);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"ConnectSession", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
return ret;
}
- g_variant_get(reply, "(iu&s)", &ret, &(service->session_id), &str);
- if (str != NULL)
- g_strlcpy(service->session_mac, str, MACSTR_LEN);
+ const char *str = NULL;
+ g_variant_get(reply, "(iu&s)", &ret, &(service->sessionId), &str);
+ if (str != NULL && strlen(str) <= MACSTR_LEN)
+ service->sessionMac = str;
g_variant_unref(reply);
ASP_LOGD("%s() return : [%d]", __func__, ret);
-
__ASP_LOG_FUNC_END__;
return ret;
// LCOV_EXCL_STOP
int asp_session_confirm(asp_session_h session, bool confirmed, char *pin)
{
__ASP_LOG_FUNC_START__;
- GVariantBuilder *builder = NULL;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
}
// LCOV_EXCL_START
- builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
- g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->session_mac));
- g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->session_id));
+ GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->sessionMac));
+ g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->sessionId));
g_variant_builder_add(builder, "{sv}", "confirmed", g_variant_new("i", confirmed));
if (pin)
g_variant_builder_add(builder, "{sv}", "pin", g_variant_new("s", pin));
- params = g_variant_new("(a{sv})", builder);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+
+ GVariant *params = g_variant_new("(a{sv})", builder);
+
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"ConfirmSession", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
g_variant_unref(reply);
ASP_LOGD("%s() return : [%d]", __func__, ret);
-
__ASP_LOG_FUNC_END__;
return ret;
// LCOV_EXCL_STOP
return ASP_ERROR_OPERATION_FAILED;
}
- asp_client_session_s *service = (asp_client_session_s *)g_try_malloc0(sizeof(asp_client_session_s));
- if (!service) {
- ASP_LOGE("malloc() failed!!!.");
- g_variant_unref(reply);
- return ASP_ERROR_OUT_OF_MEMORY;
- }
- ASP_LOGD("service [%p]", service);
- g_strlcpy(service->session_mac, session_mac, MACSTR_LEN);
- service->session_id = session_id;
-
GVariantIter *iter = NULL;
g_variant_get(reply, "(ia{sv})", &ret, &iter);
asp_variant_s *variant = __get_asp_variant_from_iterator(iter);
return ASP_ERROR_OUT_OF_MEMORY;
}
- service->advertisement_id = variant->adv_id;
+ int adv_id = variant->adv_id;
__clear_asp_variant(variant);
+ AspSession *service = new AspSession(session_mac, session_id, adv_id);
+ if (!service) {
+ ASP_LOGE("malloc() failed!!!.");
+ g_variant_unref(reply);
+ return ASP_ERROR_OUT_OF_MEMORY;
+ }
+ ASP_LOGD("service [%p]", service);
+
*session = service;
- asp_sessions = g_list_prepend(asp_sessions, service);
+ addSessionToServiceList(service);
ASP_LOGD("%s() return : [%d]", __func__, ret);
__ASP_LOG_FUNC_END__;
{
__ASP_LOG_FUNC_START__;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
return ASP_ERROR_SESSION_NOT_FOUND;
}
- params = g_variant_new("(su)", service->session_mac, service->session_id);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *params = g_variant_new("(su)", service->sessionMac, service->sessionId);
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"SetSessionReady", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
g_variant_unref(reply);
ASP_LOGD("%s() return : [%d]", __func__, ret);
-
__ASP_LOG_FUNC_END__;
return ret;
}
int asp_session_close(asp_session_h session)
-
{
__ASP_LOG_FUNC_START__;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
return ASP_ERROR_SESSION_NOT_FOUND;
}
- params = g_variant_new("(su)", service->session_mac, service->session_id);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *params = g_variant_new("(su)", service->sessionMac, service->sessionId);
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"CloseSession", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
int port, int proto)
{
__ASP_LOG_FUNC_START__;
- GVariantBuilder *builder = NULL;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(ip_address, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
}
// LCOV_EXCL_START
- builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
- g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->session_mac));
- g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->session_id));
+ GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->sessionMac));
+ g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->sessionId));
g_variant_builder_add(builder, "{sv}", "ip_address", g_variant_new("s", ip_address));
g_variant_builder_add(builder, "{sv}", "port", g_variant_new("i", port));
g_variant_builder_add(builder, "{sv}", "proto", g_variant_new("i", proto));
- params = g_variant_new("(a{sv})", builder);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *params = g_variant_new("(a{sv})", builder);
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"BoundPort", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
int port, int proto)
{
__ASP_LOG_FUNC_START__;
- GVariantBuilder *builder = NULL;
- GVariant *params = NULL;
- GError *error = NULL;
- GVariant *reply = NULL;
- asp_client_session_s *service = NULL;
- int ret = ASP_ERROR_NONE;
-
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_ASP);
RET_ERR_IF_NOT_INITIALIZED(__ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(session, __ASP_LOG_FUNC_END__);
RET_ERR_IF_PARAMETER_IS_NOT_VALID(ip_address, __ASP_LOG_FUNC_END__);
- service = __get_session((void *)session);
+ AspSession *service = getSession((void *)session);
if (service == NULL) {
ASP_LOGE("Session NOT registered");
__ASP_LOG_FUNC_END__;
}
// LCOV_EXCL_START
- builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
- g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->session_mac));
- g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->session_id));
+ GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", service->sessionMac));
+ g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", service->sessionId));
g_variant_builder_add(builder, "{sv}", "ip_address", g_variant_new("s", ip_address));
g_variant_builder_add(builder, "{sv}", "port", g_variant_new("i", port));
g_variant_builder_add(builder, "{sv}", "proto", g_variant_new("i", proto));
- params = g_variant_new("(a{sv})", builder);
- reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
+
+ int ret = ASP_ERROR_NONE;
+ GError *error = NULL;
+ GVariant *params = g_variant_new("(a{sv})", builder);
+ GVariant *reply = asp_dbus_method_call_sync(ASP_DAEMON_SESSION_INTERFACE,
"ReleasePort", params, &error);
if (error != NULL) {
ASP_LOGE("asp_dbus_method_call_sync() failed."
g_variant_unref(reply);
ASP_LOGD("%s() return : [%d]", __func__, ret);
-
__ASP_LOG_FUNC_END__;
return ret;
// LCOV_EXCL_STOP
--- /dev/null
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include <gtest/gtest.h>
+
+#include "asp.h"
+
+extern "C" {
+}
+
+class AspSessionApiTest: public ::testing::Test {
+ protected:
+ void SetUp() override
+ {
+ asp_initialize();
+ asp_session_create(macAddress, advId, &session);
+ }
+
+ void TearDown() override
+ {
+ asp_session_destroy(session);
+ asp_deinitialize();
+ }
+
+ asp_session_h session;
+ char *macAddress = "00:11:22:33:44:55";
+ char *info = "HDCP Enable";
+ int advId = 0x01;
+};
+
+TEST_F(AspSessionApiTest, GetMac)
+{
+ char *mac = NULL;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_mac(session, &mac));
+}
+
+TEST_F(AspSessionApiTest, GetMacWithInvalidParam)
+{
+ char *mac = nullptr;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_mac(session, NULL));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_mac(NULL, &mac));
+}
+
+TEST_F(AspSessionApiTest, GetMacWithInvalidHandle)
+{
+ char *mac = nullptr;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_mac(session + 1, &mac));
+}
+
+TEST_F(AspSessionApiTest, GetId)
+{
+ unsigned int id;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_id(session, &id));
+}
+
+TEST_F(AspSessionApiTest, GetIdWithInvalidParam)
+{
+ unsigned int id;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_id(session, NULL));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_id(NULL, &id));
+}
+
+TEST_F(AspSessionApiTest, GetIdWithInvalidHandle)
+{
+ unsigned int id;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_id(session + 1, &id));
+}
+
+TEST_F(AspSessionApiTest, SetInfo)
+{
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_info(session, info));
+}
+
+TEST_F(AspSessionApiTest, SetInfoWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_info(session, NULL));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_info(NULL, info));
+}
+
+TEST_F(AspSessionApiTest, SetInfoWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_info(session + 1, info));
+}
+
+TEST_F(AspSessionApiTest, GetInfo)
+{
+ char *serviceInfo = NULL;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_info(session, &serviceInfo));
+}
+
+TEST_F(AspSessionApiTest, GetInfoWithInvalidParam)
+{
+ char *serviceInfo = NULL;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_info(NULL, &serviceInfo));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_info(session, NULL));
+}
+
+TEST_F(AspSessionApiTest, GetInfoWithInvalidHandle)
+{
+ char *serviceInfo = NULL;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_info(session + 1, &serviceInfo));
+}
+
+TEST_F(AspSessionApiTest, SetP2pRoleScheme)
+{
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_role_scheme(session, ASP_ADVERT_P2P_ROLE_SCHEME_GC));
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_role_scheme(session, ASP_ADVERT_P2P_ROLE_SCHEME_GO));
+}
+
+TEST_F(AspSessionApiTest, SetP2pRoleSchemeWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_role_scheme(NULL, ASP_ADVERT_P2P_ROLE_SCHEME_GC));
+}
+
+TEST_F(AspSessionApiTest, SetP2pRoleSchemeWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_p2p_role_scheme(session + 1,
+ ASP_ADVERT_P2P_ROLE_SCHEME_GC));
+}
+
+TEST_F(AspSessionApiTest, GetP2pRoleScheme)
+{
+ asp_advert_p2p_role_scheme_e role;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_p2p_role_scheme(session, &role));
+}
+
+TEST_F(AspSessionApiTest, GetP2pRoleSchemeWithInvalidParam)
+{
+ asp_advert_p2p_role_scheme_e role;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_role_scheme(session, NULL));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_role_scheme(NULL, &role));
+}
+
+TEST_F(AspSessionApiTest, GetP2pRoleSchemeWithInvalidHandle)
+{
+ asp_advert_p2p_role_scheme_e role;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_p2p_role_scheme(session + 1, &role));
+}
+
+TEST_F(AspSessionApiTest, SetP2pConfigMethod)
+{
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_DEFAULT));
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_BOTH));
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_DISPLAY));
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_KEYPAD));
+}
+
+TEST_F(AspSessionApiTest, SetP2pConfigMethodWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_config_method(NULL, ASP_WPS_TYPE_DEFAULT));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_NONE));
+}
+
+TEST_F(AspSessionApiTest, SetP2pConfigMethodWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_p2p_config_method(session + 1, ASP_WPS_TYPE_DEFAULT));
+}
+
+TEST_F(AspSessionApiTest, GetP2pConfigMethod)
+{
+ asp_wps_type_e config;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_p2p_config_method(session, &config));
+}
+
+TEST_F(AspSessionApiTest, GetP2pConfigMethodWithIvalidParam)
+{
+ asp_wps_type_e config;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_config_method(NULL, &config));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_config_method(session, NULL));
+}
+
+TEST_F(AspSessionApiTest, GetP2pConfigMethodWithIvalidHandle)
+{
+ asp_wps_type_e config;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_p2p_config_method(session + 1, &config));
+}
+
+TEST_F(AspSessionApiTest, GetCloseStatus)
+{
+ int status;
+ EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_close_status(session, &status));
+}
+
+TEST_F(AspSessionApiTest, GetCloseStatusWithInvalidParam)
+{
+ int status;
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_close_status(NULL, &status));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_close_status(session, NULL));
+}
+
+TEST_F(AspSessionApiTest, GetCloseStatusWithInvalidHandle)
+{
+ int status;
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_close_status(session + 1, &status));
+}
+
+TEST_F(AspSessionApiTest, ConnectWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_connect(NULL));
+}
+
+TEST_F(AspSessionApiTest, ConnectWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_connect(session + 1));
+}
+
+TEST_F(AspSessionApiTest, ConfirmWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_confirm(NULL, 1, "12345678"));
+}
+
+TEST_F(AspSessionApiTest, ConfirmWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_confirm(session + 1, 1, "12345678"));
+}
+
+TEST_F(AspSessionApiTest, GetHandleWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_handle(macAddress, advId, NULL));
+}
+
+TEST_F(AspSessionApiTest, SetStateReadyWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_state_ready(NULL));
+}
+
+TEST_F(AspSessionApiTest, SetStateReadyWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_state_ready(session + 1));
+}
+
+TEST_F(AspSessionApiTest, CloseWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_close(NULL));
+}
+
+TEST_F(AspSessionApiTest, CloseWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_close(session + 1));
+}
+
+TEST_F(AspSessionApiTest, BindPortWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_bind_port(NULL, "192.168.0.1", 12345, 80));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_bind_port(session, NULL, 12345, 80));
+}
+
+TEST_F(AspSessionApiTest, BindPortWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_bind_port(session + 1, "192.168.0.1", 12345, 80));
+}
+
+TEST_F(AspSessionApiTest, ReleasePortWithInvalidParam)
+{
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_release_port(NULL, "192.168.0.1", 12345, 80));
+ EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_release_port(session, NULL, 12345, 80));
+}
+
+TEST_F(AspSessionApiTest, ReleasePortWithInvalidHandle)
+{
+ EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_release_port(session + 1, "192.168.0.1", 12345, 80));
+}
\ No newline at end of file
-/*
-* Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
#include <gtest/gtest.h>
+#include <stdlib.h>
#include "asp.h"
-
-extern "C" {
-}
+#include "asp-conts.h"
+#include "asp-session.h"
class AspSessionTest: public ::testing::Test {
- protected:
- void SetUp() override
- {
- asp_initialize();
- asp_session_create(macAddress, advId, &session);
- }
-
- void TearDown() override
- {
- asp_session_destroy(session);
- asp_deinitialize();
- }
-
- asp_session_h session;
- char *macAddress = "00:11:22:33:44:55";
- char *info = "HDCP Enable";
- int advId = 0x01;
+protected:
+ void SetUp() override
+ {
+ mSession = new AspSession(mSessionMac, mSessionId, mAdvId);
+ }
+
+ void TearDown() override
+ {
+ if (mSession)
+ delete mSession;
+ }
+
+ AspSession *mSession;
+ std::string mSessionInfo = "HDCP Enable";
+ std::string mSessionMac = "11:22:33:44:55:66";
+ unsigned int mSessionId = 3;
+ unsigned int mAdvId = 4;
};
-TEST_F(AspSessionTest, GetMac)
-{
- char *mac = NULL;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_mac(session, &mac));
-}
-
-TEST_F(AspSessionTest, GetMacWithInvalidParam)
-{
- char *mac = nullptr;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_mac(session, NULL));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_mac(NULL, &mac));
-}
-
-TEST_F(AspSessionTest, GetMacWithInvalidHandle)
-{
- char *mac = nullptr;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_mac(session + 1, &mac));
-}
-
-TEST_F(AspSessionTest, GetId)
-{
- unsigned int id;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_id(session, &id));
-}
-
-TEST_F(AspSessionTest, GetIdWithInvalidParam)
-{
- unsigned int id;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_id(session, NULL));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_id(NULL, &id));
-}
-
-TEST_F(AspSessionTest, GetIdWithInvalidHandle)
-{
- unsigned int id;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_id(session + 1, &id));
-}
-
-TEST_F(AspSessionTest, SetInfo)
-{
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_info(session, info));
-}
-
-TEST_F(AspSessionTest, SetInfoWithInvalidParam)
-{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_info(session, NULL));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_info(NULL, info));
-}
-
-TEST_F(AspSessionTest, SetInfoWithInvalidHandle)
-{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_info(session + 1, info));
-}
-
-TEST_F(AspSessionTest, GetInfo)
-{
- char *serviceInfo = NULL;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_info(session, &serviceInfo));
-}
-
-TEST_F(AspSessionTest, GetInfoWithInvalidParam)
-{
- char *serviceInfo = NULL;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_info(NULL, &serviceInfo));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_info(session, NULL));
-}
-
-TEST_F(AspSessionTest, GetInfoWithInvalidHandle)
-{
- char *serviceInfo = NULL;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_info(session + 1, &serviceInfo));
-}
-
-TEST_F(AspSessionTest, SetP2pRoleScheme)
-{
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_role_scheme(session, ASP_ADVERT_P2P_ROLE_SCHEME_GC));
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_role_scheme(session, ASP_ADVERT_P2P_ROLE_SCHEME_GO));
-}
-
-TEST_F(AspSessionTest, SetP2pRoleSchemeWithInvalidParam)
-{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_role_scheme(NULL, ASP_ADVERT_P2P_ROLE_SCHEME_GC));
-}
-
-TEST_F(AspSessionTest, SetP2pRoleSchemeWithInvalidHandle)
-{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_p2p_role_scheme(session + 1,
- ASP_ADVERT_P2P_ROLE_SCHEME_GC));
-}
-
-TEST_F(AspSessionTest, GetP2pRoleScheme)
-{
- asp_advert_p2p_role_scheme_e role;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_p2p_role_scheme(session, &role));
-}
-
-TEST_F(AspSessionTest, GetP2pRoleSchemeWithInvalidParam)
-{
- asp_advert_p2p_role_scheme_e role;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_role_scheme(session, NULL));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_role_scheme(NULL, &role));
-}
-
-TEST_F(AspSessionTest, GetP2pRoleSchemeWithInvalidHandle)
-{
- asp_advert_p2p_role_scheme_e role;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_p2p_role_scheme(session + 1, &role));
-}
-
-TEST_F(AspSessionTest, SetP2pConfigMethod)
-{
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_DEFAULT));
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_BOTH));
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_DISPLAY));
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_PIN_KEYPAD));
-}
-
-TEST_F(AspSessionTest, SetP2pConfigMethodWithInvalidParam)
-{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_config_method(NULL, ASP_WPS_TYPE_DEFAULT));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_p2p_config_method(session, ASP_WPS_TYPE_NONE));
-}
-
-TEST_F(AspSessionTest, SetP2pConfigMethodWithInvalidHandle)
-{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_p2p_config_method(session + 1, ASP_WPS_TYPE_DEFAULT));
-}
-
-TEST_F(AspSessionTest, GetP2pConfigMethod)
-{
- asp_wps_type_e config;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_p2p_config_method(session, &config));
-}
-
-TEST_F(AspSessionTest, GetP2pConfigMethodWithIvalidParam)
-{
- asp_wps_type_e config;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_config_method(NULL, &config));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_p2p_config_method(session, NULL));
-}
-
-TEST_F(AspSessionTest, GetP2pConfigMethodWithIvalidHandle)
-{
- asp_wps_type_e config;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_p2p_config_method(session + 1, &config));
-}
-
-TEST_F(AspSessionTest, GetCloseStatus)
-{
- int status;
- EXPECT_EQ(ASP_ERROR_NONE, asp_session_get_close_status(session, &status));
-}
-
-TEST_F(AspSessionTest, GetCloseStatusWithInvalidParam)
-{
- int status;
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_close_status(NULL, &status));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_close_status(session, NULL));
-}
-
-TEST_F(AspSessionTest, GetCloseStatusWithInvalidHandle)
-{
- int status;
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_get_close_status(session + 1, &status));
-}
-
-TEST_F(AspSessionTest, ConnectWithInvalidParam)
+std::string makeInvalidServiceInfo()
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_connect(NULL));
+ int length = SESSION_INFO_LEN + 5;
+ std::string str(length, '\0');
+ for (int i = 0; i < length; ++i)
+ str[i] = rand() % 95 + 32;
+ return str;
}
-TEST_F(AspSessionTest, ConnectWithInvalidHandle)
+TEST_F(AspSessionTest, setSessionInfoN)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_connect(session + 1));
+ EXPECT_EQ(false, mSession->setSessionInfo(""));
+ EXPECT_EQ(false, mSession->setSessionInfo(makeInvalidServiceInfo()));
}
-TEST_F(AspSessionTest, ConfirmWithInvalidParam)
+TEST_F(AspSessionTest, setSessionInfoP)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_confirm(NULL, 1, "12345678"));
+ EXPECT_EQ(true, mSession->setSessionInfo(mSessionInfo));
+ EXPECT_EQ(true, mSession->sessionInformation == mSessionInfo);
}
-TEST_F(AspSessionTest, ConfirmWithInvalidHandle)
+TEST_F(AspSessionTest, setNetworkConfigN)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_confirm(session + 1, 1, "12345678"));
+ EXPECT_EQ(false, mSession->setNetworkConfig(-1));
+ EXPECT_EQ(false, mSession->setNetworkConfig(ASP_WPS_TYPE_NONE));
+ EXPECT_EQ(false, mSession->setNetworkConfig(ASP_WPS_TYPE_PIN_KEYPAD + 1));
}
-TEST_F(AspSessionTest, GetHandleWithInvalidParam)
+TEST_F(AspSessionTest, setNetworkConfigP)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_get_handle(macAddress, advId, NULL));
+ EXPECT_EQ(true, mSession->setNetworkConfig(ASP_WPS_TYPE_DEFAULT));
+ EXPECT_EQ(true, mSession->setNetworkConfig(ASP_WPS_TYPE_PIN_BOTH));
+ EXPECT_EQ(true, mSession->setNetworkConfig(ASP_WPS_TYPE_PIN_DISPLAY));
+ EXPECT_EQ(true, mSession->setNetworkConfig(ASP_WPS_TYPE_PIN_KEYPAD));
}
-TEST_F(AspSessionTest, SetStateReadyWithInvalidParam)
+TEST_F(AspSessionTest, getSessionN)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_set_state_ready(NULL));
+ AspSession *session = new AspSession;
+ EXPECT_EQ(NULL, getSession(session));
+ EXPECT_EQ(NULL, getSession(NULL));
+ delete session;
}
-TEST_F(AspSessionTest, SetStateReadyWithInvalidHandle)
+TEST_F(AspSessionTest, getSessionP)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_set_state_ready(session + 1));
+ AspSession *session = new AspSession;
+ addSessionToServiceList(session);
+ EXPECT_EQ(session, getSession(session));
+ removeSessionFromServiceList(session);
+ delete session;
}
-TEST_F(AspSessionTest, CloseWithInvalidParam)
+TEST_F(AspSessionTest, getSessionWithMacandIdN1)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_close(NULL));
+ EXPECT_EQ(NULL, getSession(mSessionMac, mSessionId));
}
-TEST_F(AspSessionTest, CloseWithInvalidHandle)
+TEST_F(AspSessionTest, getSessionWithMacandIdN2)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_close(session + 1));
+ addSessionToServiceList(mSession);
+ EXPECT_EQ(NULL, getSession(mSessionMac, 1));
+ EXPECT_EQ(NULL, getSession("", mSessionId));
+ removeSessionFromServiceList(mSession);
}
-TEST_F(AspSessionTest, BindPortWithInvalidParam)
+TEST_F(AspSessionTest, getSessionWithMacandIdP)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_bind_port(NULL, "192.168.0.1", 12345, 80));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_bind_port(session, NULL, 12345, 80));
+ addSessionToServiceList(mSession);
+ EXPECT_EQ(mSession, getSession(mSessionMac, mSessionId));
+ removeSessionFromServiceList(mSession);
}
-TEST_F(AspSessionTest, BindPortWithInvalidHandle)
+TEST_F(AspSessionTest, removeN)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_bind_port(session + 1, "192.168.0.1", 12345, 80));
+ EXPECT_EQ(false, removeSession(mSession));
}
-TEST_F(AspSessionTest, ReleasePortWithInvalidParam)
+TEST_F(AspSessionTest, addRemoveP1)
{
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_release_port(NULL, "192.168.0.1", 12345, 80));
- EXPECT_EQ(ASP_ERROR_INVALID_PARAMETER, asp_session_release_port(session, NULL, 12345, 80));
+ addSessionToServiceList(mSession);
+ EXPECT_EQ(true, removeSession(mSession));
+ mSession = NULL;
}
-TEST_F(AspSessionTest, ReleasePortWithInvalidHandle)
+TEST_F(AspSessionTest, addRemoveP2)
{
- EXPECT_EQ(ASP_ERROR_SESSION_NOT_FOUND, asp_session_release_port(session + 1, "192.168.0.1", 12345, 80));
+ addSessionToServiceList(mSession);
+ removeSessionFromServiceList(mSession);
+ EXPECT_EQ(NULL, removeSession(mSession));
+ mSession = NULL;
}
\ No newline at end of file