//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#include "iotivity_config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
+#ifdef HAVE_WINDOWS_H
+#include <windows.h>
+#endif
#include <ocstack.h>
#include <iostream>
#include <sstream>
+#include <getopt.h>
#include "ocpayload.h"
#include "payload_logging.h"
#include "logger.h"
-const char *getResult(OCStackResult result);
+#include "common.h"
+#include "oic_string.h"
+
std::string getQueryStrForGetPut();
-#define TAG PCF("occlient")
+#define TAG ("occlient")
#define DEFAULT_CONTEXT_VALUE 0x99
#ifndef MAX_LENGTH_IPv4_ADDR
#define MAX_LENGTH_IPv4_ADDR 16
TEST_UNKNOWN_RESOURCE_GET_DEFAULT,
TEST_UNKNOWN_RESOURCE_GET_BATCH,
TEST_UNKNOWN_RESOURCE_GET_LINK_LIST,
+ TEST_GET_EMPTY,
+ TEST_GET_NULL,
MAX_TESTS
} CLIENT_TEST;
{"?if=oic.if.baseline", TEST_PUT_DEFAULT},
{"?if=oic.if.b", TEST_PUT_BATCH},
{"?if=oic.if.ll", TEST_PUT_LINK_LIST},
+ {"", TEST_GET_EMPTY},
+ {NULL, TEST_GET_NULL}
};
void PrintUsage()
{
- OC_LOG(INFO, TAG, "Usage : occlientcoll -t <Test Case> -c <CA connectivity Type>");
- OC_LOG(INFO, TAG, "-c 0 : Default auto-selection");
- OC_LOG(INFO, TAG, "-c 1 : IP Connectivity Type");
- OC_LOG(INFO, TAG, "Test Case 1 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Usage : occlientcoll -t <Test Case> -c <CA connectivity Type>");
+ OIC_LOG(INFO, TAG, "-c 0 : Default auto-selection");
+ OIC_LOG(INFO, TAG, "-c 1 : IP Connectivity Type");
+ OIC_LOG(INFO, TAG, "Test Case 1 : Discover Resources && Initiate GET Request on an "\
"available resource using default interface.");
- OC_LOG(INFO, TAG, "Test Case 2 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 2 : Discover Resources && Initiate GET Request on an "\
"available resource using batch interface.");
- OC_LOG(INFO, TAG, "Test Case 3 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 3 : Discover Resources && Initiate GET Request on an "\
"available resource using link list interface.");
- OC_LOG(INFO, TAG, "Test Case 4 : Discover Resources && Initiate GET & PUT Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 4 : Discover Resources && Initiate GET & PUT Request on an "\
"available resource using default interface.");
- OC_LOG(INFO, TAG, "Test Case 5 : Discover Resources && Initiate GET & PUT Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 5 : Discover Resources && Initiate GET & PUT Request on an "\
"available resource using batch interface.");
- OC_LOG(INFO, TAG, "Test Case 6 : Discover Resources && Initiate GET & PUT Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 6 : Discover Resources && Initiate GET & PUT Request on an "\
"available resource using link list interface.");
- OC_LOG(INFO, TAG, "Test Case 7 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 7 : Discover Resources && Initiate GET Request on an "\
"unavailable resource using default interface.");
- OC_LOG(INFO, TAG, "Test Case 8 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 8 : Discover Resources && Initiate GET Request on an "\
"unavailable resource using batch interface.");
- OC_LOG(INFO, TAG, "Test Case 9 : Discover Resources && Initiate GET Request on an "\
+ OIC_LOG(INFO, TAG, "Test Case 9 : Discover Resources && Initiate GET Request on an "\
"unavailable resource using link list interface.");
+ OIC_LOG(INFO, TAG, "Test Case 10 : Discover Resources && Initiate GET Request on an "\
+ "empty resource.");
+ OIC_LOG(INFO, TAG, "Test Case 11 : Discover Resources && Initiate GET Request on an "\
+ "NULL resource.");
+
}
OCStackApplicationResult putReqCB(void* ctx, OCDoHandle /*handle*/,
{
if(clientResponse == NULL)
{
- OC_LOG(INFO, TAG, "The clientResponse is NULL");
+ OIC_LOG(INFO, TAG, "The clientResponse is NULL");
return OC_STACK_DELETE_TRANSACTION;
}
if(ctx == (void*)DEFAULT_CONTEXT_VALUE)
{
- OC_LOG_V(INFO, TAG, "Callback Context for PUT query recvd successfully");
- OC_LOG_PAYLOAD(INFO, TAG, clientResponse->payload);
+ OIC_LOG_V(INFO, TAG, "Callback Context for PUT query recvd successfully");
+ OIC_LOG_PAYLOAD(INFO, clientResponse->payload);
}
return OC_STACK_KEEP_TRANSACTION;
OCStackApplicationResult getReqCB(void* ctx, OCDoHandle /*handle*/,
OCClientResponse * clientResponse)
{
- OC_LOG_V(INFO, TAG, "StackResult: %s",
+ OIC_LOG_V(INFO, TAG, "StackResult: %s",
getResult(clientResponse->result));
if(ctx == (void*)DEFAULT_CONTEXT_VALUE)
{
- OC_LOG_V(INFO, TAG, "SEQUENCE NUMBER: %d", clientResponse->sequenceNumber);
+ OIC_LOG_V(INFO, TAG, "SEQUENCE NUMBER: %d", clientResponse->sequenceNumber);
if(clientResponse->sequenceNumber == 0)
{
- OC_LOG_V(INFO, TAG, "Callback Context for GET query recvd successfully");
- OC_LOG_PAYLOAD(INFO, TAG, clientResponse->payload);
+ OIC_LOG_V(INFO, TAG, "Callback Context for GET query recvd successfully");
+ OIC_LOG_PAYLOAD(INFO, clientResponse->payload);
}
else
{
- OC_LOG_V(INFO, TAG, "Callback Context for Get recvd successfully %d",
+ OIC_LOG_V(INFO, TAG, "Callback Context for Get recvd successfully %d",
gNumObserveNotifies);
- OC_LOG_PAYLOAD(INFO, TAG, clientResponse->payload);;
+ OIC_LOG_PAYLOAD(INFO, clientResponse->payload);;
gNumObserveNotifies++;
if (gNumObserveNotifies == 3)
{
if (OCCancel (gObserveDoHandle, OC_LOW_QOS, NULL, 0) != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "Observe cancel error");
+ OIC_LOG(ERROR, TAG, "Observe cancel error");
}
}
}
OCStackApplicationResult discoveryReqCB(void* ctx, OCDoHandle /*handle*/,
OCClientResponse * clientResponse)
{
- OC_LOG(INFO, TAG,
+ OIC_LOG(INFO, TAG,
"Entering discoveryReqCB (Application Layer CB)");
- OC_LOG_V(INFO, TAG, "StackResult: %s",
+ OIC_LOG_V(INFO, TAG, "StackResult: %s",
getResult(clientResponse->result));
if (ctx == (void*) DEFAULT_CONTEXT_VALUE)
{
- OC_LOG_V(INFO, TAG, "Callback Context recvd successfully");
+ OIC_LOG_V(INFO, TAG, "Callback Context recvd successfully");
}
- OC_LOG_V(INFO, TAG,
+ OIC_LOG_V(INFO, TAG,
"Device =============> Discovered @ %s:%d",
clientResponse->devAddr.addr,
clientResponse->devAddr.port);
- OC_LOG_PAYLOAD(INFO, TAG, clientResponse->payload);
+ OIC_LOG_PAYLOAD(INFO, clientResponse->payload);
ConnType = clientResponse->connType;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
- ret = OCDoResource(NULL, OC_REST_GET, getQuery.str().c_str(),
- &clientResponse->devAddr, 0, ConnType, OC_LOW_QOS,
- &cbData, NULL, 0);
+ ret = OCDoRequest(NULL, OC_REST_GET, getQuery.str().c_str(),
+ &clientResponse->devAddr, 0, ConnType, OC_LOW_QOS,
+ &cbData, NULL, 0);
if (ret != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack resource error");
+ OIC_LOG(ERROR, TAG, "OCStack resource error");
}
return ret;
}
cbData.cb = getReqCB;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
- OC_LOG_V(INFO, TAG, "OBSERVE payload from client =");
+ OIC_LOG_V(INFO, TAG, "OBSERVE payload from client =");
OCPayload* payload = putPayload();
- OC_LOG_PAYLOAD(INFO, TAG, payload);
+ OIC_LOG_PAYLOAD(INFO, payload);
OCPayloadDestroy(payload);
- ret = OCDoResource(&handle, OC_REST_OBSERVE, obsReg.str().c_str(),
- &clientResponse->devAddr, 0, ConnType,
- OC_LOW_QOS, &cbData, NULL, 0);
+ ret = OCDoRequest(&handle, OC_REST_OBSERVE, obsReg.str().c_str(),
+ &clientResponse->devAddr, 0, ConnType,
+ OC_LOW_QOS, &cbData, NULL, 0);
if (ret != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack resource error");
+ OIC_LOG(ERROR, TAG, "OCStack resource error");
}
else
{
cbData.cb = putReqCB;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
- OC_LOG_V(INFO, TAG, "PUT payload from client = ");
+ OIC_LOG_V(INFO, TAG, "PUT payload from client = ");
OCPayload* payload = putPayload();
- OC_LOG_PAYLOAD(INFO, TAG, payload);
+ OIC_LOG_PAYLOAD(INFO, payload);
+
+ ret = OCDoRequest(NULL, OC_REST_PUT, getQuery.str().c_str(),
+ &clientResponse->devAddr, payload, ConnType,
+ OC_LOW_QOS, &cbData, NULL, 0);
+
OCPayloadDestroy(payload);
- ret = OCDoResource(NULL, OC_REST_PUT, getQuery.str().c_str(),
- &clientResponse->devAddr, putPayload(), ConnType,
- OC_LOW_QOS, &cbData, NULL, 0);
if (ret != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack resource error");
+ OIC_LOG(ERROR, TAG, "OCStack resource error");
}
return ret;
}
cbData.cb = getReqCB;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
- ret = OCDoResource(NULL, OC_REST_GET, getQuery.str().c_str(),
- &clientResponse->devAddr, 0, ConnType, OC_LOW_QOS,
- &cbData, NULL, 0);
+ ret = OCDoRequest(NULL, OC_REST_GET, getQuery.str().c_str(),
+ &clientResponse->devAddr, 0, ConnType, OC_LOW_QOS,
+ &cbData, NULL, 0);
if (ret != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack resource error");
+ OIC_LOG(ERROR, TAG, "OCStack resource error");
}
return ret;
}
OCStackResult ret;
OCCallbackData cbData;
/* Start a discovery query*/
- char szQueryUri[64] = { 0 };
+ char szQueryUri[MAX_QUERY_LENGTH] = { 0 };
- strcpy(szQueryUri, RESOURCE_DISCOVERY_QUERY);
+ OICStrcpy(szQueryUri, sizeof(szQueryUri), RESOURCE_DISCOVERY_QUERY);
cbData.cb = discoveryReqCB;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
- ret = OCDoResource(NULL, OC_REST_DISCOVER, szQueryUri, NULL, 0, ConnType,
- OC_LOW_QOS,
- &cbData, NULL, 0);
+ ret = OCDoRequest(NULL, OC_REST_DISCOVER, szQueryUri, NULL, 0, ConnType,
+ OC_LOW_QOS,
+ &cbData, NULL, 0);
if (ret != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack resource error");
+ OIC_LOG(ERROR, TAG, "OCStack resource error");
}
return ret;
}
/* Initialize OCStack*/
if (OCInit(NULL, 0, OC_CLIENT) != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack init error");
+ OIC_LOG(ERROR, TAG, "OCStack init error");
return 0;
}
}
else
{
- OC_LOG(INFO, TAG, "Default Connectivity type selected...");
+ OIC_LOG(INFO, TAG, "Default Connectivity type selected...");
ConnType = CT_ADAPTER_IP;
}
InitDiscovery();
// Break from loop with Ctrl+C
- OC_LOG(INFO, TAG, "Entering occlient main loop...");
+ OIC_LOG(INFO, TAG, "Entering occlient main loop...");
signal(SIGINT, handleSigInt);
while (!gQuitFlag)
{
if (OCProcess() != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack process error");
+ OIC_LOG(ERROR, TAG, "OCStack process error");
return 0;
}
sleep(2);
- } OC_LOG(INFO, TAG, "Exiting occlient main loop...");
+ } OIC_LOG(INFO, TAG, "Exiting occlient main loop...");
if (OCStop() != OC_STACK_OK)
{
- OC_LOG(ERROR, TAG, "OCStack stop error");
+ OIC_LOG(ERROR, TAG, "OCStack stop error");
}
return 0;
{
return "/a/room";
}
-