• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "wpa_callback_impl.h"
17 #include <securec.h>
18 #include <hdf_base.h>
19 #include <hdf_log.h>
20 #include <osal_mem.h>
21 
WpaCallbackDisconnected(struct IWpaCallback * self,const struct HdiWpaDisconnectParam * disconnectParam,const char * ifName)22 static int32_t WpaCallbackDisconnected(struct IWpaCallback *self,
23     const struct HdiWpaDisconnectParam *disconnectParam, const char *ifName)
24 {
25     (void)self;
26     if (disconnectParam == NULL || ifName == NULL) {
27         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
28         return HDF_ERR_INVALID_PARAM;
29     }
30     HDF_LOGE("WpaCallbackDisconnected: bssid=" MACSTR, MAC2STR(disconnectParam->bssid));
31     HDF_LOGE("WpaCallbackDisconnected: reasonCode=%{public}d, locallyGenerated=%{public}d",
32         disconnectParam->reasonCode, disconnectParam->reasonCode);
33     return HDF_SUCCESS;
34 }
35 
WpaCallbackOnConnected(struct IWpaCallback * self,const struct HdiWpaConnectParam * connectParam,const char * ifName)36 static int32_t WpaCallbackOnConnected(struct IWpaCallback *self,
37     const struct HdiWpaConnectParam *connectParam, const char *ifName)
38 {
39     (void)self;
40     if (connectParam == NULL || ifName == NULL) {
41         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
42         return HDF_ERR_INVALID_PARAM;
43     }
44     HDF_LOGE("WpaCallbackOnConnected: bssid=" MACSTR, MAC2STR(connectParam->bssid));
45     HDF_LOGE("WpaCallbackOnConnected: networkId=%{public}d", connectParam->networkId);
46     return HDF_SUCCESS;
47 }
48 
WpaCallbackBssidChanged(struct IWpaCallback * self,const struct HdiWpaBssidChangedParam * bssidChangedParam,const char * ifName)49 static int32_t WpaCallbackBssidChanged(struct IWpaCallback *self,
50     const struct HdiWpaBssidChangedParam *bssidChangedParam, const char *ifName)
51 {
52     (void)self;
53     if (bssidChangedParam == NULL || ifName == NULL) {
54         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
55         return HDF_ERR_INVALID_PARAM;
56     }
57     HDF_LOGE("WpaCallbackBssidChanged: bssid=" MACSTR, MAC2STR(bssidChangedParam->bssid));
58     HDF_LOGE("WpaCallbackBssidChanged: reason=%{public}s", bssidChangedParam->reason);
59     return HDF_SUCCESS;
60 }
61 
WpaCallbackStateChanged(struct IWpaCallback * self,const struct HdiWpaStateChangedParam * statechangedParam,const char * ifName)62 static int32_t WpaCallbackStateChanged(struct IWpaCallback *self,
63     const struct HdiWpaStateChangedParam *statechangedParam, const char *ifName)
64 {
65     (void)self;
66     if (statechangedParam == NULL || ifName == NULL) {
67         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
68         return HDF_ERR_INVALID_PARAM;
69     }
70     HDF_LOGE("WpaCallbackStateChanged: bssid=" MACSTR, MAC2STR(statechangedParam->bssid));
71     HDF_LOGE("WpaCallbackStateChanged: status=%{public}d,networkId=%{public}d,ssid=%{public}s",
72         statechangedParam->status, statechangedParam->networkId, statechangedParam->ssid);
73     return HDF_SUCCESS;
74 }
75 
WpaCallbackTempDisabled(struct IWpaCallback * self,const struct HdiWpaTempDisabledParam * tempDisabledParam,const char * ifName)76 static int32_t WpaCallbackTempDisabled(struct IWpaCallback *self,
77     const struct HdiWpaTempDisabledParam *tempDisabledParam, const char *ifName)
78 {
79     (void)self;
80     if (tempDisabledParam == NULL || ifName == NULL) {
81         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
82         return HDF_ERR_INVALID_PARAM;
83     }
84 
85     HDF_LOGE("WpaCallbackTempDisabled: networkid=%{public}d,ssid=%{public}s,authFailures=%{public}d, \
86         duration=%{public}d, reason=%{public}s", tempDisabledParam->networkId, tempDisabledParam->ssid,
87         tempDisabledParam->authFailures, tempDisabledParam->duration, tempDisabledParam->reason);
88     return HDF_SUCCESS;
89 }
90 
WpaCallbackAssociateReject(struct IWpaCallback * self,const struct HdiWpaAssociateRejectParam * associateRejectParam,const char * ifName)91 static int32_t WpaCallbackAssociateReject(struct IWpaCallback *self,
92     const struct HdiWpaAssociateRejectParam *associateRejectParam, const char *ifName)
93 {
94     (void)self;
95     if (associateRejectParam == NULL || ifName == NULL) {
96         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
97         return HDF_ERR_INVALID_PARAM;
98     }
99     HDF_LOGE("WpaCallbackAssociateReject: bssid=" MACSTR, MAC2STR(associateRejectParam->bssid));
100     HDF_LOGE("WpaCallbackAssociateReject: statusCode=%{public}d,timeOut=%{public}d",
101         associateRejectParam->statusCode, associateRejectParam->timeOut);
102     return HDF_SUCCESS;
103 }
104 
WpaCallbackWpsOverlap(struct IWpaCallback * self,const char * ifName)105 static int32_t WpaCallbackWpsOverlap(struct IWpaCallback *self, const char *ifName)
106 {
107     (void)self;
108     if (ifName == NULL) {
109         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
110         return HDF_ERR_INVALID_PARAM;
111     }
112 
113     HDF_LOGE("WpaCallbackWpsOverlap: input successfully");
114     return HDF_SUCCESS;
115 }
116 
WpaCallbackWpsTimeout(struct IWpaCallback * self,const char * ifName)117 static int32_t WpaCallbackWpsTimeout(struct IWpaCallback *self, const char *ifName)
118 {
119     (void)self;
120     if (ifName == NULL) {
121         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
122         return HDF_ERR_INVALID_PARAM;
123     }
124 
125     HDF_LOGE("WpaCallbackWpsTimeout: input successfully");
126     return HDF_SUCCESS;
127 }
128 
WpaCallbackScanResult(struct IWpaCallback * self,const struct HdiWpaRecvScanResultParam * recvScanResultParamconst,const char * ifName)129 static int32_t WpaCallbackScanResult(struct IWpaCallback *self,
130     const struct HdiWpaRecvScanResultParam *recvScanResultParamconst, const char *ifName)
131 {
132     (void)self;
133     if (ifName == NULL || recvScanResultParamconst ==NULL) {
134         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
135         return HDF_ERR_INVALID_PARAM;
136     }
137 
138     HDF_LOGE("WpaCallbackScanResult: scanId=%{public}d", recvScanResultParamconst->scanId);
139     return HDF_SUCCESS;
140 }
141 
WpaCallbackAuthReject(struct IWpaCallback * self,const struct HdiWpaAuthRejectParam * authRejectParam,const char * ifName)142 static int32_t WpaCallbackAuthReject(struct IWpaCallback *self,
143     const struct HdiWpaAuthRejectParam *authRejectParam, const char *ifName)
144 {
145     (void)self;
146     if (ifName == NULL || authRejectParam == NULL) {
147         HDF_LOGE("%{public}s: input parameter invalid!", __func__);
148         return HDF_ERR_INVALID_PARAM;
149     }
150     HDF_LOGI("WpaCallbackAuthReject: bssid=" MACSTR " statusCode=%{public}hd,authType=%{public}hd,authTransaction="
151               "%{public}hd", MAC2STR(authRejectParam->bssid), authRejectParam->statusCode, authRejectParam->authType,
152               authRejectParam->authTransaction);
153     return HDF_SUCCESS;
154 }
155 
WpaCallbackServiceGet(void)156 struct IWpaCallback *WpaCallbackServiceGet(void)
157 {
158     struct WpaCallbackService *service =
159         (struct WpaCallbackService *)OsalMemCalloc(sizeof(struct WpaCallbackService));
160     if (service == NULL) {
161         HDF_LOGE("%{public}s: malloc WpaCallbackService obj failed!", __func__);
162         return NULL;
163     }
164 
165     service->interface.OnEventDisconnected = WpaCallbackDisconnected;
166     service->interface.OnEventConnected = WpaCallbackOnConnected;
167     service->interface.OnEventBssidChanged = WpaCallbackBssidChanged;
168     service->interface.OnEventStateChanged = WpaCallbackStateChanged;
169     service->interface.OnEventTempDisabled = WpaCallbackTempDisabled;
170     service->interface.OnEventAssociateReject = WpaCallbackAssociateReject;
171     service->interface.OnEventWpsOverlap = WpaCallbackWpsOverlap;
172     service->interface.OnEventWpsTimeout = WpaCallbackWpsTimeout;
173     service->interface.OnEventScanResult = WpaCallbackScanResult;
174     service->interface.OnEventAuthReject = WpaCallbackAuthReject;
175     return &service->interface;
176 }
177 
WpaCallbackServiceRelease(struct IWpaCallback * instance)178 void WpaCallbackServiceRelease(struct IWpaCallback *instance)
179 {
180     struct WpaCallbackService *service = (struct WpaCallbackService *)instance;
181     if (service == NULL) {
182         return;
183     }
184 
185     OsalMemFree(service);
186 }
187