This patch fixes compiler warnings related to CA Layer.
Change-Id: I2c92a201492cf2e9b8eff2d58ce187bf397a8239
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4693
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
if with_tcp == True:
if target_os in ['linux', 'tizen', 'android']:
- env.AppendUnique(CPPDEFINES = ['TCP_ADAPTER'])
+ env.AppendUnique(CPPDEFINES = ['TCP_ADAPTER', 'WITH_TCP'])
print "CA Transport is TCP"
else:
print "CA Transport TCP is not supported "
* @pre Callback must be registered using CAIPSetPacketReceiveCallback().
*/
typedef void (*CATCPPacketReceivedCallback)(const CASecureEndpoint_t *endpoint,
- const void *data,
- uint32_t dataLength);
+ const void *data,
+ uint32_t dataLength);
/**
* Callback to notify error in the TCP adapter.
* @pre Callback must be registered using CAIPSetPacketReceiveCallback().
*/
typedef void (*CATCPErrorHandleCallback)(const CAEndpoint_t *endpoint, const void *data,
- uint32_t dataLength, CAResult_t result);
+ uint32_t dataLength, CAResult_t result);
/**
* set error callback to notify error in TCP adapter.
if (NULL == g_networkChangeCb)
{
- OIC_LOG_V(DEBUG, TAG, "gNetworkChangeCb is null", status);
+ OIC_LOG(DEBUG, TAG, "gNetworkChangeCb is null");
return;
}
jobject gdevice = (*env)->NewGlobalRef(env, device);
u_arraylist_add(g_deviceList, gdevice);
ca_cond_signal(g_deviceDescCond);
- OIC_LOG_V(DEBUG, TAG, "Added this Device[%d] in the List", remoteAddress);
+ OIC_LOG_V(DEBUG, TAG, "Added this Device[%s] in the List", remoteAddress);
}
(*env)->ReleaseStringUTFChars(env, jni_remoteAddress, remoteAddress);
if (!gCALEDeviceStateChangedCallback)
{
- OIC_LOG_V(ERROR, TAG, "gNetworkChangeCb is null", status);
+ OIC_LOG(ERROR, TAG, "gNetworkChangeCb is null");
return;
}
#define BLOCK_SIZE(arg) (1 << ((arg) + 4))
// context for block-wise transfer
-static CABlockWiseContext_t g_context = { 0 };
+static CABlockWiseContext_t g_context = { .sendThreadFunc = NULL,
+ .receivedThreadFunc = NULL,
+ .dataList = NULL };
static bool CACheckPayloadLength(const CAData_t *sendData)
{
return res;
}
- res = CAUpdateBlockOptionItems(data, pdu, &block, COAP_OPTION_BLOCK1, blockWiseStatus);
+ res = CAUpdateBlockOptionItems(data, pdu, &block, COAP_OPTION_BLOCK1,
+ blockWiseStatus);
if (CA_STATUS_OK != res)
{
OIC_LOG(ERROR, TAG, "update has failed");
}
// set Block Option Type
- CAResult_t res = CAUpdateBlockOptionType(blockDataID,
- COAP_OPTION_BLOCK2);
+ CAResult_t res = CAUpdateBlockOptionType(blockDataID, COAP_OPTION_BLOCK2);
if (CA_STATUS_OK != res)
{
OIC_LOG(ERROR, TAG, "update has failed");
CALogBlockInfo(block2);
- uint8_t code = 0;
if (CA_MSG_ACKNOWLEDGE == (*pdu)->hdr->coap_hdr_udp_t.type ||
(CA_MSG_NONCONFIRM == (*pdu)->hdr->coap_hdr_udp_t.type &&
CA_GET != (*pdu)->hdr->coap_hdr_udp_t.code))
}
return CA_STATUS_OK;
-
-error:
- OIC_LOG_V(ERROR, TAG, "error : %d", code);
-
- char* phrase = coap_response_phrase(code);
- if(phrase)
- {
- coap_add_data(*pdu, strlen(phrase),
- (unsigned char *) phrase);
- }
- return CA_STATUS_FAILED;
}
CAResult_t CAAddBlockOption1(coap_pdu_t **pdu, const CAInfo_t *info, size_t dataLength,
#include <stdint.h>
#include <stdbool.h>
+#include "ocrandom.h"
#include "cainterface.h"
#include "caremotehandler.h"
#include "camessagehandler.h"
#include "catcpadapter.h"
#endif
-#include "ocrandom.h"
-
-
-CAGlobals_t caglobals = { 0 };
+CAGlobals_t caglobals = { .clientFlags = 0,
+ .serverFlags = 0, };
#define TAG "CA_CONN_MGR"
static void CAReceivedPacketCallback(const CASecureEndpoint_t *sep,
const void *data, uint32_t dataLen)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
if (g_networkPacketReceivedCallback != NULL)
{
g_networkPacketReceivedCallback(sep, data, dataLen);
{
OIC_LOG(ERROR, TAG, "network packet received callback is NULL!");
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
static void CANetworkChangedCallback(const CAEndpoint_t *info, CANetworkStatus_t status)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
// Call the callback.
if (g_networkChangeCallback != NULL)
{
g_networkChangeCallback(info, status);
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
static void CAAdapterErrorHandleCallback(const CAEndpoint_t *endpoint,
void CASetPacketReceivedCallback(CANetworkPacketReceivedCallback callback)
{
OIC_LOG(DEBUG, TAG, "Set Receiver handle callback");
+
g_networkPacketReceivedCallback = callback;
}
void CASetNetworkChangeCallback(CANetworkChangeCallback callback)
{
OIC_LOG(DEBUG, TAG, "Set network handle callback");
+
g_networkChangeCallback = callback;
}
CAResult_t CASendUnicastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
if (endpoint == NULL)
{
OIC_LOG(DEBUG, TAG, "Invalid endpoint");
#endif
}
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
CAResult_t CASendMulticastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
u_arraylist_t *list = CAGetSelectedNetworkList();
if (!list)
{
}
}
- OIC_LOG(DEBUG, TAG, "OUT");
-
return CA_STATUS_OK;
}
CAResult_t CAStartListeningServerAdapters()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
CAResult_t result = CA_STATUS_FAILED;
u_arraylist_t *list = CAGetSelectedNetworkList();
}
}
- OIC_LOG(DEBUG, TAG, "OUT");
return result;
}
CAResult_t CAStopListeningServerAdapters()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
u_arraylist_t *list = CAGetSelectedNetworkList();
if (!list)
{
}
}
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
CAResult_t CAStartDiscoveryServerAdapters()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
CAResult_t result = CA_STATUS_FAILED;
u_arraylist_t *list = CAGetSelectedNetworkList();
}
}
- OIC_LOG(DEBUG, TAG, "OUT");
return result;
}
void CATerminateAdapters()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
for (size_t index = 0; index < CA_TRANSPORT_TYPE_NUM; index++)
{
if (g_adapterHandler[index].terminate != NULL)
g_adapterHandler[index].terminate();
}
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
#ifdef SINGLE_THREAD
CAResult_t CAReadData()
{
- OIC_LOG(DEBUG, TAG, "IN");
u_arraylist_t *list = CAGetSelectedNetworkList();
if (!list)
}
}
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
#endif
ca_mutex_unlock(g_receiveThread.threadMutex);
- if (NULL == item)
- {
- return;
- }
-
- // get values
- void *msg = item->msg;
-
- if (NULL == msg)
+ if (NULL == item || NULL == item->msg)
{
return;
}
// get endpoint
- CAData_t *td = (CAData_t *) msg;
+ CAData_t *td = (CAData_t *) item->msg;
if (td->requestInfo && g_requestHandler)
{
g_errorHandler(td->remoteEndpoint, td->errorInfo);
}
- CADestroyData(msg, sizeof(CAData_t));
+ CADestroyData(item->msg, sizeof(CAData_t));
OICFree(item);
#endif // SINGLE_HANDLE
void CALogPDUInfo(coap_pdu_t *pdu, const CAEndpoint_t *endpoint)
{
VERIFY_NON_NULL_VOID(pdu, TAG, "pdu");
+ VERIFY_NON_NULL_VOID(endpoint, TAG, "endpoint");
OIC_LOG_V(DEBUG, TAG, "PDU Maker - payload : %s", pdu->data);
if (CA_ADAPTER_TCP == endpoint->adapter)
{
OIC_LOG(DEBUG, TAG, "pdu header data :");
- OIC_LOG_BUFFER(DEBUG, TAG, pdu->hdr, pdu->length);
+ OIC_LOG_BUFFER(DEBUG, TAG, (const uint8_t *) pdu->hdr, pdu->length);
}
else
#else
CAResult_t CAAddNetworkType(CATransportAdapter_t transportType)
{
- OIC_LOG(DEBUG, TAG, "IN");
if (NULL == g_selectedNetworkList)
{
OIC_LOG(DEBUG, TAG, "Create network list");
}
// start selected interface adapter
CAResult_t result = CAStartAdapter(transportType);
- OIC_LOG(DEBUG, TAG, "OUT");
return result;
exit:
CAResult_t CARemoveNetworkType(CATransportAdapter_t transportType)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
if (NULL == g_selectedNetworkList)
{
OIC_LOG(ERROR, TAG, "SelectedNetwork list is NULL");
{
coap_list_t* node = NULL;
uint8_t buf[3] = {0};
- switch (info->payloadFormat) {
+ switch (info->payloadFormat)
+ {
case CA_FORMAT_APPLICATION_CBOR:
node = CACreateNewOptionNode(
COAP_OPTION_CONTENT_FORMAT,
{
coap_list_t* node = NULL;
uint8_t buf[3] = {0};
- switch (info->acceptFormat) {
+ switch (info->acceptFormat)
+ {
case CA_FORMAT_APPLICATION_CBOR:
node = CACreateNewOptionNode(
COAP_OPTION_ACCEPT,
}
coap_option_def_t* def = coap_opt_def(key);
- if(NULL != def && coap_is_var_bytes(def) && 0 == len) {
+ if (NULL != def && coap_is_var_bytes(def) && 0 == len)
+ {
// A 0 length option is permitted in CoAP but the
// rest or the stack is unaware of variable byte encoding
// should remain that way so a 0 byte of length 1 is inserted.
OIC_LOG(DEBUG, TAG, "wake up..");
}
-
-
// check stop flag
if (thread->isStop)
{
if (currentTime >= retData->timeStamp + timeout)
{
- OIC_LOG_V(DEBUG, TAG, "%zu microseconds time out!!, tried count(%d)",
+ OIC_LOG_V(DEBUG, TAG, "%llu microseconds time out!!, tried count(%d)",
timeout, retData->triedCount);
return true;
}
else if (!context->isStop)
{
// check each RETRANSMISSION_CHECK_PERIOD_SEC time.
- OIC_LOG_V(DEBUG, TAG, "wait..(%ld)microseconds",
+ OIC_LOG_V(DEBUG, TAG, "wait..(%lld)microseconds",
RETRANSMISSION_CHECK_PERIOD_SEC * (uint64_t) USECS_PER_SEC);
// wait
clock_gettime(CLOCK_MONOTONIC, &getTs);
currentTime = (getTs.tv_sec * (uint64_t)1000000000 + getTs.tv_nsec)/1000;
- OIC_LOG_V(DEBUG, TAG, "current time = %ld", currentTime);
+ OIC_LOG_V(DEBUG, TAG, "current time = %lld", currentTime);
#elif defined __ARDUINO__
currentTime = millis() * 1000;
OIC_LOG_V(DEBUG, TAG, "currtime=%lu", currentTime);
CAResult_t CAIPInitializeQueueHandles()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
// Check if the message queue is already initialized
if (g_sendQueueHandle)
{
return CA_STATUS_FAILED;
}
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
void CAIPDeinitializeQueueHandles()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
CAQueueingThreadDestroy(g_sendQueueHandle);
OICFree(g_sendQueueHandle);
g_sendQueueHandle = NULL;
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
#endif // SINGLE_THREAD
{
(void)ipAddress;
(void)status;
- OIC_LOG(DEBUG, TAG, "IN");
}
#ifdef __WITH_DTLS__
static void CAIPPacketSendCB(CAEndpoint_t *endpoint, const void *data, uint32_t dataLength)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
VERIFY_NON_NULL_VOID(endpoint, TAG, "endpoint is NULL");
VERIFY_NON_NULL_VOID(data, TAG, "data is NULL");
CAIPSendData(endpoint, data, dataLength, false);
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
#endif
void CAIPPacketReceivedCB(const CASecureEndpoint_t *sep, const void *data,
uint32_t dataLength)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
VERIFY_NON_NULL_VOID(sep, TAG, "sep is NULL");
VERIFY_NON_NULL_VOID(data, TAG, "data is NULL");
{
g_networkPacketCallback(sep, data, dataLength);
}
- OIC_LOG(DEBUG, TAG, "OUT");
}
void CAIPErrorHandler (const CAEndpoint_t *endpoint, const void *data,
uint32_t dataLength, CAResult_t result)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
VERIFY_NON_NULL_VOID(endpoint, TAG, "endpoint is NULL");
-
VERIFY_NON_NULL_VOID(data, TAG, "data is NULL");
void *buf = (void*)OICMalloc(sizeof(char) * dataLength);
{
OICFree(buf);
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
static void CAInitializeIPGlobals()
CAResult_t CAStartIP()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
CAIPStartNetworkMonitor();
#ifdef SINGLE_THREAD
uint16_t unicastPort = 55555;
#endif
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
CAResult_t CAStartIPListeningServer()
{
- OIC_LOG(DEBUG, TAG, "IN");
CAResult_t ret = CAIPStartListenServer();
if (CA_STATUS_OK != ret)
{
OIC_LOG_V(ERROR, TAG, "Failed to start listening server![%d]", ret);
return ret;
}
- OIC_LOG(DEBUG, TAG, "OUT");
+
return CA_STATUS_OK;
}
CAResult_t CAStopIPListeningServer()
{
- OIC_LOG(DEBUG, TAG, "IN");
CAResult_t ret = CAIPStopListenServer();
if (CA_STATUS_OK != ret)
{
OIC_LOG_V(ERROR, TAG, "Failed to stop listening server![%d]", ret);
}
- OIC_LOG(DEBUG, TAG, "OUT");
+
return ret;
}
static int32_t CAQueueIPData(bool isMulticast, const CAEndpoint_t *endpoint,
const void *data, uint32_t dataLength)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
VERIFY_NON_NULL_RET(endpoint, TAG, "remoteEndpoint", -1);
VERIFY_NON_NULL_RET(data, TAG, "data", -1);
#endif // SINGLE_THREAD
- OIC_LOG(DEBUG, TAG, "OUT");
return dataLength;
}
int32_t CASendIPUnicastData(const CAEndpoint_t *endpoint,
const void *data, uint32_t dataLength)
{
- OIC_LOG(DEBUG, TAG, "IN");
return CAQueueIPData(false, endpoint, data, dataLength);
}
int32_t CASendIPMulticastData(const CAEndpoint_t *endpoint, const void *data, uint32_t dataLength)
{
- OIC_LOG(DEBUG, TAG, "IN");
return CAQueueIPData(true, endpoint, data, dataLength);
}
CAResult_t CAReadIPData()
{
- OIC_LOG(DEBUG, TAG, "IN");
CAIPPullData();
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
CAResult_t CAStopIP()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
#ifdef __WITH_DTLS__
CAAdapterNetDtlsDeInit();
#endif
//Re-initializing the Globals to start them again
CAInitializeIPGlobals();
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
void CATerminateIP()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
#ifdef __WITH_DTLS__
CADTLSSetAdapterCallbacks(NULL, NULL, 0);
#endif
#ifndef SINGLE_THREAD
CAIPDeinitializeQueueHandles();
#endif
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
#ifndef SINGLE_THREAD
void CAIPSendDataThread(void *threadData)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
CAIPData_t *ipData = (CAIPData_t *) threadData;
if (!ipData)
{
CAIPSendData(ipData->remoteEndpoint, ipData->data, ipData->dataLen, false);
#endif
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
#endif
#ifndef SINGLE_THREAD
-
CAIPData_t *CACreateIPData(const CAEndpoint_t *remoteEndpoint, const void *data,
uint32_t dataLength, bool isMulticast)
{
+ VERIFY_NON_NULL_RET(remoteEndpoint, TAG, "remoteEndpoint is NULL", NULL);
VERIFY_NON_NULL_RET(data, TAG, "IPData is NULL", NULL);
CAIPData_t *ipData = (CAIPData_t *) OICMalloc(sizeof(*ipData));
static void CAReceiveHandler(void *data)
{
(void)data;
- OIC_LOG(DEBUG, TAG, "IN");
+
while (!caglobals.ip.terminate)
{
CAFindReadyMessage();
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
static void CAFindReadyMessage()
else if (FD_ISSET(caglobals.ip.shutdownFds[0], readFds))
{
char buf[10] = {0};
- (void)read(caglobals.ip.shutdownFds[0], buf, sizeof (buf));
+ ssize_t len = read(caglobals.ip.shutdownFds[0], buf, sizeof (buf));
+ if (-1 == len)
+ {
+ continue;
+ }
+
CAInterface_t *ifchanged = CAFindInterfaceChange();
if (ifchanged)
{
char recvBuffer[COAP_MAX_PDU_SIZE];
size_t len;
- int level, type;
+ int level, type, namelen;
struct sockaddr_storage srcAddr;
unsigned char *pktinfo = NULL;
- struct msghdr msg = { 0 };
- struct cmsghdr *cmp;
+ struct cmsghdr *cmp = NULL;
struct iovec iov = { recvBuffer, sizeof (recvBuffer) };
union control
{
if (flags & CA_IPV6)
{
- msg.msg_namelen = sizeof (struct sockaddr_in6);
+ namelen = sizeof (struct sockaddr_in6);
level = IPPROTO_IPV6;
type = IPV6_PKTINFO;
len = sizeof (struct in6_pktinfo);
}
else
{
- msg.msg_namelen = sizeof (struct sockaddr_in);
+ namelen = sizeof (struct sockaddr_in);
level = IPPROTO_IP;
type = IP_PKTINFO;
len = sizeof (struct in6_pktinfo);
}
- msg.msg_name = &srcAddr;
- msg.msg_iov = &iov;
- msg.msg_iovlen = 1;
- msg.msg_control = &cmsg;
- msg.msg_controllen = CMSG_SPACE(len);
+ struct msghdr msg = { .msg_name = &srcAddr,
+ .msg_namelen = namelen,
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = &cmsg,
+ .msg_controllen = CMSG_SPACE(len) };
ssize_t recvLen = recvmsg(fd, &msg, flags);
if (-1 == recvLen)
void CAIPStopServer()
{
- OIC_LOG(DEBUG, TAG, "IN");
-
caglobals.ip.started = false;
caglobals.ip.terminate = true;
{
// receive thread will stop in SELECT_TIMEOUT seconds.
}
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
void CAWakeUpForChange()
void CAIPSetPacketReceiveCallback(CAIPPacketReceivedCallback callback)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
g_packetReceivedCallback = callback;
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
void CAIPSetExceptionCallback(CAIPExceptionCallback callback)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
g_exceptionCallback = callback;
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
static void sendData(int fd, const CAEndpoint_t *endpoint,
}
else
{
- OIC_LOG_V(INFO, TAG, "%s%s %s sendTo is successful: %ld bytes", secure, cast, fam, len);
+ OIC_LOG_V(INFO, TAG, "%s%s %s sendTo is successful: %zd bytes", secure, cast, fam, len);
}
}
CAResult_t CAGetIPInterfaceInformation(CAEndpoint_t **info, uint32_t *size)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
VERIFY_NON_NULL(info, TAG, "info is NULL");
VERIFY_NON_NULL(size, TAG, "size is NULL");
u_arraylist_destroy(iflist);
- OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
return;
}
-static int CATCPCreateSocket(int family, CATCPSessionInfo_t *tcpServerInfo)
+static int CATCPCreateSocket(int family, CATCPSessionInfo_t *svritem)
{
// create tcp socket
int fd = socket(family, SOCK_STREAM, IPPROTO_TCP);
}
struct sockaddr_storage sa = { .ss_family = family };
- CAConvertNameToAddr(tcpServerInfo->sep.endpoint.addr, tcpServerInfo->sep.endpoint.port, &sa);
+ CAConvertNameToAddr(svritem->sep.endpoint.addr, svritem->sep.endpoint.port, &sa);
socklen_t socklen = sizeof (struct sockaddr_in);
// connect to TCP server
int reuse = 1;
struct sockaddr_in server = { .sin_addr.s_addr = INADDR_ANY,
.sin_family = AF_INET,
- .sin_port = htons(SERVER_PORT) };
+ .sin_port = htons(SERVER_PORT),
+ .sin_zero = { 0 } };
g_acceptServerFD = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (g_acceptServerFD < 0)
continue;
}
- if (!strncmp(svritem->sep.endpoint.addr, endpoint->addr, sizeof(svritem->sep.endpoint.addr))
+ if (!strncmp(svritem->sep.endpoint.addr, endpoint->addr,
+ sizeof(svritem->sep.endpoint.addr))
&& (svritem->sep.endpoint.port == endpoint->port))
{
*index = i;