#include "ocstack.h"
#include "logger.h"
-#include "camutex.h"
+#include "octhread.h"
#include "cathreadpool.h"
#include "ocpayload.h"
#include "payload_logging.h"
#include "cloudAuth.h"
#include "cloudWrapper.h"
#include "OCApi.h"
-#include "OCCloudProvisioning.h"
+#include "OCCloudProvisioning.hpp"
#ifdef __unix__
#include <unistd.h> //for unlink
#define TAG "cloudClient"
using namespace OC;
-#define DEFAULT_HOST "10.113.68.85"//"127.0.0.1"
+#define DEFAULT_HOST "127.0.0.1"
#define DEFAULT_PORT OC_MULTICAST_PORT
#define DEFAULT_DEVICEID "6A757374-776F-726B-4465-765575696430"
#define DEFAULT_USERID "6A757374-776F-726B-4465-765575696430"
static OCDevAddr endPoint;
static char token[1024];
static char authProvider[1024];
-static char *fname = DEFAULT_DB_FILE;
+static const char *fname = DEFAULT_DB_FILE;
static uint64_t timeout;
static uint16_t g_credId = 0;
-ca_cond cond;
-ca_mutex mutex;
-std::string ip("");
-OCCloudProvisioning g_cloudProv(ip, 0);
+oc_cond cond;
+oc_mutex mutex;
+std::string ip(DEFAULT_HOST);
+OCCloudProvisioning g_cloudProv(ip, (uint16_t)DEFAULT_PORT);
typedef enum {
SIGN_UP = 1,
void handleCB(void* ctx, OCStackResult result, void* data)
{
OC_UNUSED(ctx);
- OC_UNUSED(result);
OC_UNUSED(data);
- ca_mutex_lock(mutex);
- ca_cond_signal(cond);
- ca_mutex_unlock(mutex);
+ printf("Cloud request Result is == %d", result);
+ oc_mutex_lock(mutex);
+ oc_cond_signal(cond);
+ oc_mutex_unlock(mutex);
}
void handleCB1(OCStackResult result, void *data)
{
- OC_UNUSED(result);
OC_UNUSED(data);
- ca_mutex_lock(mutex);
- ca_cond_signal(cond);
- ca_mutex_unlock(mutex);
+ printf("Cloud request Result is == %d", result);
+ oc_mutex_lock(mutex);
+ oc_cond_signal(cond);
+ oc_mutex_unlock(mutex);
}
void handleCB2(OCStackResult result, std::string data)
{
- OC_UNUSED(result);
- OC_UNUSED(data);
+ printf("Cloud request Result is == %d", result);
+ printf("ACL ID for the device is == %s", data.c_str());
- ca_mutex_lock(mutex);
- ca_cond_signal(cond);
- ca_mutex_unlock(mutex);
+ oc_mutex_lock(mutex);
+ oc_cond_signal(cond);
+ oc_mutex_unlock(mutex);
}
static int saveTrustCert(void)
if (fp)
{
size_t fsize;
- if (fseeko(fp, 0, SEEK_END) == 0 && (fsize = ftello(fp)))
+ if (fseeko(fp, 0, SEEK_END) == 0 && (fsize = ftello(fp)) > 0)
{
- trustCertChainArray.data = (uint8_t*)OICCalloc(1, fsize+1);
- trustCertChainArray.len = fsize+1;
+ trustCertChainArray.data = (uint8_t*)OICCalloc(1, fsize);
+ trustCertChainArray.len = fsize;
if (NULL == trustCertChainArray.data)
{
- OIC_LOG(ERROR,TAG,"OICCalloc");
+ OIC_LOG(ERROR,TAG,"Failed to allocate memory");
fclose(fp);
return res;
}
rewind(fp);
- fsize = fread(trustCertChainArray.data, 1, fsize, fp);
- fclose(fp);
+ if (fsize != fread(trustCertChainArray.data, 1, fsize, fp))
+ {
+ OIC_LOG(ERROR, TAG, "Certiface not read completely");
+ }
}
+ fclose(fp);
}
OIC_LOG_BUFFER(DEBUG, TAG, trustCertChainArray.data, trustCertChainArray.len);
strncpy(endPoint.addr, DEFAULT_HOST, sizeof(endPoint.addr));
endPoint.port = DEFAULT_PORT;
- mutex = ca_mutex_new();
- cond = ca_cond_new();
+ mutex = oc_mutex_new();
+ cond = oc_cond_new();
while (false == fExit)
{
printMenu();
int request = 0;
- scanf("%d", &request);
+
+ for (int ret = 0; 1 != ret; )
+ {
+ ret = scanf("%d", &request);
+ for( ; 0x20 <= getchar(); );
+ }
switch (request)
{
res = OCWrapperCertificateIssueRequest( g_cloudProv, handleCB1);
break;
case USE_RSA:
-// CASelectCipherSuite(0x35, CA_ADAPTER_TCP);
+ res = CAManager::setCipherSuite(0x35, OC_ADAPTER_TCP);
break;
case SAVE_TRUST_CERT:
saveTrustCert();
}
break;
case EXIT:
- ca_mutex_free(mutex);
- ca_cond_free(cond);
+ oc_mutex_free(mutex);
+ oc_cond_free(cond);
fExit = true;
break;
default:
//if requests were sent then wait response
if (res == OC_STACK_OK)
{
- ca_mutex_lock(mutex);
- ca_cond_wait_for(cond, mutex, timeout);
- ca_mutex_unlock(mutex);
+ oc_mutex_lock(mutex);
+ oc_cond_wait_for(cond, mutex, timeout);
+ oc_mutex_unlock(mutex);
}
}
}
//Initialize Persistent Storage for SVR database
- OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink};
+ OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink, NULL, NULL};
OCRegisterPersistentStorageHandler(&ps);
return res;
}
- res = ca_thread_pool_add_task(g_threadPoolHandle, userRequests, NULL);
+ res = ca_thread_pool_add_task(g_threadPoolHandle, userRequests, NULL, NULL);
if (CA_STATUS_OK != res)
{
OIC_LOG(ERROR, TAG, "thread pool add task error.");