Remove the TIZEN_FEATURE_ASP build flag 43/138643/4
authorJiung Yu <jiung.yu@samsung.com>
Thu, 13 Jul 2017 05:53:12 +0000 (14:53 +0900)
committertaesub kim <taesub.kim@samsung.com>
Tue, 18 Jul 2017 01:32:47 +0000 (01:32 +0000)
Change-Id: I7b39f983f3e29db3196c58926e87a8e214fcc13a
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
18 files changed:
CMakeLists.txt
include/wifi-direct-asp.h
include/wifi-direct-dbus.h
include/wifi-direct-manager.h
include/wifi-direct-session.h
oem/wifi-direct-oem.c
oem/wifi-direct-oem.h
packaging/wifi-direct-manager.spec
plugin/wpasupplicant/ctrl_iface_dbus/include/wfd-plugin-wpasupplicant.h
plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c
plugin/wpasupplicant/emul/include/wfd-plugin-wpasupplicant.h
plugin/wpasupplicant/emul/wfd-plugin-wpasupplicant-emul.c
src/wifi-direct-asp.c
src/wifi-direct-event.c
src/wifi-direct-iface.c
src/wifi-direct-manager.c
src/wifi-direct-session.c
src/wifi-direct-util.c

index 8def770..0215d8f 100644 (file)
@@ -48,10 +48,6 @@ IF(TIZEN_PROFILE_COMMON)
        ADD_DEFINITIONS(-DTIZEN_PROFILE_COMMON)
 ENDIF(TIZEN_PROFILE_COMMON)
 
-IF(TIZEN_FEATURE_ASP)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_ASP)
-ENDIF(TIZEN_FEATURE_ASP)
-
 IF(TIZEN_PROFILE_MOBILE)
        ADD_DEFINITIONS(-DTIZEN_PROFILE_MOBILE)
 ENDIF(TIZEN_PROFILE_MOBILE)
@@ -80,6 +76,7 @@ SET(SRCS
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-session.c
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-event.c
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-service.c
+       ${CMAKE_SOURCE_DIR}/src/wifi-direct-asp.c
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-util.c
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-dbus.c
        ${CMAKE_SOURCE_DIR}/src/wifi-direct-error.c
@@ -87,10 +84,6 @@ SET(SRCS
        ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c
        )
 
-IF(TIZEN_FEATURE_ASP)
-       SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/src/wifi-direct-asp.c)
-ENDIF(TIZEN_FEATURE_ASP)
-
 IF(TIZEN_ENABLE_PRD)
        SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/prd/src/wifi-direct-prd.c)
 ENDIF(TIZEN_ENABLE_PRD)
index f9be585..45df7b1 100644 (file)
@@ -45,6 +45,7 @@ typedef enum {
        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,  /**< group formation failed*/
 } asp_connect_status_e;
 
+bool wfd_asp_is_asp_session(wfd_session_s *session);
 void wfd_asp_session_request(wfd_oem_asp_prov_s *prov_param);
 void wfd_asp_session_config_request(unsigned int session_id, int get_pin, char *pin);
 void wfd_asp_connect_status(unsigned char *session_mac,
index 48e0593..4f4bb34 100644 (file)
@@ -46,9 +46,7 @@ extern "C" {
 #define DBUS_INTERFACE                          "org.freedesktop.DBus"
 #define DBUS_PATH                               "/org/freedesktop/DBus"
 #endif /* TIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND */
-#if defined(TIZEN_FEATURE_ASP)
 #define WFD_MANAGER_ASP_INTERFACE               WFD_MANAGER_SERVICE ".asp"
-#endif
 
 #define WFD_MANAGER_DBUS_REPLY_TIMEOUT          10 * 1000
 #define WFD_MANAGER_DBUS_REPLY_TIMEOUT_SYNC     10 * 1000
index ac00867..6530ccf 100644 (file)
@@ -82,9 +82,7 @@ typedef enum {
        WFD_WPS_MODE_PBC = 0x1,
        WFD_WPS_MODE_DISPLAY = 0x2,
        WFD_WPS_MODE_KEYPAD = 0x4,
-#if defined(TIZEN_FEATURE_ASP)
        WFD_WPS_MODE_P2PS = 0x8,
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_wps_mode_e;
 
 typedef enum {
@@ -252,11 +250,9 @@ int wfd_manager_set_session_availability(int availability);
 int wfd_manager_start_discovery(wfd_manager_s *manager, int mode, int timeout,
                                const char* type, int channel, int frequency);
 int wfd_manager_cancel_discovery(wfd_manager_s *manager);
-#if defined(TIZEN_FEATURE_ASP)
 wfd_device_s *wfd_manager_get_connected_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr);
 int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params);
 int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int confirmed);
-#endif /* TIZEN_FEATURE_ASP */
 #ifdef TIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND
 void wfd_manager_free_active_client_list(void);
 void wfd_manager_add_active_client(const char *client_id);
index df32456..3d1c7fe 100644 (file)
@@ -33,9 +33,7 @@ typedef enum {
        SESSION_TYPE_INVITE,
        SESSION_TYPE_JOIN,
        SESSION_TYPE_MULTI,
-#if defined(TIZEN_FEATURE_ASP)
        SESSION_TYPE_ASP,
-#endif /* TIZEN_FEATURE_ASP */
 } session_type_e;
 
 typedef enum {
@@ -66,11 +64,9 @@ typedef struct {
        int go_intent;
        int freq;
        char wps_pin[PINSTR_LEN+1];
-#if defined(TIZEN_FEATURE_ASP)
        unsigned int session_id;
        unsigned char service_mac[MACADDR_LEN];
        unsigned char session_mac[MACADDR_LEN];
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_session_s;
 
 wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_mode, int direction);
@@ -92,10 +88,8 @@ int wfd_session_complete(wfd_session_s *session);
 int wfd_session_timer(wfd_session_s *session, int start);
 
 int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event);
-#if defined(TIZEN_FEATURE_ASP)
 int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *params);
 int wfd_session_asp_connect(wfd_session_s *session, int role);
 int wfd_session_asp_persistent_connect(wfd_session_s *session, int persist_group_id);
-#endif /* TIZEN_FEATURE_ASP */
 
 #endif /* __WIFI_DIRECT_SESSION_H__ */
index b689486..bed386e 100644 (file)
@@ -413,7 +413,7 @@ int wfd_oem_refresh(wfd_oem_ops_s *ops)
 
        return ops->refresh();
 }
-#if defined(TIZEN_FEATURE_ASP)
+
 int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service, int replace)
 {
        if (!ops || !ops->advertise_service)
@@ -453,7 +453,6 @@ int wfd_oem_asp_prov_disc_req(wfd_oem_ops_s *ops, wfd_oem_asp_prov_s *params)
 
        return ops->asp_prov_disc_req(params);
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 int wfd_oem_add_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
                     const char* vsie)
index b328b74..a0544a0 100644 (file)
 #define OEM_QUERY_ID_LEN 15
 #define OEM_SERVICE_MAX_LEN 1024
 
-#if defined(TIZEN_FEATURE_ASP)
 /* Referring to Wi-Fi Peer-to-Peer Services Technical Specification v1.1
  * The default P2Ps PIN is 12345670. Any device decided to be GO will use
  * that as device password
  */
 #define OEM_DEFAULT_P2PS_PIN "12345670"
-#endif /* TIZEN_FEATURE_ASP */
 
 #define OEM_MAX_PEER_NUM 8
 
