[haiku-commits] r35296 - in haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211: . stack stack/mac_management stack/mac_management/requests stack/station_management ...

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 26 Jan 2010 18:02:40 +0100 (CET)

Author: colin
Date: 2010-01-26 18:02:40 +0100 (Tue, 26 Jan 2010)
New Revision: 35296
Changeset: http://dev.haiku-os.org/changeset/35296/haiku

Added:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/ConnectRequest.h
Removed:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/AuthenticateRequest.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/AuthenticateRequest.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/JoinRequest.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/JoinRequest.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Request.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Request.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Requests.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/ConnectRequest.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Request.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Requests.h
Modified:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/DeviceContext.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Jamfile
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Jamfile
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.h
Log:
* Refactoring of classes and file layout.
* Introduce concept of services. Service objects are intended to run as a single
  thread providing only one solely service.
* Implement framework for AuthenticateService and DistributeService.
* Make use of a dedicated parameter for returning results of requests, instead
  of using the return parameter directly.
* Where applicable return parameters are used as a compensation for missing
  exceptions in kernel land.
* Introduce concept of FrameFactory. It creates Frame objects out of requests.
* Introduce Frame class, which contains the data meant to be transmitted over
  the air.


Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp
  2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -14,6 +14,7 @@
 
 
 using namespace Ieee80211;
+using namespace StationManagement;
 
 
 extern Stack gIeee80211Stack;
@@ -52,7 +53,7 @@
                return B_BAD_VALUE;
 
        Device* device = _device->genericDevice;
-       StationManagement::Request* request = NULL;
+       Request<RequestResult>* request = NULL;
 
        gIeee80211Stack.SetupRequestConverter(device, _request);
        status_t status = gIeee80211Stack.ConvertToStationManagementRequest(
@@ -63,7 +64,7 @@
        switch (_request->type) {
                case IEEE80211_IOC_CONNECT:
                        status = gIeee80211Stack.ConnectToNetwork(
-                               static_cast<ConnectRequest*>(request));
+                               reinterpret_cast<ConnectRequest*>(request));
                        break;
                default:
                        status = B_NOT_SUPPORTED;

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h
 2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h
 2010-01-26 17:02:40 UTC (rev 35296)
@@ -2,8 +2,8 @@
  * Copyright 2010 Haiku Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
-#ifndef DEVICE_H_
-#define DEVICE_H_
+#ifndef IEEE80211_STACK_DEVICE_H_
+#define IEEE80211_STACK_DEVICE_H_
 
 
 #include <SupportDefs.h>
@@ -27,4 +27,4 @@
 
 }      /* namespace Ieee80211 */
 
-#endif /* DEVICE_H_ */
+#endif /* IEEE80211_STACK_DEVICE_H_ */

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/DeviceContext.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/DeviceContext.h
  2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/DeviceContext.h
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -2,8 +2,8 @@
  * Copyright 2010 Haiku Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
-#ifndef DEVICECONTEXT_H_
-#define DEVICECONTEXT_H_
+#ifndef IEEE80211_DEVICE_CONTEXT_H_
+#define IEEE80211_DEVICE_CONTEXT_H_
 
 
 namespace Ieee80211 {
@@ -13,4 +13,4 @@
 
 }      /* namespace Ieee80211 */
 
-#endif /* DEVICECONTEXT_H_ */
+#endif /* IEEE80211_DEVICE_CONTEXT_H_ */

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
  2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -8,6 +8,8 @@
 
 KernelMergeObject ieee80211_stack.o :
        Device.cpp
+       Frame.cpp
+       FrameFactory.cpp
        Stack.cpp
        : :
        mac_management.o
@@ -16,3 +18,4 @@
 
 HaikuSubInclude mac_management ;
 HaikuSubInclude station_management ;
