From 22d2dad73e5603542f0010eb55813c857182d74b Mon Sep 17 00:00:00 2001 From: Vinil Jain Date: Wed, 23 Sep 2015 12:43:37 +0530 Subject: [PATCH] Prevent issue fixes -for prevent run on 22/09(c++ and java) Change-Id: I87ce6662db7de01c9d8da6fddeac3bbf22910cc5 Signed-off-by: Vinil Jain Reviewed-on: https://gerrit.iotivity.org/gerrit/2981 Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka --- .../service/easysetup/core/EasySetupService.java | 11 +- .../easysetup/mediator/ProvisionEnrollee.java | 24 +- .../service/easysetup/mediator/ble/BLEManager.java | 3 - .../easysetup/mediator/ip/WiFiSoftAPManager.java | 6 +- .../sdk/mediator/src/ble_provisioning.cpp | 357 ++++++++++---------- .../sdk/mediator/src/wifi_provisioning.cpp | 358 ++++++++++----------- 6 files changed, 366 insertions(+), 393 deletions(-) diff --git a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/core/EasySetupService.java b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/core/EasySetupService.java index b944d32..763a63f 100755 --- a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/core/EasySetupService.java +++ b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/core/EasySetupService.java @@ -104,6 +104,7 @@ public class EasySetupService { mEnrolleeDeviceList.add(enrolledevice); + // Starts the provisioning directly if the device is already on boarded on the network. if (enrolledevice.onBoarded()) { enrolledevice.startProvisioning(mProvisioningCallback); @@ -177,10 +178,12 @@ public class EasySetupService { @Override public void onFinished(EnrolleeDevice enrolledevice) { - if (mEnrolleeDeviceList.contains(enrolledevice)) { - Log.i(TAG, "onFinished() is received " + enrolledevice.isSetupSuccessful()); - mCallback.onFinished(enrolledevice); - mEnrolleeDeviceList.remove(enrolledevice); + synchronized (EasySetupService.this) { + if (mEnrolleeDeviceList.contains(enrolledevice)) { + Log.i(TAG, "onFinished() is received " + enrolledevice.isSetupSuccessful()); + mCallback.onFinished(enrolledevice); + mEnrolleeDeviceList.remove(enrolledevice); + } } } diff --git a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ProvisionEnrollee.java b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ProvisionEnrollee.java index 4779ef0..ef0cbb1 100755 --- a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ProvisionEnrollee.java +++ b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ProvisionEnrollee.java @@ -1,22 +1,22 @@ /** * *************************************************************** - *

+ *

* Copyright 2015 Samsung Electronics All Rights Reserved. - *

- *

- *

+ *

+ *

+ *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - *

+ *

* http://www.apache.org/licenses/LICENSE-2.0 - *

+ *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - *

+ *

