From: bg.chun Date: Mon, 23 Jan 2017 07:13:55 +0000 (+0900) Subject: [IOT-1774]Add BLE, NFC, RA flag for RI endpoint X-Git-Tag: 1.3.0~730 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a9811b53bedfcdad1c4f819f995fa661ea5b1faf;p=platform%2Fupstream%2Fiotivity.git [IOT-1774]Add BLE, NFC, RA flag for RI endpoint BLE, NFC, RA is not working due to endpoint. So add BLE, NFC, RA flag for RI endpoint to make work BLE, NFC, RA adapter Change-Id: Iaf7ba69e5b28465876ef3abb986479cacb91e1b7 Signed-off-by: bg.chun Reviewed-on: https://gerrit.iotivity.org/gerrit/16691 Tested-by: jenkins-iotivity Reviewed-by: jihwan seo Reviewed-by: Dan Mihai Reviewed-by: Alex Kelley Reviewed-by: Ashok Babu Channa --- diff --git a/resource/csdk/include/octypes.h b/resource/csdk/include/octypes.h index 8adb2ac..0769d4f 100755 --- a/resource/csdk/include/octypes.h +++ b/resource/csdk/include/octypes.h @@ -1346,6 +1346,18 @@ typedef enum /** coap + rfcomm */ OC_COAP_RFCOMM = (1 << 6), #endif +#ifdef LE_ADAPTER + /** coap + gatt */ + OC_COAP_GATT = (1 << 7), +#endif +#ifdef NFC_ADAPTER + /** coap + nfc */ + OC_COAP_NFC = (1 << 8), +#endif +#ifdef RA_ADAPTER + /** coap + remote_access */ + OC_COAP_RA = (1 << 9), +#endif /** Allow all endpoint.*/ OC_ALL = 0xffff } OCTpsSchemeFlags; diff --git a/resource/csdk/stack/src/ocendpoint.c b/resource/csdk/stack/src/ocendpoint.c index 3beec8c..93711ed 100644 --- a/resource/csdk/stack/src/ocendpoint.c +++ b/resource/csdk/stack/src/ocendpoint.c @@ -65,6 +65,24 @@ OCStackResult OCGetSupportedEndpointFlags(const OCTpsSchemeFlags givenFlags, OCT *out = (OCTpsSchemeFlags)(*out | OC_COAP_RFCOMM); } #endif +#ifdef LE_ADAPTER + if ((givenFlags & OC_COAP_GATT) && (SelectedNetwork & CA_ADAPTER_GATT_BTLE)) + { + *out = (OCTpsSchemeFlags)(*out | OC_COAP_GATT); + } +#endif +#ifdef NFC_ADAPTER + if ((givenFlags & OC_COAP_NFC) && (SelectedNetwork & CA_ADAPTER_NFC)) + { + *out = (OCTpsSchemeFlags)(*out | OC_COAP_NFC); + } +#endif +#ifdef RA_ADAPTER + if ((givenFlags & OC_COAP_RA) && (SelectedNetwork & CA_ADAPTER_REMOTE_ACCESS)) + { + *out = (OCTpsSchemeFlags)(*out | OC_COAP_RA); + } +#endif return OC_STACK_OK; } @@ -121,13 +139,36 @@ OCStackResult OCGetMatchedTpsFlags(const CATransportAdapter_t adapter, #endif #ifdef EDR_ADAPTER // OC_COAP_RFCOMM - if ((adapter & OC_ADAPTER_RFCOMM_BTEDR) && (flags == OC_DEFAULT_FLAGS)) + if (adapter & OC_ADAPTER_RFCOMM_BTEDR) { // typecasting to support C90(arduino) *out = (OCTpsSchemeFlags)(*out | OC_COAP_RFCOMM); } #endif - +#ifdef LE_ADAPTER + // OC_COAP_GATT + if (adapter & CA_ADAPTER_GATT_BTLE) + { + // typecasting to support C90(arduino) + *out = (OCTpsSchemeFlags)(*out | OC_COAP_GATT); + } +#endif +#ifdef NFC_ADAPTER + // OC_COAP_NFC + if (adapter & CA_ADAPTER_NFC) + { + // typecasting to support C90(arduino) + *out = (OCTpsSchemeFlags)(*out | OC_COAP_NFC); + } +#endif +#ifdef RA_ADAPTER + // OC_COAP_RA + if (adapter & CA_ADAPTER_REMOTE_ACCESS) + { + // typecasting to support C90(arduino) + *out = (OCTpsSchemeFlags)(*out | OC_COAP_RA); + } +#endif return OC_STACK_OK; } @@ -419,6 +460,23 @@ OCTpsSchemeFlags OCGetSupportedTpsFlags() ret = (OCTpsSchemeFlags)(ret | OC_COAP_RFCOMM); } #endif - +#ifdef LE_ADAPTER + if (SelectedNetwork & CA_ADAPTER_GATT_BTLE) + { + ret = (OCTpsSchemeFlags)(ret | OC_COAP_GATT); + } +#endif +#ifdef NFC_ADAPTER + if (SelectedNetwork & CA_ADAPTER_NFC) + { + ret = (OCTpsSchemeFlags)(ret | OC_COAP_NFC); + } +#endif +#ifdef RA_ADAPTER + if (SelectedNetwork & CA_ADAPTER_REMOTE_ACCESS) + { + ret = (OCTpsSchemeFlags)(ret | OC_COAP_RA); + } +#endif return ret; } \ No newline at end of file diff --git a/resource/csdk/stack/src/ocresource.c b/resource/csdk/stack/src/ocresource.c index e60e016..4ab4c92 100755 --- a/resource/csdk/stack/src/ocresource.c +++ b/resource/csdk/stack/src/ocresource.c @@ -498,15 +498,15 @@ static size_t GetIntrospectionDataSize(const OCPersistentStorage *ps) } fp = ps->open(OC_INTROSPECTION_FILE_NAME, "rb"); - if (fp) - { - size_t bytesRead = 0; - do - { - bytesRead = ps->read(buffer, 1, INTROSPECTION_FILE_SIZE_BLOCK, fp); - size += bytesRead; - } while (bytesRead); - ps->close(fp); + if (fp) + { + size_t bytesRead = 0; + do + { + bytesRead = ps->read(buffer, 1, INTROSPECTION_FILE_SIZE_BLOCK, fp); + size += bytesRead; + } while (bytesRead); + ps->close(fp); } return size; } @@ -886,7 +886,7 @@ OCStackResult BuildVirtualResourceResponse(const OCResource *resourcePtr, CAEndpoint_t *networkInfo, uint32_t infoSize) { - if (!resourcePtr || !payload || !networkInfo) + if (!resourcePtr || !payload) { return OC_STACK_INVALID_PARAM; } @@ -1394,7 +1394,7 @@ static OCStackResult HandleVirtualResource (OCServerRequest *request, OCResource uint32_t infoSize = 0; CAResult_t caResult = CAGetNetworkInformation(&networkInfo, &infoSize); - if (CA_STATUS_OK != caResult || !networkInfo || infoSize == 0) + if (CA_STATUS_FAILED == caResult) { OIC_LOG(ERROR, TAG, "CAGetNetworkInformation has error on parsing network infomation"); return OC_STACK_ERROR; diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 560c9eb..1cdd4da 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -3465,6 +3465,15 @@ OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle, #ifdef EDR_ADAPTER validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_RFCOMM); #endif +#ifdef LE_ADAPTER + validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_GATT); +#endif +#ifdef NFC_ADAPTER + validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_NFC); +#endif +#ifdef RA_ADAPTER + validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_RA); +#endif if ((resourceTpsTypes < OC_COAP) || ((resourceTpsTypes != OC_ALL) && (resourceTpsTypes > validTps)))