+HaikuSubInclude utilities ;
\ No newline at end of file

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.cpp
 (from rev 35217, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Request.cpp)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.cpp
                              (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.cpp
      2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Colin Günther, coling@xxxxxx
+ */
+
+
+/*!    Base class for all requests.
+       Provides a general interface and some default implementations.
+ */
+
+
+#include <Request.h>
+
+
+using namespace Ieee80211;
+
+
+/*!    Waits until the request was completed.
+       Completion means that the request was either successfully carried out or
+       that there was an error during request-processing.
+       Such an error may arise, due to insufficient data provided by the 
request.
+
+       \param result of the processed request.
+       \return B_OK The result can be used.
+       \return Else No result returned, due to an unrecoverable error during
+               request processing.
+ */
+template<class ResultType>
+status_t
+Request::WaitForConfirm(ResultType** result)
+{
+       return B_OK;
+}


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.h
 (from rev 35216, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Request.h)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.h
                                (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.h
        2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef IEEE80211_REQUEST_H_
+#define IEEE80211_REQUEST_H_
+
+
+#include <SupportDefs.h>
+
+
+namespace Ieee80211 {
+
+template<class ResultType>
+class Request {
+public:
+       status_t        WaitForConfirm(ResultType**);
+};
+
+
+/* #pragma mark - implementation */
+
+
+/*!    Waits until the request was completed.
+       Completion means that the request was either successfully carried out or
+       that there was an error during request-processing.
+       Such an error may arise, due to insufficient data provided by the 
request.
+
+       \param result of the processed request.
+       \return B_OK The result can be used.
+       \return Else No result returned, due to an unrecoverable error during
+               request processing.
+ */
+template<class ResultType>
+status_t
+Request<ResultType>::WaitForConfirm(ResultType** result)
+{
+       return B_OK;
+}
+
+}      /* namespace Ieee80211 */
+
+#endif /* IEEE80211_REQUEST_H_ */


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Request.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.cpp
        2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.cpp
        2010-01-26 17:02:40 UTC (rev 35296)
@@ -20,6 +20,7 @@
 
 
 using namespace Ieee80211;
+using namespace StationManagement;
 
 
 /*!    Tells whether the Stack class was constructed successful.
@@ -127,7 +128,7 @@
        \return B_ERROR Request couldn't be converted.
  */
 status_t
-Stack::ConvertToStationManagementRequest(StationManagement::Request** request)
+Stack::ConvertToStationManagementRequest(Request<RequestResult>** request)
 {
        return B_OK;
 }
@@ -141,7 +142,7 @@
        \return B_ERROR Connection failed.
  */
 status_t
-Stack::ConnectToNetwork(StationManagement::ConnectRequest* request)
+Stack::ConnectToNetwork(ConnectRequest* request)
 {
        return fStationManagement.ConnectToNetwork(request);
 }

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.h
  2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Stack.h
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -2,8 +2,8 @@
  * Copyright 2010 Haiku Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
-#ifndef STACK_H_
-#define STACK_H_
+#ifndef IEEE80211_STACK_H_
+#define IEEE80211_STACK_H_
 
 
 #include <SupportDefs.h>
@@ -11,7 +11,10 @@
 #include <ieee80211_control.h>
 
 #include <Device.h>
-#include <station_management.h>
+#include <Request.h>
+#include <station_management/Roster.h>
+#include <station_management/requests/ConnectRequest.h>
+#include <station_management/results/RequestResult.h>
 
 
 namespace Ieee80211 {
@@ -26,7 +29,8 @@
        void            DeactivateDevice(Device*);
        
        void            SetupRequestConverter(Device*, ieee80211req_t*);
-       status_t        
ConvertToStationManagementRequest(StationManagement::Request**);
+       status_t        ConvertToStationManagementRequest(
+                                       
Request<StationManagement::RequestResult>**);
 
        status_t        ConnectToNetwork(StationManagement::ConnectRequest*);
 
@@ -36,4 +40,4 @@
 
 }      /* namespace Ieee80211 */
 
-#endif /* STACK_H_ */
+#endif /* IEEE80211_STACK_H_ */

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Jamfile
   2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Jamfile
   2010-01-26 17:02:40 UTC (rev 35296)
@@ -5,9 +5,12 @@
 
 KernelMergeObject mac_management.o :
        Roster.cpp
+       : :
+       mac_management_requests.o
+       mac_management_services.o
+       ;
 
-       # Requests
-       Request.cpp
-       AuthenticateRequest.cpp
-       JoinRequest.cpp
-       ;
+HaikuSubInclude frames ;
+HaikuSubInclude requests ;
+HaikuSubInclude results ;
+HaikuSubInclude services ;

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.cpp
        2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.cpp
        2010-01-26 17:02:40 UTC (rev 35296)
@@ -36,7 +36,7 @@
 status_t
 Roster::AddAuthenticateRequest(AuthenticateRequest *request)
 {
-       return B_OK;
+       return fAuthenticateService.Process(request);
 }
 
 

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.h
  2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/Roster.h
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -2,13 +2,17 @@
  * Copyright 2010 Haiku Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
-#ifndef MAC_MANAGEMENT_ROSTER_H_
-#define MAC_MANAGEMENT_ROSTER_H_
+#ifndef IEEE80211_MAC_MANAGEMENT_ROSTER_H_
+#define IEEE80211_MAC_MANAGEMENT_ROSTER_H_
 
 
-#include <mac_management/Requests.h>
+#include <SupportDefs.h>
 
+#include <mac_management/requests/AuthenticateRequest.h>
+#include <mac_management/requests/JoinRequest.h>
+#include <mac_management/services/AuthenticateService.h>
 
+
 namespace Ieee80211 {
 namespace MacManagement {
 
@@ -16,9 +20,12 @@
 public:
        status_t        AddAuthenticateRequest(AuthenticateRequest*);
        status_t        AddJoinRequest(JoinRequest*);
+
+private:
+       AuthenticateService     fAuthenticateService;
 };
 
 }      /* namespace MacManagement */
 }      /* namespace Ieee80211 */
 
-#endif /* MAC_MANAGEMENT_ROSTER_H_ */
+#endif /* IEEE80211_MAC_MANAGEMENT_ROSTER_H_ */

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.cpp
 (from rev 35243, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/AuthenticateRequest.cpp)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.cpp
                          (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.cpp
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Colin Günther, coling@xxxxxx
+ */
+
+
+/*!    Contains the data for the authentication request.
+
+       \sa IEEE Standard 802.11-2007, section 10.3.4.1 
"MLME-AUTHENTICATE.request"
+ */
+
+#include <mac_management/requests/AuthenticateRequest.h>
+
+
+using namespace Ieee80211;
+
+
+/*!    Constructs a new object by using relevant data from the ConnectRequest.
+       
+       \param request ConnectRequest object, containing data needed for
+               proper authentication.
+       \return NULL not enough memory.
+       \return AuthenticateRequest otherwise.
+ */
+MacManagement::AuthenticateRequest::AuthenticateRequest(
+       StationManagement::ConnectRequest* request)
+{
+       return;
+}

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.h
 (from rev 35243, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/AuthenticateRequest.h)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.h
                            (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/AuthenticateRequest.h
    2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef IEEE80211_AUTHENTICATION_REQUEST_H_
+#define IEEE80211_AUTHENTICATION_REQUEST_H_
+
+
+#include <Request.h>
+#include <mac_management/results/AuthenticateRequestResult.h>
+#include <station_management/requests/ConnectRequest.h>
+
+
+namespace Ieee80211 {
+
+namespace MacManagement {
+class AuthenticateRequest;
+}      /* namespace MacManagement */
+
+
+class MacManagement::AuthenticateRequest
+       : public Request<MacManagement::AuthenticateRequestResult> {
+public:
+               AuthenticateRequest(StationManagement::ConnectRequest*);
+};
+
+}      /* namespace Ieee80211 */
+
+#endif /* IEEE80211_AUTHENTICATION_REQUEST_H_ */

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.cpp
 (from rev 35243, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/JoinRequest.cpp)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.cpp
                          (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.cpp
  2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Colin Günther, coling@xxxxxx
+ */
+
+
+/*!    Contains the data for the join (synchronization) request.
+
+       \sa IEEE Standard 802.11-2007, section 10.3.3.1 "MLME-JOIN.request"
+ */
+
+
+#include <mac_management/requests/JoinRequest.h>
+#include <station_management/requests/ConnectRequest.h>
+
+
+using namespace Ieee80211;
+
+
+/*!    Constructs a new object by using relevant data from the ConnectRequest.
+       
+       \param request ConnectRequest object, containing data needed for 
joining.
+       \return NULL not enough memory.
+       \return JoinRequest otherwise.
+ */
+MacManagement::JoinRequest::JoinRequest(
+       StationManagement::ConnectRequest* request)
+{
+       return;
+}


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.h
 (from rev 35243, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/JoinRequest.h)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.h
                            (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.h
    2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef IEEE80211_JOIN_REQUEST_H_
+#define IEEE80211_JOIN_REQUEST_H_
+
+
+#include <Request.h>
+#include <mac_management/results/JoinRequestResult.h>
+#include <station_management/requests/ConnectRequest.h>
+
+
+namespace Ieee80211 {
+
+namespace MacManagement {
+class JoinRequest;
+}      /* namespace MacManagement */
+
+
+class MacManagement::JoinRequest
+       : public Request<MacManagement::JoinRequestResult> {
+public:
+               JoinRequest(StationManagement::ConnectRequest*);
+};
+
+}      /* namespace Ieee80211 */
+
+#endif /* IEEE80211_JOIN_REQUEST_H_ */


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/requests/JoinRequest.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Jamfile
       2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Jamfile
       2010-01-26 17:02:40 UTC (rev 35296)
@@ -6,3 +6,6 @@
 KernelMergeObject station_management.o :
        Roster.cpp
        ;
+
+HaikuSubInclude requests ;
+HaikuSubInclude results ;

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.cpp
    2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.cpp
    2010-01-26 17:02:40 UTC (rev 35296)
@@ -54,17 +54,23 @@
        status = fMacRoster.AddJoinRequest(&joinRequest);
        if (status != B_OK)
                return status;
-       status = joinRequest.WaitForConfirm();
+
+       MacManagement::JoinRequestResult* joinResult = NULL;
+       status = joinRequest.WaitForConfirm(&joinResult);
        if (status != B_OK)
                return status;
+       // TODO: Actually test the joinResult before proceed
 
        MacManagement::AuthenticateRequest authenticationRequest(request);
        status = fMacRoster.AddAuthenticateRequest(&authenticationRequest);
        if (status != B_OK)
                return status;
-       status = authenticationRequest.WaitForConfirm();
+
+       MacManagement::AuthenticateRequestResult* authenticateResult = NULL;
+       status = authenticationRequest.WaitForConfirm(&authenticateResult);
        if (status != B_OK)
                return status;
+       // TODO: Actually test the authenticateResult before proceed
 
        return B_OK;
 }

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.h
      2010-01-26 14:44:58 UTC (rev 35295)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/Roster.h
      2010-01-26 17:02:40 UTC (rev 35296)
@@ -2,14 +2,14 @@
  * Copyright 2010 Haiku Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
-#ifndef STATION_MANAGEMENT_ROSTER_H_
-#define STATION_MANAGEMENT_ROSTER_H_
+#ifndef IEEE80211_STATION_MANAGEMENT_ROSTER_H_
+#define IEEE80211_STATION_MANAGEMENT_ROSTER_H_
 
 
 #include <SupportDefs.h>
 
 #include <mac_management/Roster.h>
-#include <station_management/Requests.h>
+#include <station_management/requests/ConnectRequest.h>
 
 
 namespace Ieee80211 {
@@ -32,4 +32,4 @@
 
 }      /* namespace Ieee80211 */
 
-#endif /* STATION_MANAGEMENT_ROSTER_H_ */
+#endif /* IEEE80211_STATION_MANAGEMENT_ROSTER_H_ */

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/ConnectRequest.h
 (from rev 35216, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/ConnectRequest.h)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/ConnectRequest.h
                             (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/ConnectRequest.h
     2010-01-26 17:02:40 UTC (rev 35296)
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef IEEE80211_CONNECT_REQUEST_H_
+#define IEEE80211_CONNECT_REQUEST_H_
+
+
+#include <Request.h>
+#include <station_management/results/ConnectRequestResult.h>
+
+
+namespace Ieee80211 {
+namespace StationManagement {
+class ConnectRequest;
+}      /* namespace StationManagement */
+
+class StationManagement::ConnectRequest
+       : public Request<StationManagement::ConnectRequestResult> {
+};
+
+}      /* namespace Ieee80211 */
+
+#endif /* IEEE80211_CONNECT_REQUEST_H_ */


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/station_management/requests/ConnectRequest.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Other related posts:

  • » [haiku-commits] r35296 - in haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211: . stack stack/mac_management stack/mac_management/requests stack/station_management ... - coling