* **************************************************************** */ @@ -27,32 +27,22 @@ import android.util.Log; public class ProvisionEnrollee { private static final String TAG = "ProvisionEnrollee"; - private EasySetupManager easySetupManagerNativeInstance = null; private IProvisioningListener provisioningListener; /** * Constructor for ProvisionEnrollee. Constructs a new ProvisionEnrollee. */ public ProvisionEnrollee(Context context) { - } - @Override - protected void finalize() throws Throwable { - super.finalize(); - easySetupManagerNativeInstance.terminateEasySetup(); } public void provisionEnrollee(String ipAddress, String netSSID, String netPWD, int connectivityType) { Log.i(TAG, "JNI start provisioning is called "); - easySetupManagerNativeInstance.provisionEnrollee(ipAddress, netSSID, - netPWD, connectivityType); } public void stopEnrolleeProvisioning(int connectivityType) { Log.i(TAG, "JNI stop provisioning is called "); - easySetupManagerNativeInstance - .stopEnrolleeProvisioning(connectivityType); } public void ProvisioningStatusCallBack(int statuscode) { diff --git a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ble/BLEManager.java b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ble/BLEManager.java index b8495e4..d23330a 100644 --- a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ble/BLEManager.java +++ b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ble/BLEManager.java @@ -34,7 +34,6 @@ import java.util.UUID; public class BLEManager { private BluetoothAdapter mBluetoothAdapter; - private boolean is_scanning; private Context mcontext; private Handler mHandler; private static final long SCAN_PERIOD = 10000; @@ -67,13 +66,11 @@ public class BLEManager { mHandler.postDelayed(new Runnable() { @Override public void run() { - is_scanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); } }, SCAN_PERIOD); - is_scanning = true; UUID[] uuids = {bleOnBoardingConfig.getUuid()}; mBluetoothAdapter.startLeScan(uuids, mLeScanCallback); finishlistener = listener; diff --git a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ip/WiFiSoftAPManager.java b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ip/WiFiSoftAPManager.java index 44a3ac6..1212932 100755 --- a/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ip/WiFiSoftAPManager.java +++ b/service/easy-setup/sdk/mediator/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/ip/WiFiSoftAPManager.java @@ -210,8 +210,10 @@ public class WiFiSoftAPManager { Method method = mWifiManager.getClass().getMethod("getWifiApState"); int currentWiFiState = ((Integer) method.invoke(mWifiManager)); - - return WIFI_AP_STATE.class.getEnumConstants()[currentWiFiState]; + WIFI_AP_STATE wifi_ap_state_enum[] = WIFI_AP_STATE.class.getEnumConstants(); + if (wifi_ap_state_enum != null) + return wifi_ap_state_enum[currentWiFiState]; + else return WIFI_AP_STATE.WIFI_AP_STATE_FAILED; } catch (Exception e) { Log.e(this.getClass().toString(), "", e); return WIFI_AP_STATE.WIFI_AP_STATE_FAILED; diff --git a/service/easy-setup/sdk/mediator/src/ble_provisioning.cpp b/service/easy-setup/sdk/mediator/src/ble_provisioning.cpp index 31bed85..8e75c36 100644 --- a/service/easy-setup/sdk/mediator/src/ble_provisioning.cpp +++ b/service/easy-setup/sdk/mediator/src/ble_provisioning.cpp @@ -47,25 +47,28 @@ static EnrolleeNWProvInfo_t *netProvInfo; */ static OCProvisioningStatusCB cbData = NULL; -void ErrorCallback(ProvStatus status) { +void ErrorCallback(ProvStatus status) +{ ProvisioningInfo *provInfo = GetCallbackObjectOnError(status); cbData(provInfo); } -OCStackResult InitProvisioningHandler() { +OCStackResult InitProvisioningHandler() +{ OCStackResult ret = OC_STACK_ERROR; /* Initialize OCStack*/ - if (OCInit(NULL, 0, OC_CLIENT) != OC_STACK_OK) { + if (OCInit(NULL, 0, OC_CLIENT) != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack init error"); return ret; } - char *string = "listeningFunc invoked in a thread"; pthread_t thread_handle; - if (pthread_create(&thread_handle, NULL, listeningFunc, (void *) string)) { + if (pthread_create(&thread_handle, NULL, listeningFunc, (void *) string)) + { OIC_LOG(DEBUG, TAG, "Thread creation failed"); return OC_STACK_ERROR; } @@ -79,84 +82,101 @@ OCStackResult InitProvisioningHandler() { return OC_STACK_OK; } -OCStackResult TerminateProvisioningHandler() { +OCStackResult TerminateProvisioningHandler() +{ OCStackResult ret = OC_STACK_ERROR; - if (OCStop() != OC_STACK_OK) { + if (OCStop() != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } g_provisioningCondFlag = true; - ret = OC_STACK_OK; return ret; } -void *listeningFunc(void *data) { - while (!g_provisioningCondFlag) { +void *listeningFunc(void *data) +{ + while (!g_provisioningCondFlag) + { OCStackResult result; result = OCProcess(); - if (result != OC_STACK_OK) { + if (result != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } // To minimize CPU utilization we may wish to do this with sleep sleep(1); } + return NULL; } OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ OIC_LOG_V(DEBUG, TAG, "INSIDE ProvisionEnrolleeResponse"); ProvisioningInfo *provInfo; - if (!ValidateEnrolleResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateEnrolleResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } char *tnn; char *cd; - OCRepPayload *input = (OCRepPayload * )(clientResponse->payload); + OCRepPayload *input = (OCRepPayload *) (clientResponse->payload); - while (input) { + while (input) + { int64_t ps; - if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_PS, &ps)) { + if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_PS, &ps)) + { - if (ps == 1) { + if (ps == 1) + { input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "PS is NOT proper"); goto Error; } } - if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn)) { - if (!strcmp(tnn, netProvInfo->netAddressInfo.WIFI.ssid)) { + if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn)) + { + if (!strcmp(tnn, netProvInfo->netAddressInfo.WIFI.ssid)) + { OIC_LOG_V(DEBUG, TAG, "SSID is proper"); input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "SSID is NOT proper"); goto Error; } } - if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd)) { - if (!strcmp(cd, netProvInfo->netAddressInfo.WIFI.pwd)) { + if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd)) + { + if (!strcmp(cd, netProvInfo->netAddressInfo.WIFI.pwd)) + { OIC_LOG_V(DEBUG, TAG, "Password is proper"); input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "Password is NOT proper"); goto Error; } @@ -175,7 +195,7 @@ OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, Error: { - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -183,7 +203,8 @@ OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, } OCStackResult ProvisionEnrollee(OCQualityOfService qos, const char *query, const char *resUri, - OCDevAddr *destination) { + OCDevAddr *destination) +{ OIC_LOG_V(INFO, TAG, "Sleeping for 6 seconds"); sleep(6);//sleep added to avoid BLE packet drop OIC_LOG_V(INFO, TAG, "\n\nExecuting ProvisionEnrollee%s", __func__); @@ -197,13 +218,14 @@ OCStackResult ProvisionEnrollee(OCQualityOfService qos, const char *query, const OIC_LOG_V(DEBUG, TAG, "OCPayload ready for ProvisionEnrollee"); OCStackResult ret = InvokeOCDoResource(query, OC_REST_PUT, destination, OC_HIGH_QOS, - ProvisionEnrolleeResponse, payload, NULL, 0); + ProvisionEnrolleeResponse, payload, NULL, 0); return ret; } OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ if (sent_provision_request == true) return OC_STACK_DELETE_TRANSACTION; sent_provision_request = true; @@ -211,18 +233,19 @@ OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle han ProvisioningInfo *provInfo; - if (!ValidateEnrolleResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateEnrolleResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_DELETE_TRANSACTION; } - OCRepPayload *input = (OCRepPayload * )(clientResponse->payload); + OCRepPayload *input = (OCRepPayload *) (clientResponse->payload); char query[OIC_STRING_MAX_VALUE] = - {'\0'}; + { '\0' }; char resURI[MAX_URI_LENGTH] = - {'\0'}; + { '\0' }; OIC_LOG_V(DEBUG, TAG, "resUri = %s", input->uri); @@ -237,11 +260,12 @@ OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle han //OCPayloadLogRep(DEBUG,TAG,input); - if (ProvisionEnrollee(OC_HIGH_QOS, query, OC_RSRVD_ES_URI_PROV, devaddress) != OC_STACK_OK) { + if (ProvisionEnrollee(OC_HIGH_QOS, query, OC_RSRVD_ES_URI_PROV, devaddress) != OC_STACK_OK) + { OIC_LOG(INFO, TAG, "GetProvisioningStatusResponse received NULL clientResponse.Invoking Provisioing Status Callback"); - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_DELETE_TRANSACTION; } @@ -251,9 +275,9 @@ OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle han } OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDevAddr *dest, - OCQualityOfService qos, OCClientResponseHandler cb, - OCRepPayload *payload, - OCHeaderOption *options, uint8_t numOptions) { + OCQualityOfService qos, OCClientResponseHandler cb, OCRepPayload *payload, + OCHeaderOption *options, uint8_t numOptions) +{ OCStackResult ret; OCCallbackData cbData; @@ -262,9 +286,10 @@ OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDev cbData.cd = NULL; ret = OCDoResource(NULL, method, query, dest, (OCPayload *) payload, OC_CONNTYPE_BLE, qos, - &cbData, options, numOptions); + &cbData, options, numOptions); - if (ret != OC_STACK_OK) { + if (ret != OC_STACK_OK) + { OIC_LOG_V(ERROR, TAG, "OCDoResource returns error %d with method %d", ret, method); } @@ -272,16 +297,18 @@ OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDev } OCStackResult GetProvisioningStatus(OCQualityOfService qos, const char *query, - const OCDevAddr *destination) { + const OCDevAddr *destination) +{ OCStackResult ret = OC_STACK_ERROR; OIC_LOG_V(INFO, TAG, "\n\nExecuting %s %d", __func__, destination->adapter); ret = InvokeOCDoResource(query, OC_REST_GET, destination, OC_HIGH_QOS, - GetProvisioningStatusResponse, NULL, NULL, 0); + GetProvisioningStatusResponse, NULL, NULL, 0); return ret; } OCStackResult StartProvisioningProcess(const EnrolleeNWProvInfo_t *netInfo, - OCProvisioningStatusCB provisioningStatusCallback) { + OCProvisioningStatusCB provisioningStatusCallback) +{ OCStackResult result = OC_STACK_ERROR; @@ -289,53 +316,59 @@ OCStackResult StartProvisioningProcess(const EnrolleeNWProvInfo_t *netInfo, pthread_t thread_handle; - if (!ValidateEasySetupParams(netInfo, provisioningStatusCallback)) { + if (!ValidateEasySetupParams(netInfo, provisioningStatusCallback)) + { goto Error; } //Only basis test is done for below API - if (!SetProgress(provisioningStatusCallback)) { + if (!SetProgress(provisioningStatusCallback)) + { // Device provisioning session is running already. OIC_LOG(INFO, TAG, PCF("Device provisioning session is running already")); goto Error; } - if (!ConfigEnrolleeObject(netInfo)) { + if (!ConfigEnrolleeObject(netInfo)) + { goto Error; } - if (pthread_create(&thread_handle, NULL, FindProvisioningResource, (void *) string)) { + if (pthread_create(&thread_handle, NULL, FindProvisioningResource, (void *) string)) + { goto Error; } pthread_join(thread_handle, NULL); - return OC_STACK_OK; Error: { - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_ERROR; } } -void StopProvisioningProcess() { +void StopProvisioningProcess() +{ //Only basis test is done for below API ResetProgress(); } // This is a function called back when a device is discovered OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ OIC_LOG(INFO, TAG, PCF("Entering FindProvisioningResourceResponse")); - if (!ValidateFinddResourceResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateFinddResourceResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -343,37 +376,39 @@ OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle ProvisioningInfo *provInfo; char szQueryUri[64] = - {0}; + { 0 }; - OCDiscoveryPayload *discoveryPayload = (OCDiscoveryPayload * )(clientResponse->payload); + OCDiscoveryPayload *discoveryPayload = (OCDiscoveryPayload *) (clientResponse->payload); // Need to conform if below check is required or not. As Null check of clientResponse->payload is already performed above - if (!discoveryPayload) { + if (!discoveryPayload) + { OIC_LOG_V(DEBUG, TAG, "Failed To parse"); - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } OIC_LOG_V(DEBUG, TAG, "resUri = %s", discoveryPayload->resources->uri); snprintf(szQueryUri, sizeof(szQueryUri), UNICAST_PROVISIONING_QUERY_BLE, - clientResponse->addr->addr); + clientResponse->addr->addr); OCDevAddr *devaddress = &clientResponse->devAddr; devaddress->adapter = OC_ADAPTER_GATT_BTLE; if (strcmp(netProvInfo->netAddressInfo.WIFI.ipAddress, clientResponse->devAddr.addr)) OIC_LOG_V(INFO, TAG, "unequal %s %s", netProvInfo->netAddressInfo.WIFI.ipAddress, - clientResponse->devAddr.addr); + clientResponse->devAddr.addr); else OIC_LOG_V(INFO, TAG, "unequal %s %s", netProvInfo->netAddressInfo.WIFI.ipAddress, - clientResponse->devAddr.addr); + clientResponse->devAddr.addr); OIC_LOG_V(DEBUG, TAG, "query before GetProvisioningStatus call = %s %d", szQueryUri, - devaddress->adapter); + devaddress->adapter); - if (GetProvisioningStatus(OC_HIGH_QOS, szQueryUri, devaddress) != OC_STACK_OK) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (GetProvisioningStatus(OC_HIGH_QOS, szQueryUri, devaddress) != OC_STACK_OK) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -381,12 +416,13 @@ OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle } -void *FindProvisioningResource(void *data) { +void *FindProvisioningResource(void *data) +{ OCStackResult ret = OC_STACK_ERROR; /* Start a discovery query*/ char szQueryUri[64] = - {0}; + { 0 }; snprintf(szQueryUri, sizeof(szQueryUri), MULTICAST_PROVISIONING_QUERY_BLE); @@ -399,87 +435,21 @@ void *FindProvisioningResource(void *data) { ocCBData.cd = NULL; ret = OCDoResource(NULL, OC_REST_DISCOVER, szQueryUri, NULL, NULL, OC_CONNTYPE_BLE, OC_LOW_QOS, - &ocCBData, NULL, 0); + &ocCBData, NULL, 0); - if (ret != OC_STACK_OK) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (ret != OC_STACK_OK) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); } + return NULL; } -OCStackApplicationResult SubscribeProvPresenceCallback(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { - OIC_LOG(INFO, TAG, PCF("Entering SubscribeProvPresenceCallback")); - - OCStackApplicationResult response = OC_STACK_DELETE_TRANSACTION; - - if (clientResponse == NULL) { - // clientResponse is invalid - OIC_LOG(ERROR, TAG, PCF("Client Response is NULL!")); - return response; - } - else { - if (clientResponse->result != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "OCStack stop error"); - return response; - } - - if (clientResponse->payload && - clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) { - OIC_LOG_V(DEBUG, TAG, "Incoming payload not a representation"); - return response; - } - - OCRepPayload *discoveryPayload = (OCRepPayload * )(clientResponse->payload); - if (!discoveryPayload) { - OIC_LOG_V(DEBUG, TAG, "invalid payload"); - return response; - } - - char sourceIPAddr[OIC_STRING_MAX_VALUE] = - {'\0'}; - snprintf(sourceIPAddr, sizeof(sourceIPAddr), "%s", clientResponse->addr->addr); - - OIC_LOG_V(DEBUG, TAG, "Discovered %s @ %s", discoveryPayload->uri, sourceIPAddr); - - /* Start a discovery query*/ - char szQueryUri[64] = - {0}; - - snprintf(szQueryUri, sizeof(szQueryUri), UNICAST_PROVISIONING_QUERY, sourceIPAddr, IP_PORT); - - /*if (FindProvisioningResource(qos, szQueryUri) != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "FindProvisioningResource failed"); - return OC_STACK_KEEP_TRANSACTION; - }*/ - } - - return OC_STACK_KEEP_TRANSACTION; - -} - -OCStackResult SubscribeProvPresence(OCQualityOfService qos, const char *requestURI) { +OCStackResult FindNetworkResource() +{ OCStackResult ret = OC_STACK_ERROR; - - OCCallbackData cbData; - - cbData.cb = &SubscribeProvPresenceCallback; - cbData.context = (void *) DEFAULT_CONTEXT_VALUE; - cbData.cd = NULL; - - ret = OCDoResource(NULL, OC_REST_PRESENCE, requestURI, 0, 0, OC_CONNTYPE_BLE, OC_LOW_QOS, - &cbData, NULL, 0); - - if (ret != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "OCStack resource error"); - } - - return ret; -} - -OCStackResult FindNetworkResource() { - OCStackResult ret = OC_STACK_ERROR; - if (OCStop() != OC_STACK_OK) { + if (OCStop() != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } @@ -487,18 +457,21 @@ OCStackResult FindNetworkResource() { } ProvisioningInfo *PrepareProvisioingStatusCB(OCClientResponse *clientResponse, - ProvStatus provStatus) { + ProvStatus provStatus) +{ ProvisioningInfo *provInfo = (ProvisioningInfo *) OICCalloc(1, sizeof(ProvisioningInfo)); - if (provInfo == NULL) { + if (provInfo == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } OCDevAddr *devAddr = (OCDevAddr *) OICCalloc(1, sizeof(OCDevAddr)); - if (devAddr == NULL) { + if (devAddr == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } @@ -514,14 +487,17 @@ ProvisioningInfo *PrepareProvisioingStatusCB(OCClientResponse *clientResponse, } bool ValidateEasySetupParams(const EnrolleeNWProvInfo_t *netInfo, - OCProvisioningStatusCB provisioningStatusCallback) { + OCProvisioningStatusCB provisioningStatusCallback) +{ - if (netInfo == NULL || netInfo->netAddressInfo.WIFI.ipAddress == NULL) { + if (netInfo == NULL || strlen(netInfo->netAddressInfo.LE.leMacAddress) == 0) + { OIC_LOG(ERROR, TAG, "Request URI is NULL"); return false; } - if (provisioningStatusCallback == NULL) { + if (provisioningStatusCallback == NULL) + { OIC_LOG(ERROR, TAG, "ProvisioningStatusCallback is NULL"); return false; } @@ -530,10 +506,12 @@ bool ValidateEasySetupParams(const EnrolleeNWProvInfo_t *netInfo, } -bool InProgress() { +bool InProgress() +{ // It means already Easy Setup provisioning session is going on. - if (NULL != cbData) { + if (NULL != cbData) + { OIC_LOG(ERROR, TAG, "Easy setup session is already in progress"); return true; } @@ -541,38 +519,40 @@ bool InProgress() { return false; } -bool SetProgress(OCProvisioningStatusCB provisioningStatusCallback) { - +bool SetProgress(OCProvisioningStatusCB provisioningStatusCallback) +{ if (InProgress()) return false; cbData = provisioningStatusCallback; - return true; } -bool ResetProgress() { - +bool ResetProgress() +{ cbData = NULL; return true; } -ProvisioningInfo *CreateCallBackObject() { +ProvisioningInfo *CreateCallBackObject() +{ ProvisioningInfo *provInfo = (ProvisioningInfo *) OICCalloc(1, sizeof(ProvisioningInfo)); - if (provInfo == NULL) { + if (provInfo == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } OCDevAddr *devAddr = (OCDevAddr *) OICCalloc(1, sizeof(OCDevAddr)); - if (devAddr == NULL) { + if (devAddr == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } @@ -583,7 +563,8 @@ ProvisioningInfo *CreateCallBackObject() { } -ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) { +ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) +{ ProvisioningInfo *provInfo = CreateCallBackObject(); strncpy(provInfo->provDeviceInfo.addr->addr, netProvInfo->netAddressInfo.WIFI.ipAddress, @@ -594,7 +575,8 @@ ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) { } ProvisioningInfo *GetCallbackObjectOnSuccess(OCClientResponse *clientResponse, - ProvStatus provStatus) { + ProvStatus provStatus) +{ ProvisioningInfo *provInfo = CreateCallBackObject(); strncpy(provInfo->provDeviceInfo.addr->addr, clientResponse->addr->addr, sizeof(provInfo->provDeviceInfo.addr->addr)); @@ -603,9 +585,11 @@ ProvisioningInfo *GetCallbackObjectOnSuccess(OCClientResponse *clientResponse, return provInfo; } -bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) { +bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) +{ - if (!(clientResponse) || !(clientResponse->payload)) { + if (!(clientResponse) || !(clientResponse->payload)) + { OIC_LOG_V(INFO, TAG, "ProvisionEnrolleeResponse received Null clientResponse"); @@ -615,9 +599,11 @@ bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) { return true; } -bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { +bool ValidateEnrolleResponse(OCClientResponse * clientResponse) +{ - if (!(clientResponse) || !(clientResponse->payload)) { + if (!(clientResponse) || !(clientResponse->payload)) + { OIC_LOG_V(INFO, TAG, "ProvisionEnrolleeResponse received Null clientResponse"); @@ -625,7 +611,8 @@ bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { } - if (clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) { + if (clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) + { OIC_LOG_V(DEBUG, TAG, "Incoming payload not a representation"); return false; @@ -637,12 +624,14 @@ bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { } -void SuccessCallback(OCClientResponse * clientResponse) { +void SuccessCallback(OCClientResponse * clientResponse) +{ ProvisioningInfo *provInfo = GetCallbackObjectOnSuccess(clientResponse, DEVICE_PROVISIONED); cbData(provInfo); } -bool ClearMemory() { +bool ClearMemory() +{ OIC_LOG(DEBUG, TAG, "thread_pool_add_task of FindProvisioningResource failed"); @@ -650,12 +639,14 @@ bool ClearMemory() { } -bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) { +bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) +{ //Copy Network Provisioning Information netProvInfo = (EnrolleeNWProvInfo_t *) OICCalloc(1, sizeof(EnrolleeNWProvInfo_t)); - if (netProvInfo == NULL) { + if (netProvInfo == NULL) + { OIC_LOG(ERROR, TAG, "Invalid input.."); return false; } @@ -663,21 +654,23 @@ bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) { memcpy(netProvInfo, netInfo, sizeof(EnrolleeNWProvInfo_t)); OIC_LOG_V(DEBUG, TAG, "Network Provisioning Info. SSID = %s", - netProvInfo->netAddressInfo.WIFI.ssid); + netProvInfo->netAddressInfo.WIFI.ssid); OIC_LOG_V(DEBUG, TAG, "Network Provisioning Info. PWD = %s", - netProvInfo->netAddressInfo.WIFI.pwd); + netProvInfo->netAddressInfo.WIFI.pwd); OIC_LOG_V(DEBUG, TAG, "Network Provisioning Info. MAC ADDRESS = %s", - netInfo->netAddressInfo.LE.leMacAddress); + netInfo->netAddressInfo.LE.leMacAddress); return true; } -void LogProvisioningResponse(OCRepPayloadValue * val) { +void LogProvisioningResponse(OCRepPayloadValue * val) +{ - switch (val->type) { + switch (val->type) + { case OCREP_PROP_NULL: OIC_LOG_V(DEBUG, TAG, "\t\t%s: NULL", val->name); break; @@ -699,31 +692,27 @@ void LogProvisioningResponse(OCRepPayloadValue * val) { OIC_LOG_V(DEBUG, TAG, "\t\t%s(OCRep):%s", val->name, val->obj->uri); break; case OCREP_PROP_ARRAY: - switch (val->arr.type) { + switch (val->arr.type) + { case OCREP_PROP_INT: OIC_LOG_V(DEBUG, TAG, "\t\t%s(int array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_DOUBLE: OIC_LOG_V(DEBUG, TAG, "\t\t%s(double array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_BOOL: OIC_LOG_V(DEBUG, TAG, "\t\t%s(bool array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_STRING: OIC_LOG_V(DEBUG, TAG, "\t\t%s(string array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_OBJECT: OIC_LOG_V(DEBUG, TAG, "\t\t%s(OCRep array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; default: //OIC_LOG_V(ERROR, TAG, "\t\t%s <-- Unknown/unsupported array type!", diff --git a/service/easy-setup/sdk/mediator/src/wifi_provisioning.cpp b/service/easy-setup/sdk/mediator/src/wifi_provisioning.cpp index 6ca54de..17527d3 100755 --- a/service/easy-setup/sdk/mediator/src/wifi_provisioning.cpp +++ b/service/easy-setup/sdk/mediator/src/wifi_provisioning.cpp @@ -48,45 +48,49 @@ static EnrolleeNWProvInfo_t *netProvInfo; */ static OCProvisioningStatusCB cbData = NULL; -void ErrorCallback(ProvStatus status) { +void ErrorCallback(ProvStatus status) +{ ProvisioningInfo *provInfo = GetCallbackObjectOnError(status); cbData(provInfo); ResetProgress(); } - -OCStackResult InitProvisioningHandler() { +OCStackResult InitProvisioningHandler() +{ OCStackResult ret = OC_STACK_ERROR; /* Initialize OCStack*/ - if (OCInit(NULL, 0, OC_CLIENT) != OC_STACK_OK) { + if (OCInit(NULL, 0, OC_CLIENT) != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack init error"); return ret; } - -// start + // start char *string = "listeningFunc invoked in a thread"; pthread_t thread_handle; - if (pthread_create(&thread_handle, NULL, listeningFunc, (void *) string)) { + if (pthread_create(&thread_handle, NULL, listeningFunc, (void *) string)) + { OIC_LOG(DEBUG, TAG, "Thread creation failed"); return OC_STACK_ERROR; } pthread_join(thread_handle, NULL); -// end + // end ResetProgress(); return OC_STACK_OK; } -OCStackResult TerminateProvisioningHandler() { +OCStackResult TerminateProvisioningHandler() +{ OCStackResult ret = OC_STACK_ERROR; - if (OCStop() != OC_STACK_OK) { + if (OCStop() != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } @@ -96,72 +100,88 @@ OCStackResult TerminateProvisioningHandler() { return ret; } -void *listeningFunc(void *data) { - while (!g_provisioningCondFlag) { +void *listeningFunc(void *data) +{ + while (!g_provisioningCondFlag) + { OCStackResult result; result = OCProcess(); - if (result != OC_STACK_OK) { + if (result != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } // To minimize CPU utilization we may wish to do this with sleep sleep(1); } + return NULL; } OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ ProvisioningInfo *provInfo; - if (!ValidateEnrolleResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateEnrolleResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } char *tnn; char *cd; - OCRepPayload *input = (OCRepPayload * )(clientResponse->payload); + OCRepPayload *input = (OCRepPayload *) (clientResponse->payload); - while (input) { + while (input) + { int64_t ps; - if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_PS, &ps)) { + if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_PS, &ps)) + { - if (ps == 1) { + if (ps == 1) + { OIC_LOG_V(DEBUG, TAG, "PS is proper"); input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "PS is NOT proper"); goto Error; } } - if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn)) { - if (!strcmp(tnn, netProvInfo->netAddressInfo.WIFI.ssid)) { + if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn)) + { + if (!strcmp(tnn, netProvInfo->netAddressInfo.WIFI.ssid)) + { OIC_LOG_V(DEBUG, TAG, "SSID is proper"); input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "SSID is NOT proper"); goto Error; } } - if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd)) { - if (!strcmp(cd, netProvInfo->netAddressInfo.WIFI.pwd)) { + if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd)) + { + if (!strcmp(cd, netProvInfo->netAddressInfo.WIFI.pwd)) + { OIC_LOG_V(DEBUG, TAG, "Password is proper"); input = input->next; continue; } - else { + else + { OIC_LOG_V(DEBUG, TAG, "Password is NOT proper"); goto Error; } @@ -180,7 +200,7 @@ OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, Error: { - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -188,7 +208,8 @@ OCStackApplicationResult ProvisionEnrolleeResponse(void *ctx, OCDoHandle handle, } OCStackResult ProvisionEnrollee(OCQualityOfService qos, const char *query, const char *resUri, - OCDevAddr *destination) { + OCDevAddr *destination) +{ OIC_LOG_V(INFO, TAG, "\n\nExecuting ProvisionEnrollee%s", __func__); OCRepPayload *payload = OCRepPayloadCreate(); @@ -200,44 +221,47 @@ OCStackResult ProvisionEnrollee(OCQualityOfService qos, const char *query, const OIC_LOG_V(DEBUG, TAG, "OCPayload ready for ProvisionEnrollee"); OCStackResult ret = InvokeOCDoResource(query, OC_REST_PUT, destination, OC_HIGH_QOS, - ProvisionEnrolleeResponse, payload, NULL, 0); + ProvisionEnrolleeResponse, payload, NULL, 0); return ret; } OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ ProvisioningInfo *provInfo; - if (!ValidateEnrolleResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateEnrolleResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_DELETE_TRANSACTION; } - OCRepPayload *input = (OCRepPayload * )(clientResponse->payload); + OCRepPayload *input = (OCRepPayload *) (clientResponse->payload); char query[OIC_STRING_MAX_VALUE] = - {'\0'}; + { '\0' }; char resURI[MAX_URI_LENGTH] = - {'\0'}; + { '\0' }; OIC_LOG_V(DEBUG, TAG, "resUri = %s", input->uri); strncpy(resURI, input->uri, sizeof(resURI) - 1); snprintf(query, sizeof(query), UNICAST_PROV_STATUS_QUERY, clientResponse->addr->addr, IP_PORT, - resURI); + resURI); //OCPayloadLogRep(DEBUG,TAG,input); if (ProvisionEnrollee(OC_HIGH_QOS, query, OC_RSRVD_ES_URI_PROV, clientResponse->addr) - != OC_STACK_OK) { + != OC_STACK_OK) + { OIC_LOG(INFO, TAG, "GetProvisioningStatusResponse received NULL clientResponse.Invoking Provisioing Status Callback"); - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_DELETE_TRANSACTION; } @@ -247,9 +271,9 @@ OCStackApplicationResult GetProvisioningStatusResponse(void *ctx, OCDoHandle han } OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDevAddr *dest, - OCQualityOfService qos, OCClientResponseHandler cb, - OCRepPayload *payload, - OCHeaderOption *options, uint8_t numOptions) { + OCQualityOfService qos, OCClientResponseHandler cb, OCRepPayload *payload, + OCHeaderOption *options, uint8_t numOptions) +{ OCStackResult ret; OCCallbackData cbData; @@ -258,9 +282,10 @@ OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDev cbData.cd = NULL; ret = OCDoResource(NULL, method, query, dest, (OCPayload *) payload, OC_CONNTYPE, qos, &cbData, - options, numOptions); + options, numOptions); - if (ret != OC_STACK_OK) { + if (ret != OC_STACK_OK) + { OIC_LOG_V(ERROR, TAG, "OCDoResource returns error %d with method %d", ret, method); } @@ -268,16 +293,17 @@ OCStackResult InvokeOCDoResource(const char *query, OCMethod method, const OCDev } OCStackResult GetProvisioningStatus(OCQualityOfService qos, const char *query, - const OCDevAddr *destination) { + const OCDevAddr *destination) +{ OCStackResult ret = OC_STACK_ERROR; OCHeaderOption options[MAX_HEADER_OPTIONS]; OIC_LOG_V(INFO, TAG, "\n\nExecuting %s", __func__); uint8_t option0[] = - {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; uint8_t option1[] = - {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; + { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; memset(options, 0, sizeof(OCHeaderOption) * MAX_HEADER_OPTIONS); options[0].protocolID = OC_COAP_ID; options[0].optionID = 2048; @@ -289,12 +315,13 @@ OCStackResult GetProvisioningStatus(OCQualityOfService qos, const char *query, options[1].optionLength = 10; ret = InvokeOCDoResource(query, OC_REST_GET, destination, OC_HIGH_QOS, - GetProvisioningStatusResponse, NULL, options, 2); + GetProvisioningStatusResponse, NULL, options, 2); return ret; } OCStackResult StartProvisioningProcess(const EnrolleeNWProvInfo_t *netInfo, - OCProvisioningStatusCB provisioningStatusCallback) { + OCProvisioningStatusCB provisioningStatusCallback) +{ OCStackResult result = OC_STACK_ERROR; @@ -302,22 +329,26 @@ OCStackResult StartProvisioningProcess(const EnrolleeNWProvInfo_t *netInfo, pthread_t thread_handle; - if (!ValidateEasySetupParams(netInfo, provisioningStatusCallback)) { + if (!ValidateEasySetupParams(netInfo, provisioningStatusCallback)) + { goto Error; } //Only basis test is done for below API - if (!SetProgress(provisioningStatusCallback)) { + if (!SetProgress(provisioningStatusCallback)) + { // Device provisioning session is running already. OIC_LOG(INFO, TAG, PCF("Device provisioning session is running already")); goto Error; } - if (!ConfigEnrolleeObject(netInfo)) { + if (!ConfigEnrolleeObject(netInfo)) + { goto Error; } - if (pthread_create(&thread_handle, NULL, FindProvisioningResource, string)) { + if (pthread_create(&thread_handle, NULL, FindProvisioningResource, string)) + { OIC_LOG(DEBUG, TAG, "Thread creation failed"); goto Error; } @@ -328,26 +359,29 @@ OCStackResult StartProvisioningProcess(const EnrolleeNWProvInfo_t *netInfo, Error: { - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); return OC_STACK_ERROR; } } -void StopProvisioningProcess() { +void StopProvisioningProcess() +{ //Only basis test is done for below API ResetProgress(); } // This is a function called back when a device is discovered OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { + OCClientResponse *clientResponse) +{ OIC_LOG(INFO, TAG, PCF("Entering FindProvisioningResourceResponse")); - if (!ValidateFinddResourceResponse(clientResponse)) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (!ValidateFinddResourceResponse(clientResponse)) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -355,26 +389,28 @@ OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle ProvisioningInfo *provInfo; char szQueryUri[64] = - {0}; + { 0 }; - OCDiscoveryPayload *discoveryPayload = (OCDiscoveryPayload * )(clientResponse->payload); + OCDiscoveryPayload *discoveryPayload = (OCDiscoveryPayload *) (clientResponse->payload); // Need to conform if below check is required or not. As Null check of clientResponse->payload is already performed above - if (!discoveryPayload) { + if (!discoveryPayload) + { OIC_LOG_V(DEBUG, TAG, "Failed To parse"); - ErrorCallback(DEVICE_NOT_PROVISIONED); + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } OIC_LOG_V(DEBUG, TAG, "resUri = %s", discoveryPayload->resources->uri); snprintf(szQueryUri, sizeof(szQueryUri), UNICAST_PROV_STATUS_QUERY, - clientResponse->devAddr.addr, IP_PORT, discoveryPayload->resources->uri); + clientResponse->devAddr.addr, IP_PORT, discoveryPayload->resources->uri); OIC_LOG_V(DEBUG, TAG, "query before GetProvisioningStatus call = %s", szQueryUri); - if (GetProvisioningStatus(OC_HIGH_QOS, szQueryUri, &clientResponse->devAddr) != OC_STACK_OK) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (GetProvisioningStatus(OC_HIGH_QOS, szQueryUri, &clientResponse->devAddr) != OC_STACK_OK) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); return OC_STACK_DELETE_TRANSACTION; } @@ -382,15 +418,16 @@ OCStackApplicationResult FindProvisioningResourceResponse(void *ctx, OCDoHandle } -void *FindProvisioningResource(void *data) { +void *FindProvisioningResource(void *data) +{ OCStackResult ret = OC_STACK_ERROR; /* Start a discovery query*/ char szQueryUri[64] = - {0}; + { 0 }; snprintf(szQueryUri, sizeof(szQueryUri), UNICAST_PROVISIONING_QUERY, - netProvInfo->netAddressInfo.WIFI.ipAddress, IP_PORT); + netProvInfo->netAddressInfo.WIFI.ipAddress, IP_PORT); OIC_LOG_V(DEBUG, TAG, "szQueryUri = %s", szQueryUri); @@ -401,86 +438,21 @@ void *FindProvisioningResource(void *data) { ocCBData.cd = NULL; ret = OCDoResource(NULL, OC_REST_DISCOVER, szQueryUri, NULL, NULL, OC_CONNTYPE, OC_LOW_QOS, - &ocCBData, NULL, 0); + &ocCBData, NULL, 0); - if (ret != OC_STACK_OK) { - ErrorCallback(DEVICE_NOT_PROVISIONED); + if (ret != OC_STACK_OK) + { + ErrorCallback( DEVICE_NOT_PROVISIONED); ClearMemory(); } + return NULL; } -OCStackApplicationResult SubscribeProvPresenceCallback(void *ctx, OCDoHandle handle, - OCClientResponse *clientResponse) { - OIC_LOG(INFO, TAG, PCF("Entering SubscribeProvPresenceCallback")); - - OCStackApplicationResult response = OC_STACK_DELETE_TRANSACTION; - - if (clientResponse->result != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "OCStack stop error"); - return response; - } - - if (clientResponse) { - OIC_LOG(INFO, TAG, PCF("Client Response exists")); - - if (clientResponse->payload && - clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) { - OIC_LOG_V(DEBUG, TAG, "Incoming payload not a representation"); - return response; - } - - OCRepPayload *discoveryPayload = (OCRepPayload * )(clientResponse->payload); - if (!discoveryPayload) { - OIC_LOG_V(DEBUG, TAG, "invalid payload"); - return response; - } - - char sourceIPAddr[OIC_STRING_MAX_VALUE] = - {'\0'}; - snprintf(sourceIPAddr, sizeof(sourceIPAddr), "%s", clientResponse->addr->addr); - - OIC_LOG_V(DEBUG, TAG, "Discovered %s @ %s", discoveryPayload->uri, sourceIPAddr); - - /* Start a discovery query*/ - char szQueryUri[64] = - {0}; - - snprintf(szQueryUri, sizeof(szQueryUri), UNICAST_PROVISIONING_QUERY, sourceIPAddr, IP_PORT); - - /*if (FindProvisioningResource(qos, szQueryUri) != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "FindProvisioningResource failed"); - return OC_STACK_KEEP_TRANSACTION; - }*/ - } - else { - // clientResponse is invalid - OIC_LOG(ERROR, TAG, PCF("Client Response is NULL!")); - } - return OC_STACK_KEEP_TRANSACTION; -} - -OCStackResult SubscribeProvPresence(OCQualityOfService qos, const char *requestURI) { +OCStackResult FindNetworkResource() +{ OCStackResult ret = OC_STACK_ERROR; - - OCCallbackData cbData; - - cbData.cb = &SubscribeProvPresenceCallback; - cbData.context = (void *) DEFAULT_CONTEXT_VALUE; - cbData.cd = NULL; - - ret = OCDoResource(NULL, OC_REST_PRESENCE, requestURI, 0, 0, OC_CONNTYPE, OC_LOW_QOS, &cbData, - NULL, 0); - - if (ret != OC_STACK_OK) { - OIC_LOG(ERROR, TAG, "OCStack resource error"); - } - - return ret; -} - -OCStackResult FindNetworkResource() { - OCStackResult ret = OC_STACK_ERROR; - if (OCStop() != OC_STACK_OK) { + if (OCStop() != OC_STACK_OK) + { OIC_LOG(ERROR, TAG, "OCStack stop error"); } @@ -488,18 +460,21 @@ OCStackResult FindNetworkResource() { } ProvisioningInfo *PrepareProvisioingStatusCB(OCClientResponse *clientResponse, - ProvStatus provStatus) { + ProvStatus provStatus) +{ ProvisioningInfo *provInfo = (ProvisioningInfo *) OICCalloc(1, sizeof(ProvisioningInfo)); - if (provInfo == NULL) { + if (provInfo == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } OCDevAddr *devAddr = (OCDevAddr *) OICCalloc(1, sizeof(OCDevAddr)); - if (devAddr == NULL) { + if (devAddr == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } @@ -515,14 +490,17 @@ ProvisioningInfo *PrepareProvisioingStatusCB(OCClientResponse *clientResponse, } bool ValidateEasySetupParams(const EnrolleeNWProvInfo_t *netInfo, - OCProvisioningStatusCB provisioningStatusCallback) { + OCProvisioningStatusCB provisioningStatusCallback) +{ - if (netInfo == NULL || strlen(netInfo->netAddressInfo.WIFI.ipAddress) == 0) { + if (netInfo == NULL || strlen(netInfo->netAddressInfo.WIFI.ipAddress) == 0) + { OIC_LOG(ERROR, TAG, "Request URI is NULL"); return false; } - if (provisioningStatusCallback == NULL) { + if (provisioningStatusCallback == NULL) + { OIC_LOG(ERROR, TAG, "ProvisioningStatusCallback is NULL"); return false; } @@ -531,10 +509,12 @@ bool ValidateEasySetupParams(const EnrolleeNWProvInfo_t *netInfo, } -bool InProgress() { +bool InProgress() +{ // It means already Easy Setup provisioning session is going on. - if (NULL != cbData) { + if (NULL != cbData) + { OIC_LOG(ERROR, TAG, "Easy setup session is already in progress"); return true; } @@ -542,35 +522,39 @@ bool InProgress() { return false; } -bool SetProgress(OCProvisioningStatusCB provisioningStatusCallback) { +bool SetProgress(OCProvisioningStatusCB provisioningStatusCallback) +{ if (InProgress()) return false; cbData = provisioningStatusCallback; - return true; } -bool ResetProgress() { +bool ResetProgress() +{ cbData = NULL; return true; } -ProvisioningInfo *CreateCallBackObject() { +ProvisioningInfo *CreateCallBackObject() +{ ProvisioningInfo *provInfo = (ProvisioningInfo *) OICCalloc(1, sizeof(ProvisioningInfo)); - if (provInfo == NULL) { + if (provInfo == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } OCDevAddr *devAddr = (OCDevAddr *) OICCalloc(1, sizeof(OCDevAddr)); - if (devAddr == NULL) { + if (devAddr == NULL) + { OIC_LOG_V(ERROR, TAG, "Failed to allocate memory"); return NULL; } @@ -581,7 +565,8 @@ ProvisioningInfo *CreateCallBackObject() { } -ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) { +ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) +{ ProvisioningInfo *provInfo = CreateCallBackObject(); strncpy(provInfo->provDeviceInfo.addr->addr, netProvInfo->netAddressInfo.WIFI.ipAddress, @@ -592,7 +577,8 @@ ProvisioningInfo *GetCallbackObjectOnError(ProvStatus status) { } ProvisioningInfo *GetCallbackObjectOnSuccess(OCClientResponse *clientResponse, - ProvStatus provStatus) { + ProvStatus provStatus) +{ ProvisioningInfo *provInfo = CreateCallBackObject(); strncpy(provInfo->provDeviceInfo.addr->addr, clientResponse->addr->addr, sizeof(provInfo->provDeviceInfo.addr->addr)); @@ -601,9 +587,11 @@ ProvisioningInfo *GetCallbackObjectOnSuccess(OCClientResponse *clientResponse, return provInfo; } -bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) { +bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) +{ - if (!(clientResponse) || !(clientResponse->payload)) { + if (!(clientResponse) || !(clientResponse->payload)) + { OIC_LOG_V(INFO, TAG, "ProvisionEnrolleeResponse received Null clientResponse"); @@ -613,9 +601,11 @@ bool ValidateFinddResourceResponse(OCClientResponse * clientResponse) { return true; } -bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { +bool ValidateEnrolleResponse(OCClientResponse * clientResponse) +{ - if (!(clientResponse) || !(clientResponse->payload)) { + if (!(clientResponse) || !(clientResponse->payload)) + { OIC_LOG_V(INFO, TAG, "ProvisionEnrolleeResponse received Null clientResponse"); @@ -623,7 +613,8 @@ bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { } - if (clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) { + if (clientResponse->payload->type != PAYLOAD_TYPE_REPRESENTATION) + { OIC_LOG_V(DEBUG, TAG, "Incoming payload not a representation"); return false; @@ -635,26 +626,29 @@ bool ValidateEnrolleResponse(OCClientResponse * clientResponse) { } - -void SuccessCallback(OCClientResponse * clientResponse) { +void SuccessCallback(OCClientResponse * clientResponse) +{ ProvisioningInfo *provInfo = GetCallbackObjectOnSuccess(clientResponse, DEVICE_PROVISIONED); cbData(provInfo); ResetProgress(); } -bool ClearMemory() { +bool ClearMemory() +{ OIC_LOG(DEBUG, TAG, "thread_pool_add_task of FindProvisioningResource failed"); return true; } -bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) { +bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) +{ //Copy Network Provisioning Information netProvInfo = (EnrolleeNWProvInfo_t *) OICCalloc(1, sizeof(EnrolleeNWProvInfo_t)); - if (netProvInfo == NULL) { + if (netProvInfo == NULL) + { OIC_LOG(ERROR, TAG, "Invalid input.."); return false; } @@ -662,18 +656,20 @@ bool ConfigEnrolleeObject(const EnrolleeNWProvInfo_t *netInfo) { memcpy(netProvInfo, netInfo, sizeof(EnrolleeNWProvInfo_t)); OIC_LOG_V(DEBUG, TAG, "Network Provisioning Info. SSID = %s", - netProvInfo->netAddressInfo.WIFI.ssid); + netProvInfo->netAddressInfo.WIFI.ssid); OIC_LOG_V(DEBUG, TAG, "Network Provisioning Info. PWD = %s", - netProvInfo->netAddressInfo.WIFI.pwd); + netProvInfo->netAddressInfo.WIFI.pwd); return true; } -void LogProvisioningResponse(OCRepPayloadValue * val) { +void LogProvisioningResponse(OCRepPayloadValue * val) +{ - switch (val->type) { + switch (val->type) + { case OCREP_PROP_NULL: OIC_LOG_V(DEBUG, TAG, "\t\t%s: NULL", val->name); break; @@ -695,31 +691,27 @@ void LogProvisioningResponse(OCRepPayloadValue * val) { OIC_LOG_V(DEBUG, TAG, "\t\t%s(OCRep):%s", val->name, val->obj->uri); break; case OCREP_PROP_ARRAY: - switch (val->arr.type) { + switch (val->arr.type) + { case OCREP_PROP_INT: OIC_LOG_V(DEBUG, TAG, "\t\t%s(int array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_DOUBLE: OIC_LOG_V(DEBUG, TAG, "\t\t%s(double array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_BOOL: OIC_LOG_V(DEBUG, TAG, "\t\t%s(bool array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_STRING: OIC_LOG_V(DEBUG, TAG, "\t\t%s(string array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; case OCREP_PROP_OBJECT: OIC_LOG_V(DEBUG, TAG, "\t\t%s(OCRep array):%lld x %lld x %lld", val->name, - val->arr.dimensions[0], val->arr.dimensions[1], - val->arr.dimensions[2]); + val->arr.dimensions[0], val->arr.dimensions[1], val->arr.dimensions[2]); break; default: //OIC_LOG_V(ERROR, TAG, "\t\t%s <-- Unknown/unsupported array type!", -- 2.7.4