if (!info)
{
OIC_LOG(ERROR, TAG, "endpoint info is null");
- return CA_STATUS_FAILED;
+ return CA_STATUS_INVALID_PARAM;
}
- int32_t netInfoSize = 1;
-
char *macAddress = NULL;
CAResult_t ret = CAEDRGetInterfaceInfo(&macAddress);
- OIC_LOG_V(ERROR, TAG, "address : %s", macAddress);
- if (NULL == macAddress)
- {
- OIC_LOG(ERROR, TAG, "mac address is null");
-
- return CA_STATUS_FAILED;
- }
if (CA_STATUS_OK != ret)
{
OIC_LOG_V(ERROR, TAG, "Failed to get interface info [%d]", ret);
-
OICFree(macAddress);
return ret;
}
+ if (!macAddress)
+ {
+ OIC_LOG(ERROR, TAG, "mac address is null");
+ return CA_STATUS_FAILED;
+ }
+ OIC_LOG_V(DEBUG, TAG, "address : %s", macAddress);
+
// Create local endpoint using util function
CAEndpoint_t *endpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_RFCOMM_BTEDR,
macAddress, 0);
}
// copy unicast server information
+ int32_t netInfoSize = 1;
CAEndpoint_t *netInfo = (CAEndpoint_t *)OICMalloc(sizeof(CAEndpoint_t) * netInfoSize);
if (NULL == netInfo)
{
OIC_LOG(DEBUG, TAG, "OUT");
}
-CAResult_t CAEDRManagerReadData(void)
+CAResult_t CAEDRManagerReadData()
{
OIC_LOG(DEBUG, TAG, "IN");
CAResult_t CAEDRClientSendUnicastData(const char *remoteAddress, const uint8_t *data,
uint32_t dataLength)
{
+ VERIFY_NON_NULL(remoteAddress, TAG, "remoteAddress is null");
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG(DEBUG, TAG, "IN");
CAResult_t result = CAEDRSendUnicastMessage(remoteAddress, data, dataLength);
CAResult_t CAEDRClientSendMulticastData(const uint8_t *data, uint32_t dataLength)
{
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG(DEBUG, TAG, "IN");
CAResult_t result = CAEDRSendMulticastMessage(data, dataLength);
}
// It will be updated when android EDR support is added
-void CAEDRClientUnsetCallbacks(void)
+void CAEDRClientUnsetCallbacks()
{
OIC_LOG(DEBUG, TAG, "IN");
}
// It will be updated when android EDR support is added
-void CAEDRClientDisconnectAll(void)
+void CAEDRClientDisconnectAll()
{
OIC_LOG(DEBUG, TAG, "IN");
CAResult_t CAEDRSendUnicastMessage(const char* address, const uint8_t* data, uint32_t dataLen)
{
- OIC_LOG_V(DEBUG, TAG, "CAEDRSendUnicastMessage(%s, %s)", address, data);
+ VERIFY_NON_NULL(address, TAG, "address is null");
+ VERIFY_NON_NULL(data, TAG, "data is null");
CAResult_t result = CAEDRSendUnicastMessageImpl(address, data, dataLen);
return result;
CAResult_t CAEDRSendMulticastMessage(const uint8_t* data, uint32_t dataLen)
{
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG_V(DEBUG, TAG, "CAEDRSendMulticastMessage(%s)", data);
bool isAttached = false;
CAResult_t CAEDRSendUnicastMessageImpl(const char* address, const uint8_t* data, uint32_t dataLen)
{
+ VERIFY_NON_NULL(address, TAG, "address is null");
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG_V(DEBUG, TAG, "CAEDRSendUnicastMessageImpl, address: %s, data: %s", address, data);
bool isAttached = false;
jstring j_str_address = (*env)->CallObjectMethod(env, j_obj_device, j_mid_getAddress);
const char * remoteAddress = (*env)->GetStringUTFChars(env, j_str_address, NULL);
- OIC_LOG_V(DEBUG, TAG,
- "[EDR][Native] getBondedDevices: ~~device address is %s", remoteAddress);
-
if (!remoteAddress)
{
OIC_LOG(ERROR, TAG, "[EDR][Native] remoteAddress is null");
(*env)->DeleteLocalRef(env, jni_cid_BTDevice);
return CA_STATUS_INVALID_PARAM;
}
- if (!address)
- {
- OIC_LOG(ERROR, TAG, "[EDR][Native] address is null");
- if (isAttached)
- {
- (*g_jvm)->DetachCurrentThread(g_jvm);
- }
- (*env)->ReleaseStringUTFChars(env, j_str_address, remoteAddress);
- (*env)->DeleteLocalRef(env, j_str_address);
- (*env)->DeleteLocalRef(env, j_obj_device);
- (*env)->DeleteLocalRef(env, jni_arrayPairedDevices);
- (*env)->DeleteLocalRef(env, jni_cid_BTDevice);
- return CA_STATUS_INVALID_PARAM;
- }
+ OIC_LOG_V(DEBUG, TAG,
+ "[EDR][Native] getBondedDevices: ~~device address is %s", remoteAddress);
+
// find address
if (!strcmp(remoteAddress, address))
{
CAResult_t CAEDRSendMulticastMessageImpl(JNIEnv *env, const uint8_t* data, uint32_t dataLen)
{
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG_V(DEBUG, TAG, "CASendMulticastMessageImpl, send to, data: %s, %d", data, dataLen);
// get bonded device list
CAResult_t CAEDRNativeSendData(JNIEnv *env, const char *address, const uint8_t *data,
uint32_t dataLength)
{
+ VERIFY_NON_NULL(address, TAG, "address is null");
+ VERIFY_NON_NULL(data, TAG, "data is null");
OIC_LOG_V(DEBUG, TAG, "[EDR][Native] btSendData logic start : %s, %d", data, dataLength);
if (!CAEDRNativeIsEnableBTAdapter(env))
// connect before send data
OIC_LOG(DEBUG, TAG, "[EDR][Native] connect before send data");
- if (NULL == address)
- {
- OIC_LOG(ERROR, TAG, "[EDR][Native] remote address is empty");
- return CA_STATUS_INVALID_PARAM;
- }
- else
+ CAResult_t res = CAEDRNativeConnect(env, address);
+ if (CA_STATUS_OK != res)
{
- CAResult_t res = CAEDRNativeConnect(env, address);
- if (CA_STATUS_OK != res)
- {
- return res;
- }
+ return res;
}
}
return CA_STATUS_FAILED;
}
- jbyteArray jbuf;
- jbuf = (*env)->NewByteArray(env, dataLength);
+ jbyteArray jbuf = (*env)->NewByteArray(env, dataLength);
(*env)->SetByteArrayRegion(env, jbuf, 0, dataLength, (jbyte*) data);
(*env)->CallVoidMethod(env, jni_obj_outputStream, jni_mid_write, jbuf, (jint) 0,
CAResult_t CAEDRNativeConnect(JNIEnv *env, const char *address)
{
+ VERIFY_NON_NULL(address, TAG, "address is null");
OIC_LOG(DEBUG, TAG, "[EDR][Native] btConnect..");
if (!CAEDRNativeIsEnableBTAdapter(env))
void CAEDRNativeSocketClose(JNIEnv *env, const char *address)
{
+ VERIFY_NON_NULL_VOID(address, TAG, "address is null");
jclass jni_cid_BTSocket = (*env)->FindClass(env, "android/bluetooth/BluetoothSocket");
if (!jni_cid_BTSocket)
CAAdapterAcceptThreadContext_t *ctx = (CAAdapterAcceptThreadContext_t *) data;
- if (NULL == ctx)
- {
- OIC_LOG(ERROR, TAG, "[EDR] AcceptThread: ctx is null");
- if (isAttached)
- {
- (*g_jvm)->DetachCurrentThread(g_jvm);
- }
- return;
- }
-
// it should be initialized for restart accept thread
ca_mutex_lock(g_mutexAcceptServer);
g_stopAccept = false;
"()Ljava/io/InputStream;");
OIC_LOG_V(DEBUG, TAG, "[EDR][Native] btReadData: get InputStream..%d, %s", id, address);
- if (!jni_obj_socket)
+ jobject jni_obj_inputStream = (*env)->CallObjectMethod(env, jni_obj_socket,
+ jni_mid_getInputStream);
+ if (!jni_obj_inputStream)
{
(*env)->DeleteLocalRef(env, jni_cid_BTsocket);
(*env)->DeleteLocalRef(env, jni_str_address);
- OIC_LOG(ERROR, TAG, "[EDR][Native] jni_obj_socket is not available anymore..");
+ OIC_LOG(ERROR, TAG, "[EDR] btReadData: jni_obj_inputStream is null");
return CA_STATUS_FAILED;
}
- jobject jni_obj_inputStream = (*env)->CallObjectMethod(env, jni_obj_socket,
- jni_mid_getInputStream);
OIC_LOG(DEBUG, TAG, "[EDR][Native] btReadData: ready inputStream..");
jclass jni_cid_InputStream = (*env)->FindClass(env, "java/io/InputStream");
jbyteArray jbuf = (*env)->NewByteArray(env, MAX_PDU_BUFFER);
- if (!jni_obj_socket)
- {
- (*env)->DeleteLocalRef(env, jni_cid_InputStream);
- (*env)->DeleteLocalRef(env, jni_obj_inputStream);
- (*env)->DeleteLocalRef(env, jni_cid_BTsocket);
- (*env)->DeleteLocalRef(env, jni_str_address);
-
- OIC_LOG(ERROR, TAG, "[EDR][Native] jni_obj_socket is not available anymore...");
- return CA_STATUS_FAILED;
- }
-
ca_mutex_lock(g_mutexInputStream);
if (!g_inputStream)
{
jmethodID jni_mid_getDefaultAdapter = (*env)->GetStaticMethodID(env, jni_cid_BTAdapter,
"getDefaultAdapter",
METHODID_OBJECTNONPARAM);
- if (!jni_cid_BTAdapter)
+ if (!jni_mid_getDefaultAdapter)
{
- OIC_LOG(ERROR, TAG, "[EDR][Native] btListen: jni_cid_BTAdapter is null");
+ OIC_LOG(ERROR, TAG, "[EDR][Native] btListen: jni_mid_getDefaultAdapter is null");
return NULL;
}
OIC_LOG(DEBUG, TAG, "[EDR][Native] close accept obj");
}
}
-