@@ -70,9 +68,7 @@ typedef enum {
        WFD_OEM_SC_FAIL_BOTH_GO_INTENT_15 = 9,
        WFD_OEM_SC_FAIL_INCOMPATIBLE_PROV_METHOD = 10,
        WFD_OEM_SC_FAIL_REJECTED_BY_USER = 11,
-#if defined(TIZEN_FEATURE_ASP)
        WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER = 12,
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_oem_status_code_e;
 
 typedef enum {
@@ -89,7 +85,6 @@ typedef enum {
        WFD_OEM_WPA_STATE_MAX,
 } ws_wpa_state_type_e;
 
-#if defined(TIZEN_FEATURE_ASP)
 typedef enum {
        WFD_OEM_ASP_WPS_TYPE_NONE = 0x00,  /**< No WPS type */
        WFD_OEM_ASP_WPS_TYPE_DEFAULT = 0x00,  /**< Default WPS type both P2PS and PIN */
@@ -104,7 +99,6 @@ typedef enum {
        WFD_OEM_ASP_SESSION_ROLE_CLIENT = 0x02,  /**< Session network role client */
        WFD_OEM_ASP_SESSION_ROLE_GO = 0x04,  /**< Session network role GO */
 } wfd_oem_asp_network_role_e;
-#endif /* TIZEN_FEATURE_ASP */
 
 typedef enum {
        WFD_OEM_EVENT_NONE,
@@ -143,11 +137,10 @@ typedef enum {
 
        WFD_OEM_EVENT_GROUP_FORMATION_FAILURE,
        WFD_OEM_EVENT_INVITATION_ACCEPTED,
-#if defined(TIZEN_FEATURE_ASP)
+
        WFD_OEM_EVENT_ASP_SERV_RESP,
        WFD_OEM_EVENT_ASP_PROV_START,
        WFD_OEM_EVENT_ASP_PROV_DONE,
-#endif /* TIZEN_FEATURE_ASP */
 
        WFD_OEM_EVENT_MAX,
 } wfd_oem_event_e;
@@ -191,7 +184,6 @@ typedef struct {
        int max_tput;
 } wfd_oem_display_s;
 
-#if defined(TIZEN_FEATURE_ASP)
 typedef struct {
        unsigned int adv_id;
        unsigned int config_method;
@@ -201,7 +193,6 @@ typedef struct {
        unsigned char instance_name_length;
        char *instance_name;
 } wfd_oem_advertise_service_s;
-#endif /* TIZEN_FEATURE_ASP */
 
 typedef struct {
        int age;
@@ -234,10 +225,8 @@ typedef struct {
        int device_go_intent;
        wfd_oem_display_s display;
        unsigned char p2p_go_addr[OEM_MACADDR_LEN];
-#if defined(TIZEN_FEATURE_ASP)
        int has_asp_services;
        int has_asp2_services;
-#endif /* TIZEN_FEATURE_ASP */
        int rssi;
 } wfd_oem_dev_data_s;
 
@@ -302,10 +291,8 @@ typedef struct {
        unsigned char ip_addr_peer[OEM_IPADDR_LEN];
        int edata_type;
        void *edata;
-#if defined(TIZEN_FEATURE_ASP)
        void *asp_services;
        void *asp2_services;
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_oem_event_s;
 
 typedef enum {
@@ -316,10 +303,8 @@ typedef enum {
        WFD_OEM_EDATA_TYPE_GROUP,
        WFD_OEM_EDATA_TYPE_SERVICE,
        WFD_OEM_EDATA_TYPE_NEW_SERVICE,
-#if defined(TIZEN_FEATURE_ASP)
        WFD_OEM_EDATA_TYPE_ASP_SERVICE,
        WFD_OEM_EDATA_TYPE_ASP_PROV,
-#endif /* TIZEN_FEATURE_ASP */
 } ws_event_type_e;
 
 typedef enum {
@@ -342,9 +327,7 @@ typedef enum {
        WFD_OEM_WPS_MODE_PBC = 0x1,
        WFD_OEM_WPS_MODE_DISPLAY = 0x2,
        WFD_OEM_WPS_MODE_KEYPAD = 0x4,
-#if defined(TIZEN_FEATURE_ASP)
        WFD_OEM_WPS_MODE_P2PS = 0x8,
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_oem_wps_mode_e;
 
 #define WFD_OEM_GROUP_FLAG_GROUP_OWNER 0x1
@@ -369,9 +352,7 @@ typedef struct {
        int scan_type;
        int freq;
        int refresh;
-#if defined(TIZEN_FEATURE_ASP)
        char *seek;
-#endif /* TIZEN_FEATURE_ASP */
 } wfd_oem_scan_param_s;
 
 typedef struct {
@@ -500,7 +481,6 @@ typedef enum {
        WFD_OEM_PERSISTENT_MODE_GO = 0x3,
 } wfd_oem_persistent_mode_e;
 
-#if defined(TIZEN_FEATURE_ASP)
 typedef enum {
        WFD_OEM_TYPE_ADVERTISE,
        WFD_OEM_TYPE_SEEK,
@@ -546,7 +526,7 @@ typedef struct {
        char wps_pin[OEM_PINSTR_LEN+1];
        unsigned char ip_addr[OEM_IPADDR_LEN];
 } wfd_oem_asp_prov_s;
-#endif /* TIZEN_FEATURE_ASP */
+
 typedef struct {
        int network_id;
        char ssid[OEM_DEV_NAME_LEN + 1];
@@ -600,11 +580,9 @@ typedef struct {
        void (*group_formation_failure_cb) (wfd_oem_event_s *event);
        void (*invitation_accepted_cb) (wfd_oem_event_s *event);
 
-#if defined(TIZEN_FEATURE_ASP)
        void (*asp_serv_resp_cb) (wfd_oem_event_s *event);
        void (*asp_prov_start_cb) (wfd_oem_event_s *event);
        void (*asp_prov_done_cb) (wfd_oem_event_s *event);
-#endif /* TIZEN_FEATURE_ASP */
 
        void *extra_data;
 } wfd_oem_event_cbs_s;
@@ -668,13 +646,11 @@ typedef struct {
        int (*remove_all_network)(void);
        int (*get_wpa_status)(int *wpa_status);
 
-#if defined(TIZEN_FEATURE_ASP)
        int (*advertise_service)(wfd_oem_asp_service_s *service, int replace);
        int (*cancel_advertise_service)(wfd_oem_asp_service_s *service);
        int (*seek_service)(wfd_oem_asp_service_s *service);
        int (*cancel_seek_service)(wfd_oem_asp_service_s *service);
        int (*asp_prov_disc_req)(wfd_oem_asp_prov_s *params);
-#endif /* TIZEN_FEATURE_ASP */
 
        int (*add_vsie)(wfd_oem_vsie_frames_e frame_id, const char* vsie);
        int (*get_vsie)(wfd_oem_vsie_frames_e frame_id, char **vsie);
@@ -736,13 +712,12 @@ int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable);
 int wfd_oem_set_display(wfd_oem_ops_s *ops, wfd_oem_display_s *wifi_display);
 
 int wfd_oem_refresh(wfd_oem_ops_s *ops);
-#if defined(TIZEN_FEATURE_ASP)
+
 int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service, int replace);
 int wfd_oem_cancel_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
 int wfd_oem_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
 int wfd_oem_cancel_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
 int wfd_oem_asp_prov_disc_req(wfd_oem_ops_s *ops, wfd_oem_asp_prov_s *params);
-#endif /* TIZEN_FEATURE_ASP */
 
 int wfd_oem_add_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
                     const char* vsie);
index f267d7a..c65ba59 100644 (file)
@@ -8,7 +8,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.231
+Version:       1.2.232
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
@@ -218,7 +218,6 @@ cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} -DARCHITECTURE=$ARCH \
        -DTIZEN_FEATURE_IP_OVER_EAPOL=1 \
        -DTIZEN_DEBUG_DBUS_VALUE=1 \
        -DTIZEN_PROFILE_MOBILE=1 \
-       -DTIZEN_FEATURE_ASP=1 \
 %if "%{?_lib}" == "lib64"
        -DTIZEN_ARCH_64=1 \
 %endif
@@ -247,7 +246,6 @@ cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} -DARCHITECTURE=$ARCH \
        -DTIZEN_FEATURE_IP_OVER_EAPOL=1 \
        -DTIZEN_DEBUG_DBUS_VALUE=1 \
        -DTIZEN_PROFILE_MOBILE=1 \
-       -DTIZEN_FEATURE_ASP=1 \
 %if "%{?_lib}" == "lib64"
        -DTIZEN_ARCH_64=1 \
 %endif
index 2386d34..afe1307 100644 (file)
 #      define DEFAULT_LISTEN_CHANNEL 1
 #      define DEFAULT_OPER_REG_CLASS 81
 #      define DEFAULT_OPER_CHANNEL 1
-#if !defined(TIZEN_FEATURE_ASP)
-#      define DEFAULT_CONFIG_METHOD "display push_button keypad"
-#else
 #      define DEFAULT_CONFIG_METHOD "display push_button keypad p2ps"
-#endif
 #      define DEFAULT_NO_GROUP_IFACE 0
 #endif /* TIZEN_PROFILE_MOBILE */
 
 #define WS_CONFIG_METHOD_DISPLAY 0x0008
 #define WS_CONFIG_METHOD_PUSHBUTTON 0x0080
 #define WS_CONFIG_METHOD_KEYPAD 0x0100
-#if defined(TIZEN_FEATURE_ASP)
 #define WS_CONFIG_METHOD_P2PS 0x1000
-#endif /* TIZEN_FEATURE_ASP */
 
 #define WS_DBUS_STR_PBC "pbc"
 #define WS_DBUS_STR_DISPLAY "display"
 #define WS_DBUS_STR_KEYPAD "keypad"
-#if defined(TIZEN_FEATURE_ASP)
 #define WS_DBUS_STR_P2PS "p2ps"
-#endif /* TIZEN_FEATURE_ASP */
 #define WS_DBUS_STR_JOIN "join"
 #define WS_DBUS_STR_AUTH "auth"
 #define WS_DBUS_STR_PERSISTENT "persistent"
@@ -299,9 +291,7 @@ typedef enum {
         * "Identity" attribute in M1. */
        WS_DEV_PASSWD_ID_REGISTRAR_SPECIFIED = 0x0005,  /* ENTER-PIN */
 
-#if defined(TIZEN_FEATURE_ASP)
        WS_DEV_PASSWD_ID_P2PS = 0x0008,
-#endif /* TIZEN_FEATURE_ASP */
 } ws_dev_passwd_id_e;
 
 typedef enum {
@@ -438,13 +428,11 @@ int ws_set_operating_channel(int channel);
 int ws_remove_all_network(void);
 int ws_get_wpa_status(int *wpa_status);
 
-#if defined(TIZEN_FEATURE_ASP)
 int ws_advertise_service(wfd_oem_asp_service_s *service, int replace);
 int ws_cancel_advertise_service(wfd_oem_asp_service_s *service);
 int ws_seek_service(wfd_oem_asp_service_s *service);
 int ws_cancel_seek_service(wfd_oem_asp_service_s *service);
 int ws_asp_prov_disc_req(wfd_oem_asp_prov_s *asp_params);
-#endif /* TIZEN_FEATURE_ASP */
 
 int ws_add_vsie(wfd_oem_vsie_frames_e frame_id, const char* vsie);
 int ws_get_vsie(wfd_oem_vsie_frames_e frame_id, char **vsie);
index 0066bab..8667354 100644 (file)
@@ -50,7 +50,6 @@
 #include "dbus/wfd-plugin-supplicant-dbus.h"
 #include "wfd-plugin-wpasupplicant.h"
 
-#if defined(TIZEN_FEATURE_ASP)
 #define GLIST_ITER_START(arg_list, elem)\
        GList *temp = NULL;\
        temp = g_list_first(arg_list);\
@@ -59,7 +58,6 @@
                temp = g_list_next(temp);\
 
 #define GLIST_ITER_END() }
-#endif
 
 #define NETCONFIG_SERVICE "net.netconfig"
 #define NETCONFIG_WIFI_INTERFACE "net.netconfig.wifi"
@@ -133,13 +131,11 @@ static wfd_oem_ops_s supplicant_ops = {
        .remove_all_network = ws_remove_all_network,
        .get_wpa_status = ws_get_wpa_status,
 
-#if defined(TIZEN_FEATURE_ASP)
        .advertise_service = ws_advertise_service,
        .cancel_advertise_service = ws_cancel_advertise_service,
        .seek_service = ws_seek_service,
        .cancel_seek_service = ws_cancel_seek_service,
        .asp_prov_disc_req = ws_asp_prov_disc_req,
-#endif /* TIZEN_FEATURE_ASP */
 
        .add_vsie = ws_add_vsie,
        .get_vsie = ws_get_vsie,
@@ -195,11 +191,9 @@ static const char *__ws_wps_to_txt(int wps_mode)
                return WS_DBUS_STR_DISPLAY;
        case WFD_OEM_WPS_MODE_KEYPAD:
                return WS_DBUS_STR_KEYPAD;
-#if defined(TIZEN_FEATURE_ASP)
        case WFD_OEM_WPS_MODE_NONE:
        case WFD_OEM_WPS_MODE_P2PS:
                return WS_DBUS_STR_P2PS;
-#endif /* TIZEN_FEATURE_ASP */
        default:
                return "";
        }
@@ -874,7 +868,6 @@ static void __ws_peer_property(const char *key, GVariant *value, void *user_data
 
                if (!ISZEROMACADDR(go_dev_addr))
                        peer->dev_role = WFD_OEM_DEV_ROLE_GC;
-#if defined(TIZEN_FEATURE_ASP)
        } else if (g_strcmp0(key, "AdvertiseService") == 0) {
                if (value != NULL && g_variant_get_size(value) != 0)
                        peer->has_asp_services = 1;
@@ -886,7 +879,6 @@ static void __ws_peer_property(const char *key, GVariant *value, void *user_data
                else
                        peer->has_asp2_services = 0;
 
-#endif /* TIZEN_FEATURE_ASP */
        } else {
                WDP_LOGD("Unknown value");
        }
@@ -1406,7 +1398,6 @@ void __ws_extract_servicediscoveryresponse_details(const char *key, GVariant *va
        __WDP_LOG_FUNC_EXIT__;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 static void __ws_extract_serviceaspresponse_details(const char *key, GVariant *value, void *user_data)
 {
        __WDP_LOG_FUNC_ENTER__;
@@ -1653,7 +1644,6 @@ static void __ws_extract_provision_fail_details(const char *key, GVariant *value
        }
        __WDP_LOG_FUNC_EXIT__;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 static int _ws_flush(void)
 {
@@ -1724,7 +1714,6 @@ static int _ws_cancel(void)
        return 0;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 int ws_get_advertise_service(const char *peer_path, GList **asp_services)
 {
        __WDP_LOG_FUNC_ENTER__;
@@ -2050,7 +2039,6 @@ GLIST_ITER_END()
        __WDP_LOG_FUNC_EXIT__;
        return res;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 static void _ws_process_device_found_properties(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
@@ -2110,17 +2098,14 @@ static void _ws_process_device_found_properties(GDBusConnection *connection,
                g_variant_iter_free(iter);
        }
 
-#if defined(TIZEN_FEATURE_ASP)
        if (edata->has_asp_services)
                ws_get_advertise_service(peer_path, (GList **)&(event.asp_services));
        if (edata->has_asp2_services)
                ws_get_advertise_asp_service(peer_path, (GList **)&(event.asp2_services));
-#endif /* TIZEN_FEATURE_ASP */
 
        if (g_pd->callback->peer_found_cb)
                g_pd->callback->peer_found_cb(&event);
 
-#if defined(TIZEN_FEATURE_ASP)
        if (event.asp_services != NULL) {
                GList *l;
                wfd_oem_advertise_service_s *service;
@@ -2142,7 +2127,6 @@ static void _ws_process_device_found_properties(GDBusConnection *connection,
                        g_free(service);
                }
        }
-#endif /* TIZEN_FEATURE_ASP */
        g_free(event.edata);
 
        __WDP_LOG_FUNC_EXIT__;
@@ -2510,7 +2494,6 @@ static void _ws_process_prov_disc_pbc_resp(GDBusConnection *connection,
        __WDP_LOG_FUNC_EXIT__;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 static void _ws_process_prov_disc_failure(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
                const gchar *signal, GVariant *parameters, gpointer user_data)
@@ -2562,50 +2545,6 @@ static void _ws_process_prov_disc_failure(GDBusConnection *connection,
 
        __WDP_LOG_FUNC_EXIT__;
 }
-#else
-static void _ws_process_prov_disc_failure(GDBusConnection *connection,
-               const gchar *sender, const gchar *object_path, const gchar *interface,
-               const gchar *signal, GVariant *parameters, gpointer user_data)
-{
-       __WDP_LOG_FUNC_ENTER__;
-       wfd_oem_event_s event;
-       static char peer_path[DBUS_OBJECT_PATH_MAX] = {'\0',};
-       static unsigned char peer_dev[OEM_MACSTR_LEN] = {'\0',};
-       const char *path = NULL;
-       int prov_status = 0;
-       char *loc = NULL;
-
-       DEBUG_SIGNAL(sender, object_path, interface, signal, parameters);
-
-       if (!g_pd || !g_pd->callback) {
-               WDP_LOGD("Ignoring event");
-               __WDP_LOG_FUNC_EXIT__;
-               return;
-       }
-
-       memset(&event, 0x0, sizeof(wfd_oem_event_s));
-
-       event.edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
-       event.event_id = WFD_OEM_EVENT_PROV_DISC_FAIL;
-
-       g_variant_get(parameters, "(&oi)", &path, &prov_status);
-       g_strlcpy(peer_path, path, DBUS_OBJECT_PATH_MAX);
-       WDP_LOGD("Retrive Added path [%s]", peer_path);
-       WDP_LOGD("Retrive Failure stateus [%d]", prov_status);
-
-       loc = strrchr(peer_path, '/');
-       if (loc != NULL)
-               __ws_mac_compact_to_normal(loc + 1, peer_dev);
-       __ws_txt_to_mac(peer_dev, event.dev_addr);
-       WDP_LOGE("peer mac [" MACSTR "]", MAC2STR(event.dev_addr));
-
-       if (g_pd->callback->prov_disc_fail_cb)
-               g_pd->callback->prov_disc_fail_cb(&event);
-
-       __WDP_LOG_FUNC_EXIT__;
-}
-#endif /* TIZEN_FEATURE_ASP */
-
 
 static void _ws_process_group_started(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
@@ -2976,7 +2915,6 @@ static void _ws_process_service_discovery_response(GDBusConnection *connection,
        __WDP_LOG_FUNC_EXIT__;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 static void _ws_process_service_asp_response(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
                const gchar *signal, GVariant *parameters, gpointer user_data)
@@ -3043,7 +2981,6 @@ GLIST_ITER_END()
 
        __WDP_LOG_FUNC_EXIT__;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 static void _ws_process_persistent_group_added(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
@@ -3199,7 +3136,6 @@ static void _ws_process_invitation_accepted(GDBusConnection *connection,
        __WDP_LOG_FUNC_EXIT__;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 static void _ws_process_asp_provision_start(GDBusConnection *connection,
                const gchar *sender, const gchar *object_path, const gchar *interface,
                const gchar *signal, GVariant *parameters, gpointer user_data)
@@ -3301,7 +3237,6 @@ static void _ws_process_asp_provision_done(GDBusConnection *connection,
 
        __WDP_LOG_FUNC_EXIT__;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 static struct {
        int sub_id;
@@ -3419,7 +3354,6 @@ static struct {
                "ServiceDiscoveryResponse",
                _ws_process_service_discovery_response
        },
-#if defined(TIZEN_FEATURE_ASP)
        {
                0,
                SUPPLICANT_P2PDEVICE,
@@ -3438,7 +3372,6 @@ static struct {
                "ASPProvisionDone",
                _ws_process_asp_provision_done
        },
-#endif /* TIZEN_FEATURE_ASP */
        {
                0,
                SUPPLICANT_P2PDEVICE,
@@ -4418,9 +4351,7 @@ int ws_activate(int concurrent)
 int ws_deactivate(int concurrent)
 {
        __WDP_LOG_FUNC_ENTER__;
-#if defined(TIZEN_FEATURE_ASP)
        wfd_oem_asp_service_s *data = NULL;
-#endif /* TIZEN_FEATURE_ASP */
        int res = 0;
 
        if (!g_pd) {
@@ -4454,7 +4385,6 @@ int ws_deactivate(int concurrent)
        }
        g_pd->activated = FALSE;
 
-#if defined(TIZEN_FEATURE_ASP)
        GLIST_ITER_START(seek_list, data)
 
        if (data) {
@@ -4466,7 +4396,6 @@ int ws_deactivate(int concurrent)
        }
 
        GLIST_ITER_END()
-#endif /* TIZEN_FEATURE_ASP */
        __WDP_LOG_FUNC_EXIT__;
        return 0;
 }
@@ -4483,7 +4412,6 @@ static gboolean _retry_start_scan(gpointer data)
 }
 #endif
 
-#if defined(TIZEN_FEATURE_ASP)
 static void __ws_add_seek_params(GVariantBuilder *builder)
 {
        GVariantBuilder *outter = NULL;
@@ -4516,7 +4444,6 @@ GLIST_ITER_END()
 
        return;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 int ws_start_scan(wfd_oem_scan_param_s *param)
 {
@@ -4559,10 +4486,8 @@ int ws_start_scan(wfd_oem_scan_param_s *param)
                        if (param->scan_type == WFD_OEM_SCAN_TYPE_SOCIAL)
                                g_variant_builder_add(builder, "{sv}", "DiscoveryType",
                                                        g_variant_new_string("social"));
-#if defined(TIZEN_FEATURE_ASP)
                        if (seek_list != NULL)
                                __ws_add_seek_params(builder);
-#endif /* TIZEN_FEATURE_ASP */
 
                        value = g_variant_new("(a{sv})", builder);
                        g_variant_builder_unref(builder);
@@ -6931,7 +6856,6 @@ int ws_get_wpa_status(int *wpa_status)
        return 0;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 int ws_advertise_service(wfd_oem_asp_service_s *service, int replace)
 {
        __WDP_LOG_FUNC_ENTER__;
@@ -7349,7 +7273,6 @@ int ws_asp_prov_disc_req(wfd_oem_asp_prov_s *asp_params)
        __WDP_LOG_FUNC_EXIT__;
        return res;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 int ws_add_vsie(wfd_oem_vsie_frames_e frame_id, const char* vsie)
 {
index 18bba3c..41b31b7 100644 (file)
@@ -119,13 +119,11 @@ int ws_set_operating_channel(int channel);
 int ws_remove_all_network(void);
 int ws_get_wpa_status(int *wpa_status);
 
-#if defined(TIZEN_FEATURE_ASP)
 int ws_advertise_service(wfd_oem_asp_service_s *service, int replace);
 int ws_cancel_advertise_service(wfd_oem_asp_service_s *service);
 int ws_seek_service(wfd_oem_asp_service_s *service);
 int ws_cancel_seek_service(wfd_oem_asp_service_s *service);
 int ws_asp_prov_disc_req(wfd_oem_asp_prov_s *asp_params);
-#endif /* TIZEN_FEATURE_ASP */
 
 int ws_add_vsie(wfd_oem_vsie_frames_e frame_id, const char* vsie);
 int ws_get_vsie(wfd_oem_vsie_frames_e frame_id, char **vsie);
index 957f6a5..b4db51c 100644 (file)
@@ -69,13 +69,11 @@ static wfd_oem_ops_s supplicant_ops = {
        .remove_all_network = ws_remove_all_network,
        .get_wpa_status = ws_get_wpa_status,
 
-#if defined(TIZEN_FEATURE_ASP)
        .advertise_service = ws_advertise_service,
        .cancel_advertise_service = ws_cancel_advertise_service,
        .seek_service = ws_seek_service,
        .cancel_seek_service = ws_cancel_seek_service,
        .asp_prov_disc_req = ws_asp_prov_disc_req,
-#endif /* TIZEN_FEATURE_ASP */
 
        .add_vsie = ws_add_vsie,
        .get_vsie = ws_get_vsie,
@@ -474,7 +472,6 @@ int ws_get_wpa_status(int *wpa_status)
        return -1;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 int ws_advertise_service(wfd_oem_asp_service_s *service, int replace)
 {
        __WDP_LOG_FUNC_ENTER__;
@@ -514,7 +511,6 @@ int ws_asp_prov_disc_req(wfd_oem_asp_prov_s *asp_params)
        __WDP_LOG_FUNC_EXIT__;
        return -1;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 int ws_add_vsie(wfd_oem_vsie_frames_e frame_id, const char* vsie)
 {
index d81cac1..d2ef63c 100644 (file)
 #include "wifi-direct-manager.h"
 #include "wifi-direct-oem.h"
 #include "wifi-direct-util.h"
+#include "wifi-direct-session.h"
 
 #include "wifi-direct-asp.h"
 
+bool wfd_asp_is_asp_session(wfd_session_s *session)
+{
+       wfd_manager_s * manager = wfd_get_manager();
+       if (!manager || !session)
+               return false;
+
+       return manager->is_asp_supported && !ISZEROMACADDR(session->session_mac);
+}
+
 void wfd_asp_session_request(wfd_oem_asp_prov_s *prov_param)
 {
        GVariantBuilder *builder = NULL;
index 9264af2..ba630c3 100644 (file)
@@ -48,9 +48,7 @@
 #include "wifi-direct-error.h"
 #include "wifi-direct-log.h"
 #include "wifi-direct-dbus.h"
-#if defined(TIZEN_FEATURE_ASP)
 #include "wifi-direct-asp.h"
-#endif /* TIZEN_FEATURE_ASP */
 
 static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *data)
 {
@@ -192,53 +190,52 @@ void wfd_event_peer_found(wfd_oem_event_s *event)
                                             g_variant_new("(s)", peer_mac_address));
        }
 
-#if defined(TIZEN_FEATURE_ASP)
+       if (manager->is_asp_supported) {
+               GList *list;
+               GVariantBuilder *builder = NULL;
+               GVariant *params = NULL;
+               wfd_oem_advertise_service_s *service;
+
+               for (list = (GList *)event->asp_services; list != NULL; list = list->next) {
+                       service = (wfd_oem_advertise_service_s *)list->data;
+
+                       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+                       g_variant_builder_add(builder, "{sv}", "search_id", g_variant_new("t", service->search_id));
+                       g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", peer_mac_address));
+                       g_variant_builder_add(builder, "{sv}", "device_name", g_variant_new("s", edata->name));
+                       g_variant_builder_add(builder, "{sv}", "advertisement_id", g_variant_new("u", service->adv_id));
+                       g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->config_method));
+                       if (service->service_type)
+                               g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", service->service_type));
+                       params = g_variant_new("(a{sv})", builder);
+                       g_variant_builder_unref(builder);
+
+                       wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE,
+                                                        "SearchResult",
+                                                        params);
+               }
 
-       GList *list;
-       GVariantBuilder *builder = NULL;
-       GVariant *params = NULL;
-       wfd_oem_advertise_service_s *service;
-
-       for (list = (GList *)event->asp_services; list != NULL; list = list->next) {
-               service = (wfd_oem_advertise_service_s *)list->data;
-
-               builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
-               g_variant_builder_add(builder, "{sv}", "search_id", g_variant_new("t", service->search_id));
-               g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", peer_mac_address));
-               g_variant_builder_add(builder, "{sv}", "device_name", g_variant_new("s", edata->name));
-               g_variant_builder_add(builder, "{sv}", "advertisement_id", g_variant_new("u", service->adv_id));
-               g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->config_method));
-               if (service->service_type)
-                       g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", service->service_type));
-               params = g_variant_new("(a{sv})", builder);
-               g_variant_builder_unref(builder);
-
-               wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE,
-                                            "SearchResult",
-                                            params);
-       }
-
-       for (list = (GList *)event->asp2_services; list != NULL; list = list->next) {
-               service = (wfd_oem_advertise_service_s *)list->data;
-
-               builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
-               g_variant_builder_add(builder, "{sv}", "search_id", g_variant_new("t", service->search_id));
-               g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", peer_mac_address));
-               g_variant_builder_add(builder, "{sv}", "device_name", g_variant_new("s", edata->name));
-               g_variant_builder_add(builder, "{sv}", "advertisement_id", g_variant_new("u", service->adv_id));
-               g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->config_method));
-               if (service->service_type)
-                       g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", service->service_type));
-               if (service->instance_name)
-                       g_variant_builder_add(builder, "{sv}", "instance_name", g_variant_new("s", service->instance_name));
-               params = g_variant_new("(a{sv})", builder);
-               g_variant_builder_unref(builder);
-
-               wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE,
-                                            "SearchResult",
-                                            params);
+               for (list = (GList *)event->asp2_services; list != NULL; list = list->next) {
+                       service = (wfd_oem_advertise_service_s *)list->data;
+
+                       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+                       g_variant_builder_add(builder, "{sv}", "search_id", g_variant_new("t", service->search_id));
+                       g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", peer_mac_address));
+                       g_variant_builder_add(builder, "{sv}", "device_name", g_variant_new("s", edata->name));
+                       g_variant_builder_add(builder, "{sv}", "advertisement_id", g_variant_new("u", service->adv_id));
+                       g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", service->config_method));
+                       if (service->service_type)
+                               g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", service->service_type));
+                       if (service->instance_name)
+                               g_variant_builder_add(builder, "{sv}", "instance_name", g_variant_new("s", service->instance_name));
+                       params = g_variant_new("(a{sv})", builder);
+                       g_variant_builder_unref(builder);
+
+                       wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE,
+                                                        "SearchResult",
+                                                        params);
+               }
        }
-#endif
        __WDS_LOG_FUNC_EXIT__;
        return;
 }
@@ -399,6 +396,26 @@ void wfd_event_prov_disc_resp(wfd_oem_event_s *event)
        return;
 }
 
+static bool __asp_prov_disc_deferred(wfd_session_s *session, void *event_data)
+{
+       wfd_oem_asp_prov_s *prov_params = (wfd_oem_asp_prov_s *)event_data;
+       bool is_deferred = false;
+
+       if (prov_params && !ISZEROMACADDR(session->session_mac)) {
+               /* This connection is for ASP session */
+               if (prov_params->status == WFD_OEM_SC_FAIL_INVALID_PARAMS) {
+                       WDS_LOGD("ASP prov disc deferred. wait response.");
+                       wfd_asp_connect_status(session->session_mac,
+                                                               session->session_id,
+                                                               ASP_CONNECT_STATUS_REQUEST_DEFERRED,
+                                                               NULL);
+                       is_deferred = true;
+               }
+       }
+       __WDS_LOG_FUNC_EXIT__;
+       return is_deferred;
+}
+
 void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
 {
        __WDS_LOG_FUNC_ENTER__;
@@ -407,10 +424,6 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
        wfd_session_s *session = NULL;
        unsigned char *peer_addr = NULL;
        char peer_mac_address[MACSTR_LEN+1] = {0, };
-#if defined(TIZEN_FEATURE_ASP)
-       wfd_oem_asp_prov_s *prov_params = NULL;
-       prov_params = (wfd_oem_asp_prov_s *)event->edata;
-#endif
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
@@ -425,18 +438,11 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
                __WDS_LOG_FUNC_EXIT__;
                return;
        }
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac)) {
-               /* This connection is for ASP session */
-               if (prov_params->status == WFD_OEM_SC_FAIL_INVALID_PARAMS) {
-                       wfd_oem_scan_param_s param;
 
-                       WDS_LOGD("ASP prov disc deferred. wait response.");
-                       wfd_asp_connect_status(session->session_mac,
-                                                               session->session_id,
-                                                               ASP_CONNECT_STATUS_REQUEST_DEFERRED,
-                                                               NULL);
+       if (manager->is_asp_supported) {
+               if (__asp_prov_disc_deferred(session, event->edata)) {
                        /* start listen to wait for provision discovery request from peer */
+                       wfd_oem_scan_param_s param;
                        memset(&param, 0x0, sizeof(wfd_oem_scan_param_s));
                        param.scan_mode = WFD_OEM_SCAN_MODE_PASSIVE;
                        wfd_oem_start_scan(manager->oem_ops, &param);
@@ -444,7 +450,7 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
                        return;
                }
        }
-#endif
+
        snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
                                     "Connection",
@@ -452,13 +458,13 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
                                                   WIFI_DIRECT_ERROR_CONNECTION_FAILED,
                                                   WFD_EVENT_CONNECTION_RSP,
                                                   peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
-       WDS_LOGD("ASP prov disc failed. remove session.");
-       wfd_asp_connect_status(session->session_mac,
-                                               session->session_id,
-                                               ASP_CONNECT_STATUS_REQUEST_FAILED,
-                                               NULL);
-#endif
+       if (wfd_asp_is_asp_session(session)) {
+               WDS_LOGD("ASP prov disc failed. remove session.");
+               wfd_asp_connect_status(session->session_mac,
+                                                       session->session_id,
+                                                       ASP_CONNECT_STATUS_REQUEST_FAILED,
+                                                       NULL);
+       }
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_group_s *group = (wfd_group_s*) manager->group;
@@ -578,13 +584,12 @@ void wfd_event_go_neg_fail(wfd_oem_event_s *event)
                                                   WFD_EVENT_CONNECTION_RSP,
                                                   peer_mac_address));
 
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
-                                                       session->session_id,
-                                                       ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
-                                                       NULL);
-#endif
+                               session->session_id,
+                               ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
+                               NULL);
+       }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
@@ -653,13 +658,13 @@ void wfd_event_wps_fail(wfd_oem_event_s *event)
                                                   WIFI_DIRECT_ERROR_CONNECTION_FAILED,
                                                   WFD_EVENT_CONNECTION_RSP,
                                                   peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_STARTED,
                                                        NULL);
-#endif
+       }
+
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_group_s *group = (wfd_group_s*) manager->group;
                if (group && !group->member_count &&
@@ -735,13 +740,13 @@ void wfd_event_key_neg_fail(wfd_oem_event_s *event)
                                                   WIFI_DIRECT_ERROR_CONNECTION_FAILED,
                                                   WFD_EVENT_CONNECTION_RSP,
                                                   peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_STARTED,
                                                        NULL);
-#endif
+       }
+
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_group_s *group = (wfd_group_s*) manager->group;
                if (group && !group->member_count &&
@@ -842,16 +847,14 @@ void wfd_event_group_created(wfd_oem_event_s *event)
                                                     g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
                                                                            WFD_EVENT_CONNECTION_RSP,
                                                                            peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac)) {
-               wfd_asp_connect_status(session->session_mac,
-                                                       session->session_id,
-                                                       ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
-                                                       NULL);
-               wfd_asp_session_peer_ip(session->session_mac, session->session_id,
-                               session->service_mac, peer->ip_addr);
-       }
-#endif
+                       if (wfd_asp_is_asp_session(session)) {
+                               wfd_asp_connect_status(session->session_mac,
+                                                                       session->session_id,
+                                                                       ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
+                                                                       NULL);
+                               wfd_asp_session_peer_ip(session->session_mac, session->session_id,
+                                               session->service_mac, peer->ip_addr);
+                       }
                        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTED);
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
 
@@ -897,14 +900,13 @@ void wfd_event_group_destroyed(wfd_oem_event_s *event)
                                             g_variant_new("(iis)", WIFI_DIRECT_ERROR_CONNECTION_FAILED,
                                                                    WFD_EVENT_CONNECTION_RSP,
                                                                    peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
                wfd_session_s *session = manager->session;
-               if (!ISZEROMACADDR(session->session_mac))
+               if (wfd_asp_is_asp_session(session)) {
                        wfd_asp_connect_status(session->session_mac,
                                        session->session_id,
                                        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
                                        NULL);
-#endif
+               }
        } else if (manager->state >= WIFI_DIRECT_STATE_CONNECTED) {
                if (manager->local->dev_role != WFD_DEV_ROLE_GO) {
                        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
@@ -1143,17 +1145,15 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
                                     "PeerIPAssigned",
                                     g_variant_new("(ss)", peer_mac_address,
                                                           assigned_ip_address));
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac)) {
-               wfd_asp_connect_status(session->session_mac,
-                                                       session->session_id,
-                                                       ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
-                                                       NULL);
+               if (wfd_asp_is_asp_session(session)) {
+                       wfd_asp_connect_status(session->session_mac,
+                                                               session->session_id,
+                                                               ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
+                                                               NULL);
 
-               wfd_asp_session_peer_ip(session->session_mac, session->session_id,
-                               session->service_mac, peer->ip_addr);
-       }
-#endif
+                       wfd_asp_session_peer_ip(session->session_mac, session->session_id,
+                                       session->service_mac, peer->ip_addr);
+               }
        } else
 #endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
        wfd_util_dhcps_wait_ip_leased(peer);
@@ -1280,14 +1280,13 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                                                     g_variant_new("(iis)", WIFI_DIRECT_ERROR_CONNECTION_FAILED,
                                                                            WFD_EVENT_CONNECTION_RSP,
                                                                            peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
                        wfd_session_s *session = manager->session;
-                       if (session && !ISZEROMACADDR(session->session_mac))
+                       if (wfd_asp_is_asp_session(session)) {
                                wfd_asp_connect_status(session->session_mac,
                                                                        session->session_id,
                                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
                                                                        NULL);
-#endif
+                       }
                } else {
                        WDS_LOGE("Unexpected Peer State. Ignore it");
                        __WDS_LOG_FUNC_EXIT__;
@@ -1355,13 +1354,12 @@ void wfd_event_group_formation_failure(wfd_oem_event_s *event)
                                                            WFD_EVENT_CONNECTION_RSP,
                                                            peer_mac_address));
 
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
                                                        NULL);
-#endif
+       }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
@@ -1513,15 +1511,21 @@ void wfd_event_serv_disc_started(wfd_oem_event_s *event)
 }
 
 
-#if defined(TIZEN_FEATURE_ASP)
 void wfd_event_asp_serv_resp(wfd_oem_event_s *event)
 {
        __WDS_LOG_FUNC_ENTER__;
 
+       wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_asp_service_s *service = NULL;
        GVariantBuilder *builder = NULL;
        GVariant *params = NULL;
 
+       if (manager && !manager->is_asp_supported) {
+               WDS_LOGD("ASP is not supported.");
+               __WDS_LOG_FUNC_EXIT__;
+               return;
+       }
+
        service = (wfd_oem_asp_service_s *)event->edata;
        if (service == NULL) {
                WDS_LOGE("P2P service found event has NULL information");
@@ -1626,6 +1630,7 @@ int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
        __WDS_LOG_FUNC_EXIT__;
        return res;
 }
+
 void wfd_event_asp_prov_start(wfd_oem_event_s *event)
 {
        __WDS_LOG_FUNC_ENTER__;
@@ -1635,12 +1640,18 @@ void wfd_event_asp_prov_start(wfd_oem_event_s *event)
        wfd_oem_asp_prov_s *prov_params = NULL;
        int res = 0;
 
-       if (event == NULL || event->edata == NULL) {
+       if (manager == NULL || event == NULL || event->edata == NULL) {
                WDS_LOGE("Invalid parameter");
                __WDS_LOG_FUNC_EXIT__;
                return;
        }
 
+       if (!manager->is_asp_supported) {
+               WDS_LOGD("ASP is not supported.");
+               __WDS_LOG_FUNC_EXIT__;
+               return;
+       }
+
        prov_params = (wfd_oem_asp_prov_s *)event->edata;
        res = __wfd_handle_asp_prov(manager, event);
        session = (wfd_session_s *)manager->session;
@@ -1678,12 +1689,18 @@ void wfd_event_asp_prov_done(wfd_oem_event_s *event)
        wfd_oem_asp_prov_s *prov_params;
        int res = 0;
 
-       if (event == NULL || event->edata == NULL) {
+       if (manager == NULL || event == NULL || event->edata == NULL) {
                WDS_LOGE("Invalid parameter");
                __WDS_LOG_FUNC_EXIT__;
                return;
        }
 
+       if (!manager->is_asp_supported) {
+               WDS_LOGD("ASP is not supported.");
+               __WDS_LOG_FUNC_EXIT__;
+               return;
+       }
+
        prov_params = (wfd_oem_asp_prov_s *)event->edata;
        /* Incomming Session, auto_accept = TRUE emit request Received */
        /* generate SessionConfigRequest if event->wps_mode is not P2PS  and return*/
@@ -1749,7 +1766,6 @@ void wfd_event_asp_prov_done(wfd_oem_event_s *event)
        __WDS_LOG_FUNC_EXIT__;
        return;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 void wfd_event_init(wfd_oem_event_cbs_s *event_cbs)
 {
@@ -1797,11 +1813,9 @@ void wfd_event_init(wfd_oem_event_cbs_s *event_cbs)
        event_cbs->group_formation_failure_cb = wfd_event_group_formation_failure;
        event_cbs->invitation_accepted_cb = wfd_event_invitation_accepted;
 
-#if defined(TIZEN_FEATURE_ASP)
        event_cbs->asp_serv_resp_cb = wfd_event_asp_serv_resp;
        event_cbs->asp_prov_start_cb = wfd_event_asp_prov_start;
        event_cbs->asp_prov_done_cb = wfd_event_asp_prov_done;
-#endif /* TIZEN_FEATURE_ASP */
 
        event_cbs->extra_data = NULL;
 
index c775d15..a5bbfe9 100644 (file)
@@ -42,9 +42,7 @@
 #include "wifi-direct-state.h"
 #include <vconf.h>
 #include "wifi-direct-service.h"
-#ifdef TIZEN_FEATURE_ASP
 #include "wifi-direct-asp.h"
-#endif /* TIZEN_FEATURE_ASP */
 
 #define WFD_DBUS_REPLY_ERROR_NONE(invocation) \
        g_dbus_method_invocation_return_value((invocation), g_variant_new("(i)", WIFI_DIRECT_ERROR_NONE))
@@ -424,7 +422,6 @@ const gchar wfd_manager_introspection_xml[] = {
                                "<arg type='i' name='result' direction='out'/>"
                        "</method>"
                "</interface>"
-#if defined(TIZEN_FEATURE_ASP)
                "<interface name='net.wifidirect.asp'>"
                        "<method name='AdvertiseService'>"
                                "<arg type='a{sv}' name='parameters' direction='in'/>"
@@ -469,10 +466,15 @@ const gchar wfd_manager_introspection_xml[] = {
                "<arg type='a{sv}' name='parameters'/>"
                "</signal>"
                "</interface>"
-#endif
        "</node>"
 };
 
+static bool __is_discovery_available(wfd_manager_s *manager)
+{
+       return manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
+                       manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
+                       manager->state != WIFI_DIRECT_STATE_GROUP_OWNER;
+}
 
 static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                                              GVariant    *parameters,
@@ -548,9 +550,7 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                }
                g_variant_iter_free(iter);
 
-               if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
-                               manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
-                               manager->state != WIFI_DIRECT_STATE_GROUP_OWNER) {
+               if (__is_discovery_available(manager)) {
                        WDS_LOGE("Wi-Fi Direct is not available status for scanning.");
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                        goto failed;
@@ -677,9 +677,7 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                const char *peer_mac_address = NULL;
                unsigned char mac_addr[MACADDR_LEN] = {0, };
 
-               if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
-                               manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
-                               manager->state != WIFI_DIRECT_STATE_GROUP_OWNER) {
+               if (__is_discovery_available(manager)) {
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                        goto failed;
                }
@@ -1114,7 +1112,6 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                                        "IsWfdDevice",
                                        g_variant_new_boolean(peer->is_wfd_device));
 
-#ifdef TIZEN_FEATURE_ASP
                wfd_device_s *connected_peer = NULL;
                connected_peer = wfd_group_find_member_by_addr(manager->group, mac_addr);
                if (connected_peer) {
@@ -1125,7 +1122,6 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                                        "IPAddress",
                                        wfd_manager_dbus_pack_ay(connected_peer->ip_addr, IPADDR_LEN));
                }
-#endif /* TIZEN_FEATURE_ASP */
 
                ret = WIFI_DIRECT_ERROR_NONE;
                return_parameters = g_variant_new("(ia{sv})", ret, builder_peer);
@@ -2459,7 +2455,6 @@ failed:
        g_clear_error(&err);
        return;
 }
-#if defined(TIZEN_FEATURE_ASP)
 
 static void __g_variant_to_txt_record(GVariant *variant, char **txt_record)
 {
@@ -2564,6 +2559,146 @@ static void __g_variant_to_seek_info(GVariant *variant, char **seek_info)
        return;
 }
 
+static void __get_asp_advertise_params(GVariantIter *iter, wfd_oem_asp_service_s *service, int *replace)
+{
+       gchar *key = NULL;
+       GVariant *var = NULL;
+
+       while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
+               if (!g_strcmp0(key, "adv_id"))
+                       g_variant_get(var, "u", &(service->adv_id));
+               else if (!g_strcmp0(key, "discovery_tech"))
+                       g_variant_get(var, "i", &(service->discovery_tech));
+               else if (!g_strcmp0(key, "preferred_connection"))
+                       g_variant_get(var, "y", &(service->preferred_connection));
+               else if (!g_strcmp0(key, "auto_accept"))
+                       g_variant_get(var, "i", &(service->auto_accept));
+               else if (!g_strcmp0(key, "status"))
+                       g_variant_get(var, "y", &(service->status));
+               else if (!g_strcmp0(key, "role"))
+                       g_variant_get(var, "y", &(service->role));
+               else if (!g_strcmp0(key, "replace"))
+                       g_variant_get(var, "i", replace);
+               else if (!g_strcmp0(key, "config_method"))
+                       g_variant_get(var, "u", &(service->config_method));
+               else if (!g_strcmp0(key, "instance_name"))
+                               g_variant_get(var, "&s", &(service->instance_name));
+               else if (!g_strcmp0(key, "service_type"))
+                               g_variant_get(var, "&s", &(service->service_type));
+               else if (!g_strcmp0(key, "service_info"))
+                       __g_variant_to_txt_record(var, &(service->service_info));
+               else if (!g_strcmp0(key, "rsp_info"))
+                       g_variant_get(var, "&s", &(service->rsp_info));
+               else
+                       ;/* Do Nothing */
+       }
+       return;
+}
+
+
+static void __get_asp_seek_params(GVariantIter *iter, wfd_oem_asp_service_s *service)
+{
+       gchar *key = NULL;
+       GVariant *var = NULL;
+
+       while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
+               if (!g_strcmp0(key, "discovery_tech"))
+                       g_variant_get(var, "i", &(service->discovery_tech));
+               else if (!g_strcmp0(key, "search_id"))
+                       g_variant_get(var, "t", &(service->asp_search_id));
+               else if (!g_strcmp0(key, "preferred_connection"))
+                       g_variant_get(var, "y", &(service->preferred_connection));
+               else if (!g_strcmp0(key, "service_type"))
+                               g_variant_get(var, "&s", &(service->service_type));
+               else if (!g_strcmp0(key, "service_info"))
+                       __g_variant_to_seek_info(var, &(service->service_info));
+               else
+                       ;/* Do Nothing */
+       }
+       return;
+}
+
+static void __get_asp_connect_params(GVariantIter *iter, wfd_oem_asp_prov_s *prov_params)
+{
+       gchar *key = NULL;
+       GVariant *var = NULL;
+       const char *mac_str = NULL;
+       unsigned char role = 0;
+       unsigned int config = 0;
+
+       while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
+
+               if (!g_strcmp0(key, "service_mac")) {
+                       g_variant_get(var, "&s", &mac_str);
+                       if (mac_str == NULL)
+                               memset(prov_params->session_mac, 0, sizeof(prov_params->service_mac));
+                       else
+                               macaddr_atoe(mac_str, prov_params->service_mac);
+               } else if (!g_strcmp0(key, "adv_id")) {
+                       g_variant_get(var, "u", &(prov_params->adv_id));
+               } else if (!g_strcmp0(key, "session_mac")) {
+                       g_variant_get(var, "&s", &mac_str);
+                       if (mac_str == NULL)
+                               memset(prov_params->session_mac, 0, sizeof(prov_params->session_mac));
+                       else
+                               macaddr_atoe(mac_str, prov_params->session_mac);
+               } else if (!g_strcmp0(key, "session_id")) {
+                       g_variant_get(var, "u", &(prov_params->session_id));
+               } else if (!g_strcmp0(key, "role")) {
+                       g_variant_get(var, "y", &(role));
+                       prov_params->network_role = (int)role;
+               } else if (!g_strcmp0(key, "config_method")) {
+                       g_variant_get(var, "u", &(config));
+                       prov_params->network_config = (int)config;
+               } else if (!g_strcmp0(key, "session_info")) {
+                       g_variant_get(var, "&s", &(prov_params->session_information));
+               } else {
+                       ;/* Do Nothing */
+               }
+       }
+
+       return;
+}
+
+
+static void __get_asp_confirm_params(GVariantIter *iter, wfd_oem_asp_prov_s *prov_params, int *confirmed)
+{
+       gchar *key = NULL;
+       GVariant *var = NULL;
+       const char *mac_str = NULL;
+       const char *pin = NULL;
+
+       while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
+
+               if (!g_strcmp0(key, "service_mac")) {
+                       g_variant_get(var, "&s", &mac_str);
+                       if (mac_str == NULL)
+                               memset(prov_params->session_mac, 0, sizeof(prov_params->service_mac));
+                       else
+                               macaddr_atoe(mac_str, prov_params->service_mac);
+               } else if (!g_strcmp0(key, "adv_id")) {
+                       g_variant_get(var, "u", &(prov_params->adv_id));
+               } else if (!g_strcmp0(key, "session_mac")) {
+                       g_variant_get(var, "&s", &mac_str);
+                       if (mac_str == NULL)
+                               memset(prov_params->session_mac, 0, sizeof(prov_params->session_mac));
+                       else
+                               macaddr_atoe(mac_str, prov_params->session_mac);
+               } else if (!g_strcmp0(key, "session_id")) {
+                       g_variant_get(var, "u", &(prov_params->session_id));
+               } else if (!g_strcmp0(key, "confirm")) {
+                       g_variant_get(var, "i", confirmed);
+               } else if (!g_strcmp0(key, "pin")) {
+                       g_variant_get(var, "&s", &(pin));
+                       g_strlcpy(prov_params->wps_pin, pin, PINSTR_LEN);
+               } else {
+                       ;/* Do Nothing */
+               }
+       }
+
+       return;
+}
+
 static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                                               GVariant    *parameters,
                                               GDBusMethodInvocation *invocation)
@@ -2571,17 +2706,27 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
        int ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
+       GVariantIter *iter = NULL;
        GError *err = NULL;
        WDS_LOGD("%s", method_name);
 
+       if (!manager) {
+               WDS_LOGD("manager is not initialized.");
+               ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
+               goto failed;
+       }
+
        if (!g_strcmp0(method_name, "AdvertiseService")) {
 
                wfd_oem_asp_service_s service;
-               GVariantIter *iter = NULL;
-               gchar *key = NULL;
-               GVariant *var = NULL;
                int replace = 0;
 
+               if (!manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
+
                if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
                                manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
                                manager->state >= WIFI_DIRECT_STATE_CONNECTED) {
@@ -2592,35 +2737,7 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
 
                memset(&service, 0, sizeof(wfd_oem_asp_service_s));
                g_variant_get(parameters, "(a{sv})", &iter);
-               while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
-                       if (!g_strcmp0(key, "adv_id"))
-                               g_variant_get(var, "u", &(service.adv_id));
-                       else if (!g_strcmp0(key, "discovery_tech"))
-                               g_variant_get(var, "i", &(service.discovery_tech));
-                       else if (!g_strcmp0(key, "preferred_connection"))
-                               g_variant_get(var, "y", &(service.preferred_connection));
-                       else if (!g_strcmp0(key, "auto_accept"))
-                               g_variant_get(var, "i", &(service.auto_accept));
-                       else if (!g_strcmp0(key, "status"))
-                               g_variant_get(var, "y", &(service.status));
-                       else if (!g_strcmp0(key, "role"))
-                               g_variant_get(var, "y", &(service.role));
-                       else if (!g_strcmp0(key, "replace"))
-                               g_variant_get(var, "i", &(replace));
-                       else if (!g_strcmp0(key, "config_method"))
-                               g_variant_get(var, "u", &(service.config_method));
-                       else if (!g_strcmp0(key, "instance_name"))
-                                       g_variant_get(var, "&s", &(service.instance_name));
-                       else if (!g_strcmp0(key, "service_type"))
-                                       g_variant_get(var, "&s", &(service.service_type));
-                       else if (!g_strcmp0(key, "service_info"))
-                               __g_variant_to_txt_record(var, &(service.service_info));
-                       else if (!g_strcmp0(key, "rsp_info"))
-                               g_variant_get(var, "&s", &(service.rsp_info));
-                       else
-                               ;/* Do Nothing */
-               }
-
+               __get_asp_advertise_params(iter, &service, &replace);
                ret = wfd_oem_advertise_service(manager->oem_ops, &service, replace);
                if (ret < 0) {
                        WDS_LOGE("Failed to add service");
@@ -2659,6 +2776,12 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                wfd_oem_asp_service_s service;
                memset(&service, 0, sizeof(wfd_oem_asp_service_s));
 
+               if (!manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
+
                if (manager->state < WIFI_DIRECT_STATE_ACTIVATED) {
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                        goto failed;
@@ -2680,8 +2803,12 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
 
                wfd_oem_asp_service_s service;
                GVariantIter *iter = NULL;
-               gchar *key = NULL;
-               GVariant *var = NULL;
+
+               if (!manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
 
                if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
                                manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
@@ -2693,21 +2820,7 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
 
                memset(&service, 0, sizeof(wfd_oem_asp_service_s));
                g_variant_get(parameters, "(a{sv})", &iter);
-               while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
-                       if (!g_strcmp0(key, "discovery_tech"))
-                               g_variant_get(var, "i", &(service.discovery_tech));
-                       else if (!g_strcmp0(key, "search_id"))
-                               g_variant_get(var, "t", &(service.asp_search_id));
-                       else if (!g_strcmp0(key, "preferred_connection"))
-                               g_variant_get(var, "y", &(service.preferred_connection));
-                       else if (!g_strcmp0(key, "service_type"))
-                                       g_variant_get(var, "&s", &(service.service_type));
-                       else if (!g_strcmp0(key, "service_info"))
-                               __g_variant_to_seek_info(var, &(service.service_info));
-                       else
-                               ;/* Do Nothing */
-               }
-
+               __get_asp_seek_params(iter, &service);
                ret = wfd_oem_seek_service(manager->oem_ops, &service);
                if (ret < 0) {
                        WDS_LOGE("Failed to seek service");
@@ -2743,6 +2856,12 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                wfd_oem_asp_service_s service;
                memset(&service, 0, sizeof(wfd_oem_asp_service_s));
 
+               if (!manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
+
                if (manager->state < WIFI_DIRECT_STATE_ACTIVATED) {
                        WDS_LOGE("Wi-Fi Direct is not activated.");
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
@@ -2763,17 +2882,15 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
        } else if (!g_strcmp0(method_name, "ConnectSession")) {
 
                GVariantIter *iter = NULL;
-               gchar *key = NULL;
-               GVariant *var = NULL;
                wfd_oem_asp_prov_s prov_params;
-               const char *mac_str = NULL;
-               unsigned char role = 0;
-               unsigned int config = 0;
-               int status = 0;
 
-               if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
-                               manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
-                               manager->state != WIFI_DIRECT_STATE_GROUP_OWNER) {
+               if (manager && !manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
+
+               if (__is_discovery_available(manager)) {
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                        goto failed;
                }
@@ -2781,40 +2898,7 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
 
                g_variant_get(parameters, "(a{sv})", &iter);
-               while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
-
-                       if (!g_strcmp0(key, "service_mac")) {
-                               g_variant_get(var, "&s", &mac_str);
-                               if (mac_str == NULL) {
-                                       ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
-                                       g_variant_iter_free(iter);
-                                       goto failed;
-                               }
-                               macaddr_atoe(mac_str, prov_params.service_mac);
-                       } else if (!g_strcmp0(key, "adv_id")) {
-                               g_variant_get(var, "u", &(prov_params.adv_id));
-                       } else if (!g_strcmp0(key, "session_mac")) {
-                               g_variant_get(var, "&s", &mac_str);
-                               if (mac_str == NULL) {
-                                       ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
-                                       g_variant_iter_free(iter);
-                                       goto failed;
-                               }
-                               macaddr_atoe(mac_str, prov_params.session_mac);
-                       } else if (!g_strcmp0(key, "session_id")) {
-                               g_variant_get(var, "u", &(prov_params.session_id));
-                       } else if (!g_strcmp0(key, "role")) {
-                               g_variant_get(var, "y", &(role));
-                               prov_params.network_role = (int)role;
-                       } else if (!g_strcmp0(key, "config_method")) {
-                               g_variant_get(var, "u", &(config));
-                               prov_params.network_config = (int)config;
-                       } else if (!g_strcmp0(key, "session_info")) {
-                               g_variant_get(var, "&s", &(prov_params.session_information));
-                       } else {
-                               ;/* Do Nothing */
-                       }
-               }
+               __get_asp_connect_params(iter, &prov_params);
 
                if (ISZEROMACADDR(prov_params.service_mac) ||
                                ISZEROMACADDR(prov_params.session_mac)) {
@@ -2833,10 +2917,9 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                wfd_group_s *group = (wfd_group_s*) manager->group;
                if (group && group->member_count >= manager->max_station) {
 
-                       status = ASP_CONNECT_STATUS_NOMORE_CONNECT;
                        wfd_asp_connect_status(prov_params.session_mac,
                                        prov_params.session_id,
-                                       status,
+                                       ASP_CONNECT_STATUS_NOMORE_CONNECT,
                                        NULL);
                        g_variant_iter_free(iter);
                        __WDS_LOG_FUNC_EXIT__;
@@ -2865,13 +2948,15 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
        } else if (!g_strcmp0(method_name, "ConfirmSession")) {
 
                GVariantIter *iter = NULL;
-               gchar *key = NULL;
-               GVariant *var = NULL;
                wfd_oem_asp_prov_s prov_params;
-               const char *mac_str = NULL;
-               const char *pin = NULL;
                int confirmed = 0;
 
+               if (manager && !manager->is_asp_supported) {
+                       WDS_LOGD("ASP is not supported.");
+                       ret = WIFI_DIRECT_ERROR_NOT_SUPPORTED;
+                       goto failed;
+               }
+
                if (manager->state != WIFI_DIRECT_STATE_CONNECTING) {
                        ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                        goto failed;
@@ -2880,37 +2965,7 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
 
                g_variant_get(parameters, "(a{sv})", &iter);
-               while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
-
-                       if (!g_strcmp0(key, "service_mac")) {
-                               g_variant_get(var, "&s", &mac_str);
-                               if (mac_str == NULL) {
-                                       ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
-                                       g_variant_iter_free(iter);
-                                       goto failed;
-                               }
-                               macaddr_atoe(mac_str, prov_params.service_mac);
-                       } else if (!g_strcmp0(key, "adv_id")) {
-                               g_variant_get(var, "u", &(prov_params.adv_id));
-                       } else if (!g_strcmp0(key, "session_mac")) {
-                               g_variant_get(var, "&s", &mac_str);
-                               if (mac_str == NULL) {
-                                       ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
-                                       g_variant_iter_free(iter);
-                                       goto failed;
-                               }
-                               macaddr_atoe(mac_str, prov_params.session_mac);
-                       } else if (!g_strcmp0(key, "session_id")) {
-                               g_variant_get(var, "u", &(prov_params.session_id));
-                       } else if (!g_strcmp0(key, "confirm")) {
-                               g_variant_get(var, "i", &(confirmed));
-                       } else if (!g_strcmp0(key, "pin")) {
-                               g_variant_get(var, "&s", &(pin));
-                               g_strlcpy(prov_params.wps_pin, pin, PINSTR_LEN);
-                       } else {
-                               ;/* Do Nothing */
-                       }
-               }
+               __get_asp_confirm_params(iter, &prov_params, &confirmed);
 
                if (ISZEROMACADDR(prov_params.session_mac))     {
                        ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
@@ -2956,7 +3011,6 @@ failed:
        __WDS_LOG_FUNC_EXIT__;
        return;
 }
-#endif
 
 static struct {
        guint reg_id;
@@ -2990,13 +3044,11 @@ static struct {
                WFD_MANAGER_DISPLAY_INTERFACE,
                __wfd_manager_display_iface_handler
        },
-#if defined(TIZEN_FEATURE_ASP)
        {
                0,
                WFD_MANAGER_ASP_INTERFACE,
                __wfd_manager_asp_iface_handler
        },
-#endif
        {
                0,
                NULL,
index cd51c4f..69c2039 100644 (file)
@@ -795,7 +795,6 @@ int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr)
        return WIFI_DIRECT_ERROR_NONE;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params)
 {
        __WDS_LOG_FUNC_ENTER__;
@@ -901,7 +900,6 @@ int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int co
        __WDS_LOG_FUNC_EXIT__;
        return WIFI_DIRECT_ERROR_NONE;
 }
-#endif
 
 int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_addr)
 {
@@ -1457,7 +1455,6 @@ int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_i
        return count;
 }
 
-#ifdef TIZEN_FEATURE_ASP
 wfd_device_s *wfd_manager_get_connected_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr)
 {
        __WDS_LOG_FUNC_ENTER__;
@@ -1475,7 +1472,6 @@ wfd_device_s *wfd_manager_get_connected_peer_by_addr(wfd_manager_s *manager, uns
        __WDS_LOG_FUNC_EXIT__;
        return peer;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 #if 0
 wfd_device_s *wfd_manager_find_connected_peer(wfd_manager_s *manager, unsigned char *peer_addr)
index dd60d99..1fd492b 100644 (file)
@@ -44,9 +44,7 @@
 #include "wifi-direct-error.h"
 #include "wifi-direct-log.h"
 #include "wifi-direct-dbus.h"
-#ifdef TIZEN_FEATURE_ASP
 #include "wifi-direct-asp.h"
-#endif /* TIZEN_FEATURE_ASP */
 
 
 static gboolean _session_timeout_cb(gpointer *user_data)
@@ -77,8 +75,7 @@ static gboolean _session_timeout_cb(gpointer *user_data)
                                                            WFD_EVENT_CONNECTION_RSP,
                                                            peer_mac_address));
 
-#if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac)) {
+       if (wfd_asp_is_asp_session(session)) {
                if (session->state < SESSION_STATE_GO_NEG)
                        wfd_asp_connect_status(session->session_mac,
                                        session->session_id,
@@ -90,7 +87,6 @@ static gboolean _session_timeout_cb(gpointer *user_data)
                                        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
                                        NULL);
        }
-#endif
 
        wfd_session_cancel(session, peer_addr);
 
@@ -124,14 +120,15 @@ static void _wfd_notify_session_failed(wfd_manager_s *manager, unsigned char *pe
                                                            WFD_EVENT_CONNECTION_RSP,
                                                            peer_mac_address));
 
-#if defined(TIZEN_FEATURE_ASP)
+
+
        wfd_session_s *session = manager->session;
-       if (session && !ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_STARTED,
                                                        NULL);
-#endif
+       }
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
@@ -224,10 +221,8 @@ wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_
                session->wps_mode = WFD_WPS_MODE_KEYPAD;
        else if (wps_mode == WFD_WPS_MODE_KEYPAD)
                session->wps_mode = WFD_WPS_MODE_DISPLAY;
-#if defined(TIZEN_FEATURE_ASP)
        else if (wps_mode == WFD_WPS_MODE_P2PS)
                session->wps_mode = WFD_WPS_MODE_P2PS;
-#endif /* TIZEN_FEATURE_ASP */
        else
                session->wps_mode = wps_mode;
        session->direction = direction;
@@ -349,7 +344,6 @@ int wfd_session_start(wfd_session_s *session)
        return 0;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *params)
 {
        __WDS_LOG_FUNC_ENTER__;
@@ -386,7 +380,6 @@ int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *pa
        __WDS_LOG_FUNC_EXIT__;
        return 0;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 #if 0
 int wfd_session_stop(wfd_session_s *session)
@@ -696,7 +689,6 @@ int wfd_session_wps(wfd_session_s *session)
        return 0;
 }
 
-#if defined(TIZEN_FEATURE_ASP)
 /* In case of incomming session, when user accept connection request, this function should be called.
  * In case of outgoing session, when prov_disc response arrived, this function should be called.
  * Even though peer is GO, we can use this function, which can decide using join itself.
@@ -797,7 +789,6 @@ int wfd_session_asp_persistent_connect(wfd_session_s *session, int persist_group
        __WDS_LOG_FUNC_EXIT__;
        return 0;
 }
-#endif /* TIZEN_FEATURE_ASP */
 
 wfd_device_s *wfd_session_get_peer(wfd_session_s *session)
 {
@@ -1117,7 +1108,6 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                }
        }
                break;
-#if defined(TIZEN_FEATURE_ASP)
        case WFD_OEM_EVENT_ASP_PROV_START:
        {
                int req_wps_mode = WFD_WPS_MODE_NONE;
@@ -1170,7 +1160,6 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                }
        }
                break;
-#endif /* TIZEN_FEATURE_ASP */
        if (res < 0)
                _wfd_notify_session_failed(manager, event->dev_addr);
        break;
index 4e1a22b..bcd20bd 100644 (file)
@@ -61,9 +61,7 @@
 #include "wifi-direct-error.h"
 #include "wifi-direct-log.h"
 #include "wifi-direct-dbus.h"
-#if defined(TIZEN_FEATURE_ASP)
 #include "wifi-direct-asp.h"
-#endif
 
 #include <linux/unistd.h>
 #include <asm/types.h>
@@ -979,14 +977,13 @@ static gboolean _polling_ip(gpointer user_data)
                                                            WFD_EVENT_CONNECTION_RSP,
                                                            peer_mac_address));
 
-#if defined(TIZEN_FEATURE_ASP)
        wfd_session_s *session = manager->session;
-       if (session && !ISZEROMACADDR(session->session_mac))
+       if (wfd_asp_is_asp_session(session)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
                                                        NULL);
-#endif
+       }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);