wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_eapol_handler.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_eapol_handler.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: handler to EAPOL callbacks.
+*
+*/
+
+
+#ifndef CORE_EAPOL_HANDLER_H
+#define CORE_EAPOL_HANDLER_H
+
+#include "abs_wlan_eapol_callback_interface.h"
+#include "abs_wlan_eapol_callback.h"
+#include "am_platform_libraries.h"
+#include "core_types.h"
+
+class core_server_c;
+class abs_core_driverif_c;
+class abs_core_server_callback_c;
+class abs_core_protected_setup_handler_c;
+class network_id_c;
+
+/**
+ * This class acts as handler to EAPOL callbacks.
+ *
+ * @since S60 v3.1
+ */
+NONSHARABLE_CLASS( core_eapol_handler_c ) :
+ public abs_wlan_eapol_callback_interface_c,
+ public abs_wlan_eapol_callback_c
+ {
+
+public:
+
+ /**
+ * constructor
+ *
+ * @since S60 v3.1
+ * @param server pointer to core_server
+ * @param drivers pointer to lower adaptation
+ * @param adaptation pointer to upper adaptation
+ */
+ core_eapol_handler_c(
+ core_server_c* server,
+ abs_core_driverif_c* drivers,
+ abs_core_server_callback_c* adaptation );
+
+ /**
+ * destructor
+ */
+ virtual ~core_eapol_handler_c();
+
+ /**
+ * eapol_handler
+ * @since S60 v3.1
+ * @return handler for EAPOL callbacks.
+ */
+ abs_wlan_eapol_callback_interface_c* eapol_handler();
+
+ /**
+ * Function to convert core_error_e to interface status
+ * @since S60 v3.2
+ * @param core_error
+ * @return interface status
+ */
+ static u32_t convert_core_error_to_if_status(
+ core_error_e core_error );
+
+ /**
+ * Direct the callbacks from EAPOL to the given handler.
+ *
+ * @since S60 v3.1
+ * @param New handler of EAPOL callbacks.
+ */
+ void set_eapol_handler(
+ abs_wlan_eapol_callback_interface_c* handler );
+
+ /**
+ * Direct the Protected Setup events to the given handler.
+ *
+ * @since S60 v3.2
+ * @param New handler of Protected Setup events.
+ */
+ void set_protected_setup_handler(
+ abs_core_protected_setup_handler_c* handler );
+
+// from base class abs_wlan_eapol_callback_interface_c
+
+ /**
+ * packet_send sends a frame given by EAPOL
+ *
+ * @since S60 v3.1
+ * @param send_network_id
+ * @param packet_data contains the data of the frame
+ * @param packet_data_length contains the length of the data
+ * @param send_unencrypted Whether the frame must be sent unencrypted.
+ * @return status value
+ */
+ core_error_e packet_send(
+ network_id_c * send_network_id,
+ u8_t * packet_data,
+ u32_t packet_data_length,
+ bool_t send_unencrypted );
+
+ /**
+ * associate
+ *
+ * @since S60 v3.1
+ * @param authentication_mode
+ * @return status value
+ */
+ core_error_e associate(
+ wlan_eapol_if_eapol_key_authentication_mode_e authentication_mode );
+
+ /**
+ * disassociate
+ *
+ * @since S60 v3.1
+ * @param receive_network_id
+ * @param self_disassociation
+ * @return status value
+ */
+ core_error_e disassociate(
+ network_id_c * receive_network_id,
+ const bool_t self_disassociation );
+
+ /**
+ * packet_data_session_key
+ *
+ * @since S60 v3.1
+ * @param send_network_id
+ * @param key
+ * @return status value
+ */
+ core_error_e packet_data_session_key(
+ network_id_c * send_network_id,
+ session_key_c * key );
+
+ /**
+ * state_notification
+ *
+ * @since S60 v3.1
+ * @param state
+ */
+ void state_notification(
+ state_notification_c * state );
+
+ /**
+ * reassociate
+ *
+ * @since S60 v3.1
+ * @param send_network_id
+ * @param authentication_type
+ * @param PMKID
+ * @param PMKID_length
+ * @return status value
+ */
+ virtual core_error_e reassociate(
+ network_id_c * send_network_id,
+ const wlan_eapol_if_eapol_key_authentication_type_e authentication_type,
+ u8_t * PMKID,
+ u32_t PMKID_length );
+
+ /**
+ * From abs_wlan_eapol_callback_interface_c
+ */
+ virtual core_error_e complete_check_pmksa_cache(
+ core_type_list_c<network_id_c> & network_id_list );
+
+ /**
+ * From abs_wlan_eapol_callback_interface_c
+ */
+ virtual core_error_e complete_start_wpx_fast_roam_reassociation(
+ network_id_c * receive_network_id,
+ u8_t * reassociation_request_ie,
+ u32_t reassociation_request_ie_length );
+
+ /**
+ * From abs_wlan_eapol_callback_interface_c
+ */
+ virtual core_error_e new_protected_setup_credentials(
+ core_type_list_c< protected_setup_credential_c > & credential_list );
+
+ /**
+ * From abs_wlan_eapol_callback_interface_c
+ */
+ virtual void handle_error(
+ wlan_eapol_if_error_e errorcode,
+ wlan_eapol_if_message_type_function_e function );
+
+
+// from base class abs_wlan_eapol_callback_c
+
+ /**
+ * Callback interface to partner.
+ *
+ * @since S60 v3.2
+ * @param data Pointer to the data to be sent.
+ * @param length Length of the data to be sent.
+ * @return Return value is specified in interface specification.
+ */
+ u32_t send_data(
+ const void * const data,
+ const u32_t length );
+
+private:
+
+ /**
+ * Handle a authentication state notification.
+ *
+ * @param state Current EAPOL authentication state.
+ * @param bssid The BSSID the notification is about.
+ */
+ void handle_wlan_authentication_state(
+ u32_t state,
+ const core_mac_address_s& bssid );
+
+ /**
+ * Convert an EAPOL state notification to a core error code.
+ *
+ * @param state State notification to be converted.
+ * @return Core error code.
+ */
+ core_error_e eapol_wlan_authentication_state_to_error(
+ u32_t state ) const;
+
+ /**
+ * Check whether the given EAPOL state notification is an error.
+ */
+ bool_t is_eapol_wlan_authentication_state_failure(
+ u32_t state ) const;
+
+ /**
+ * Check whether the given EAPOL state notification is a success.
+ */
+ bool_t is_eapol_wlan_authentication_state_success(
+ u32_t state ) const;
+
+
+private: // data
+
+ /** Handle to the core server. */
+ core_server_c* server_m;
+
+ /** Handle to adaptation interface. */
+ abs_core_driverif_c* drivers_m;
+
+ /** Handle to WLM. */
+ abs_core_server_callback_c* adaptation_m;
+
+ /** The actual handler of EAPOL callbacks. */
+ abs_wlan_eapol_callback_interface_c* handler_m;
+
+ /** Handler for protected setup indications. */
+ abs_core_protected_setup_handler_c* protected_setup_handler_m;
+
+ };
+
+#endif // CORE_EAPOL_HANDLER_H