1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 #include "samsung/sc_easysetup.h"
24 #include "oic_malloc.h"
28 #include "ocpayload.h"
29 #include "oic_string.h"
30 #include "oic_malloc.h"
32 #include "resourcehandler.h"
35 * @var SC_ENROLLEE_TAG
36 * @brief Logging tag for module name.
38 #define SC_ENROLLEE_TAG "ES_SC_ENROLLEE"
40 SCProperties g_SCProperties;
42 static void ReadAccountData(OCRepPayload* payload,void** userdata);
43 static void ReadTnCdata(OCRepPayload* payload,void** userdata);
44 static void WriteTnCdata(OCRepPayload* payload, char* resourceType);
45 static void WriteWifiData(OCRepPayload* payload, char* resourceType);
47 ESResult SetSCProperties(const SCProperties *prop)
49 OIC_LOG(INFO, SC_ENROLLEE_TAG, "SetSCProperties IN");
52 memcpy(&g_SCProperties, prop, sizeof(SCProperties));
53 OIC_LOG(INFO, SC_ENROLLEE_TAG, "SetSCProperties OUT");
56 OIC_LOG(INFO, SC_ENROLLEE_TAG, "SetSCProperties OUT");
60 static void ReadAccountData(OCRepPayload* payload,void** userdata)
62 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadAccountData IN");
66 if(OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_ACCOUNT, &account))
70 *userdata = (void*)OICMalloc(sizeof(SCDevConfProperties));
71 if( *userdata == NULL )
73 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCDevConfProperties is failed");
79 SCDevConfProperties *pDevConfProp = (SCDevConfProperties*)(*userdata);
80 OICStrcpy(pDevConfProp->account, MAXLEN_STRING, account);
81 OICStrcpy(g_SCProperties.account, MAXLEN_STRING, account);
83 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
84 SC_RSRVD_ES_VENDOR_ACCOUNT, pDevConfProp->account);
88 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadAccountData OUT");
92 ESResult SetSCTncInfo(SCTncInfo *tncInfo)
98 g_SCProperties.tncInfo = *tncInfo;
102 ESResult SetSCTncStatus(int status)
104 g_SCProperties.tncStatus = status;
108 ESResult SetSCNetConnectionState(NETCONNECTION_STATE netConnectionState)
110 OIC_LOG(INFO, SC_ENROLLEE_TAG, "SetSCNetConnectionState IN");
112 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "SetSCNetConnectionState: %d", netConnectionState);
113 g_SCProperties.netConnectionState = netConnectionState;
115 if(OC_STACK_NO_OBSERVERS == OCNotifyAllObservers(g_ESEasySetupResource.handle, OC_HIGH_QOS))
117 OIC_LOG(DEBUG, SC_ENROLLEE_TAG, "provResource doesn't have any observers.");
120 OIC_LOG(INFO, SC_ENROLLEE_TAG, "SetSCNetConnectionState OUT");
124 static void ReadTnCdata(OCRepPayload* payload,void** userdata)
126 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadTnCdata IN");
128 char* tncResult = NULL;
130 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_TNC_RESULT, &tncResult))
132 if(*userdata == NULL)
134 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
135 if( *userdata == NULL )
137 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
142 SCCoapCloudServerConfProperties *pProp = (SCCoapCloudServerConfProperties*)(*userdata);
143 OICStrcpy(pProp->tncResult, MAXLEN_STRING, tncResult);
144 OICStrcpy(g_SCProperties.tncResult, MAXLEN_STRING, tncResult);
146 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
147 SC_RSRVD_ES_VENDOR_TNC_RESULT, pProp->tncResult);
150 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadTnCdata OUT");
153 void WriteTnCdata(OCRepPayload* payload, char* resourceType)
155 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteTnCdata IN");
157 if(payload == NULL || resourceType == NULL)
159 OIC_LOG(DEBUG, SC_ENROLLEE_TAG, "Invalid Params payload or resourceType is NULL");
160 OIC_LOG(DEBUG, SC_ENROLLEE_TAG, "WriteTnCdata OUT");
163 if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_EASYSETUP))
165 OCRepPayloadSetPropInt(payload, SC_RSRVD_ES_VENDOR_TNC_STATUS, g_SCProperties.tncStatus);
167 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_DEVCONF))
169 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_TNC_HEADER,
170 g_SCProperties.tncInfo.header);
171 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_TNC_VERSION,
172 g_SCProperties.tncInfo.version);
174 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_COAPCLOUDCONF))
176 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_TNC_RESULT,
177 g_SCProperties.tncResult);
179 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteTnCdata OUT");
182 void WriteWifiData(OCRepPayload* payload, char* resourceType)
184 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteWifiData IN");
186 if(payload == NULL || resourceType == NULL)
188 OIC_LOG(DEBUG, SC_ENROLLEE_TAG, "Invalid Params payload or resourceType is NULL");
189 OIC_LOG(DEBUG, SC_ENROLLEE_TAG, "WriteWifiData OUT");
193 if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_WIFICONF))
195 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_BSSID,
196 g_SCProperties.bssid);
198 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteWifiData OUT");
201 ESResult SetRegisterSetDevice(const char *regSetDevice)
203 if(regSetDevice != NULL)
205 OICStrcpy(g_SCProperties.regSetDev, sizeof(g_SCProperties.regSetDev), regSetDevice);
211 ESResult SetNetworkProvInfo(const char *nwProvInfo)
213 if(nwProvInfo != NULL)
215 OICStrcpy(g_SCProperties.nwProvInfo, sizeof(g_SCProperties.nwProvInfo), nwProvInfo);
221 ESResult SetSCPnPPin(const char *pnp)
225 OICStrcpy(g_SCProperties.pnpPin, sizeof(g_SCProperties.pnpPin), pnp);
231 ESResult SetESVersionInfo(const char *esProtocolVersion)
233 if(esProtocolVersion != NULL)
235 OICStrcpy(g_SCProperties.esProtocolVersion, sizeof(g_SCProperties.esProtocolVersion), esProtocolVersion);
241 ESResult SetSSOList(const char *ssoList)
245 OICStrcpy(g_SCProperties.ssoList, sizeof(g_SCProperties.ssoList), ssoList);
251 void ReadUserdataCb(OCRepPayload* payload, char* resourceType, void** userdata)
253 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadUserdataCb IN");
257 if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_WIFICONF))
259 int64_t channel = -1;
261 bool isHidden = false;
262 if (OCRepPayloadGetPropInt(payload, SC_RSRVD_ES_VENDOR_DISCOVERY_CHANNEL, &channel))
264 if(*userdata == NULL)
266 *userdata = (void*)OICMalloc(sizeof(SCWiFiConfProperties));
267 if( *userdata == NULL )
269 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCWiFiConfProperties is failed");
272 memset(*userdata, 0, sizeof(SCWiFiConfProperties));
274 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : [%" PRId64 "]",
275 SC_RSRVD_ES_VENDOR_DISCOVERY_CHANNEL, channel);
276 ((SCWiFiConfProperties*)(*userdata))->discoveryChannel = (int) channel;
277 g_SCProperties.discoveryChannel = channel;
279 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_BSSID, &bssid))
281 if(*userdata == NULL)
283 *userdata = (void*) OICMalloc(sizeof(SCWiFiConfProperties));
284 if( *userdata == NULL )
286 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCWiFiConfProperties is failed");
289 memset(*userdata, 0, sizeof(SCWiFiConfProperties));
291 if (*userdata != NULL)
293 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
294 SC_RSRVD_ES_VENDOR_BSSID, bssid);
295 SCWiFiConfProperties* pWifiConfProp = (SCWiFiConfProperties*)(*userdata);
296 OICStrcpy(pWifiConfProp->bssid, sizeof(pWifiConfProp->bssid), bssid);
297 OICStrcpy(g_SCProperties.bssid, sizeof(g_SCProperties.bssid), bssid);
302 OCRepPayload **repPayload = NULL;
303 size_t dimensions[MAX_REP_ARRAY_DEPTH];
304 if(OCRepPayloadGetPropObjectArray(payload, SC_RSRVD_ES_VENDOR_CANDIDATEAPS, &repPayload, dimensions))
306 if(*userdata == NULL)
308 *userdata = (void*) OICMalloc(sizeof(SCWiFiConfProperties));
309 if( *userdata == NULL )
311 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCWiFiConfProperties is failed");
314 memset(*userdata, 0, sizeof(SCWiFiConfProperties));
316 //size_t dim = calcDimTotal(dimensions);
317 SCWiFiConfProperties* pWifiConfProp = (SCWiFiConfProperties*)(*userdata);
318 for (size_t i = 0; i < dimensions[0]; i++)
320 int64_t cdChannel = -1;
321 char *cdBssid = NULL;
324 if (OCRepPayloadGetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_SSID, &cdSsid))
326 OICStrcpy(pWifiConfProp->candidateAPInfo[i].ssid, sizeof(pWifiConfProp->candidateAPInfo[i].ssid), cdSsid);
327 OICStrcpy(g_SCProperties.candidateAPInfo[i].ssid, sizeof(g_SCProperties.candidateAPInfo[i].ssid), cdSsid);
328 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
329 SC_RSRVD_ES_VENDOR_CANDIDATE_SSID, cdSsid);
332 if (OCRepPayloadGetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_PASSPHRASE, &cdPwd))
334 OICStrcpy(pWifiConfProp->candidateAPInfo[i].passphrase, sizeof(pWifiConfProp->candidateAPInfo[i].passphrase), cdPwd);
335 OICStrcpy(g_SCProperties.candidateAPInfo[i].passphrase, sizeof(g_SCProperties.candidateAPInfo[i].passphrase), cdPwd);
336 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
337 SC_RSRVD_ES_VENDOR_CANDIDATE_PASSPHRASE, cdPwd);
340 if (OCRepPayloadGetPropInt(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_CHANNEL, &cdChannel))
342 pWifiConfProp->candidateAPInfo[i].channel = (int) cdChannel;
343 g_SCProperties.candidateAPInfo[i].channel = cdChannel;
344 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %d",
345 SC_RSRVD_ES_VENDOR_CANDIDATE_CHANNEL, (int) cdChannel);
347 if (OCRepPayloadGetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_BSSID, &cdBssid))
349 OICStrcpy(pWifiConfProp->candidateAPInfo[i].bssid, sizeof(pWifiConfProp->candidateAPInfo[i].bssid), cdBssid);
350 OICStrcpy(g_SCProperties.candidateAPInfo[i].bssid, sizeof(g_SCProperties.candidateAPInfo[i].bssid), cdBssid);
351 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
352 SC_RSRVD_ES_VENDOR_CANDIDATE_BSSID, cdBssid);
356 pWifiConfProp->numCandidateAP = (int)dimensions[0];
357 g_SCProperties.numCandidateAP = (int)dimensions[0];
360 if (OCRepPayloadGetPropBool(payload, SC_RSRVD_ES_VENDOR_HIDDEN, &isHidden))
362 if(*userdata == NULL)
364 *userdata = (void*)OICMalloc(sizeof(SCWiFiConfProperties));
365 if( *userdata == NULL )
367 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCWiFiConfProperties is failed");
370 memset(*userdata, 0, sizeof(SCWiFiConfProperties));
372 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %d",
373 SC_RSRVD_ES_VENDOR_HIDDEN, isHidden);
374 ((SCWiFiConfProperties*)(*userdata))->isHidden = isHidden;
375 g_SCProperties.isHidden = isHidden;
378 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_DEVCONF))
380 if(*userdata == NULL)
382 *userdata = (void*)OICMalloc(sizeof(SCDevConfProperties));
383 if( *userdata == NULL )
385 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCDevConfProperties is failed");
388 memset(*userdata, 0, sizeof(SCDevConfProperties));
391 SCDevConfProperties *pDevConfProp = (SCDevConfProperties*)(*userdata);
393 char**locationList = NULL;
394 size_t dimensions[MAX_REP_ARRAY_DEPTH] = {0};
395 if(OCRepPayloadGetStringArray(payload, SC_RSRVD_ES_VENDOR_LOCATION, &locationList, dimensions))
397 for(size_t idx = 0; idx < dimensions[0]; idx++)
399 OICStrcpy(pDevConfProp->location[idx], strlen(locationList[idx])+1, locationList[idx]);
400 OICStrcpy(g_SCProperties.location[idx], strlen(locationList[idx])+1, locationList[idx]);
402 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
403 SC_RSRVD_ES_VENDOR_LOCATION, pDevConfProp->location[idx]);
406 ((SCDevConfProperties*)(*userdata))->numLocation = (int)dimensions[0];
407 g_SCProperties.numLocation = (int)dimensions[0];
410 ReadAccountData(payload,userdata);
412 char *regMobileDev = NULL;
413 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_REGISTER_MOBILE_DEV, ®MobileDev))
415 OICStrcpy(pDevConfProp->regMobileDev, strlen(regMobileDev)+1, regMobileDev);
416 OICStrcpy(g_SCProperties.regMobileDev, strlen(regMobileDev)+1, regMobileDev);
417 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.regMobileDev %s", g_SCProperties.regMobileDev);
420 char *country = NULL;
421 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_COUNTRY, &country))
423 OICStrcpy(pDevConfProp->country, strlen(country)+1, country);
424 OICStrcpy(g_SCProperties.country, strlen(country)+1, country);
425 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.country %s", g_SCProperties.country);
428 char *language = NULL;
429 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_LANGUAGE, &language))
431 OICStrcpy(pDevConfProp->language, strlen(language)+1, language);
432 OICStrcpy(g_SCProperties.language, strlen(language)+1, language);
433 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.language %s", g_SCProperties.language);
436 char *gpsLocation = NULL;
437 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_GPSLOCATION, &gpsLocation))
439 OICStrcpy(pDevConfProp->gpsLocation, strlen(gpsLocation)+1, gpsLocation);
440 OICStrcpy(g_SCProperties.gpsLocation, strlen(gpsLocation)+1, gpsLocation);
441 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.gpsLocation %s", g_SCProperties.gpsLocation);
444 char *utcDateTime = NULL;
445 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_UTC_DATE_TIME, &utcDateTime))
447 OICStrcpy(pDevConfProp->utcDateTime, strlen(utcDateTime)+1, utcDateTime);
448 OICStrcpy(g_SCProperties.utcDateTime, strlen(utcDateTime)+1, utcDateTime);
449 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.utcDateTime %s", g_SCProperties.utcDateTime);
452 char *regionalDateTime = NULL;
453 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_REGIONAL_DATE_TIME, ®ionalDateTime))
455 OICStrcpy(pDevConfProp->regionalDateTime, strlen(regionalDateTime)+1, regionalDateTime);
456 OICStrcpy(g_SCProperties.regionalDateTime, strlen(regionalDateTime)+1, regionalDateTime);
457 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.regionalDateTime %s", g_SCProperties.regionalDateTime);
460 char *timeZoneId = NULL;
461 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_TIMEZONE_ID, &timeZoneId))
463 OICStrcpy(pDevConfProp->timeZoneId, strlen(timeZoneId)+1, timeZoneId);
464 OICStrcpy(g_SCProperties.timeZoneId, strlen(timeZoneId)+1, timeZoneId);
465 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.timeZoneId %s", g_SCProperties.timeZoneId);
468 char *ssoList = NULL;
469 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_SSO_LIST, &ssoList))
471 OICStrcpy(pDevConfProp->ssoList, strlen(ssoList)+1, ssoList);
472 OICStrcpy(g_SCProperties.ssoList, strlen(ssoList)+1, ssoList);
473 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "pDevConfProp.ssoList %s", g_SCProperties.ssoList);
476 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_COAPCLOUDCONF))
478 char* clientID = NULL;
479 if(OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_CLIENTID, &clientID))
481 if(*userdata == NULL)
483 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
484 if( *userdata == NULL )
486 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
490 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
493 SCCoapCloudServerConfProperties *pCloudProp =
494 (SCCoapCloudServerConfProperties*)(*userdata);
496 OICStrcpy(pCloudProp->clientID, strlen(clientID)+1, clientID);
497 OICStrcpy(g_SCProperties.clientID, strlen(clientID)+1, clientID);
500 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
501 SC_RSRVD_ES_VENDOR_CLIENTID, pCloudProp->clientID);
504 //SC_RSRVD_ES_VENDOR_AAC
506 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_AAC, &aac))
508 if(*userdata == NULL)
510 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
511 if( *userdata == NULL )
513 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
517 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
520 if (*userdata != NULL)
522 SCCoapCloudServerConfProperties *pCloudProp =
523 (SCCoapCloudServerConfProperties*) (*userdata);
524 pCloudProp->aac[0] = '\0';
526 OICStrcpy(pCloudProp->aac, MAXLEN_STRING, aac);
527 OICStrcpy(g_SCProperties.aac, MAXLEN_STRING, aac);
530 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
531 SC_RSRVD_ES_VENDOR_AAC, pCloudProp->aac);
535 //SC_RSRVD_ES_VENDOR_UID
537 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_UID, &uid))
539 if(*userdata == NULL)
541 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
542 if( *userdata == NULL )
544 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
548 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
551 if (*userdata != NULL)
553 SCCoapCloudServerConfProperties *pCloudProp =
554 (SCCoapCloudServerConfProperties*) (*userdata);
555 pCloudProp->uid[0] = '\0';
557 OICStrcpy(pCloudProp->uid, MAXLEN_STRING, uid);
558 OICStrcpy(g_SCProperties.uid, MAXLEN_STRING, uid);
561 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
562 SC_RSRVD_ES_VENDOR_UID, pCloudProp->uid);
566 //SC_RSRVD_ES_VENDOR_REFRESH_TOKEN
567 char *refreshToken = NULL;
568 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_REFRESH_TOKEN, &refreshToken))
570 if(*userdata == NULL)
572 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
573 if( *userdata == NULL )
575 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
576 OICFree(refreshToken);
579 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
582 if (*userdata != NULL)
584 SCCoapCloudServerConfProperties *pCloudProp =
585 (SCCoapCloudServerConfProperties*) (*userdata);
586 pCloudProp->refreshToken[0] = '\0';
588 OICStrcpy(pCloudProp->refreshToken, MAXLEN_STRING, refreshToken);
589 OICStrcpy(g_SCProperties.refreshToken, MAXLEN_STRING, refreshToken);
590 OICFree(refreshToken);
592 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
593 SC_RSRVD_ES_VENDOR_REFRESH_TOKEN, pCloudProp->refreshToken);
597 // SC_RSRVD_ES_VENDOR_DEPLOY_ENVIRONMENT
598 char *deployEnv = NULL;
599 if (OCRepPayloadGetPropString(payload, SC_RSRVD_ES_VENDOR_DEPLOY_ENVIRONMENT, &deployEnv))
601 if(*userdata == NULL)
603 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
604 if( *userdata == NULL )
606 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
610 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
613 if (*userdata != NULL)
615 SCCoapCloudServerConfProperties *pCloudProp =
616 (SCCoapCloudServerConfProperties*) (*userdata);
617 OICStrcpy(pCloudProp->deployEnv, MAXLEN_STRING, deployEnv);
618 OICStrcpy(g_SCProperties.deployEnv, MAXLEN_STRING, deployEnv);
621 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %s",
622 SC_RSRVD_ES_VENDOR_REFRESH_TOKEN, pCloudProp->deployEnv);
626 // SC_RSRVD_ES_VENDOR_IATT
628 if (OCRepPayloadGetPropInt(payload, SC_RSRVD_ES_VENDOR_IATT, &iatt))
630 if(*userdata == NULL)
632 *userdata = (void*)OICMalloc(sizeof(SCCoapCloudServerConfProperties));
633 if( *userdata == NULL )
635 OIC_LOG(ERROR, SC_ENROLLEE_TAG, "OICMalloc for SCCoapCloudServerConfProperties is failed");
638 memset(*userdata, 0, sizeof(SCCoapCloudServerConfProperties));
641 SCCoapCloudServerConfProperties *pCloudProp =
642 (SCCoapCloudServerConfProperties*) (*userdata);
644 pCloudProp->iatt = iatt;
645 g_SCProperties.iatt = iatt;
647 OIC_LOG_V(INFO_PRIVATE, SC_ENROLLEE_TAG, "[User specific property] %s : %d",
648 SC_RSRVD_ES_VENDOR_REFRESH_TOKEN, pCloudProp->iatt);
651 ReadTnCdata(payload,userdata);
655 OIC_LOG(INFO, SC_ENROLLEE_TAG, "ReadUserdataCb OUT");
658 void WriteUserdataCb(OCRepPayload* payload, char* resourceType)
660 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteUserdataCb IN");
664 if (strstr(resourceType, OC_RSRVD_ES_RES_TYPE_EASYSETUP))
666 OCRepPayloadSetPropInt(payload, SC_RSRVD_ES_VENDOR_NETCONNECTION_STATE, (int) g_SCProperties.netConnectionState);
669 if (strstr(resourceType, OC_RSRVD_ES_RES_TYPE_WIFICONF))
671 OCRepPayload **repPayload = OICCalloc(g_SCProperties.numCandidateAP, sizeof(OCRepPayload *));
673 for (size_t i = 0; i < (size_t)g_SCProperties.numCandidateAP; i++)
675 repPayload[i] = OCRepPayloadCreate();
678 OCRepPayloadDestroy(payload);
679 for (size_t k = 0; k < i; k++)
681 OCRepPayloadDestroy(repPayload[k]);
683 OCRepPayloadDestroy(*repPayload);
686 OCRepPayloadSetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_SSID, g_SCProperties.candidateAPInfo[i].ssid);
687 OCRepPayloadSetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_PASSPHRASE, g_SCProperties.candidateAPInfo[i].passphrase);
688 OCRepPayloadSetPropString(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_BSSID, g_SCProperties.candidateAPInfo[i].bssid);
689 OCRepPayloadSetPropInt(repPayload[i], SC_RSRVD_ES_VENDOR_CANDIDATE_CHANNEL, g_SCProperties.candidateAPInfo[i].channel);
691 size_t dimensions[MAX_REP_ARRAY_DEPTH] = {g_SCProperties.numCandidateAP, 0, 0};
692 OCRepPayloadSetPropObjectArray(payload,SC_RSRVD_ES_VENDOR_CANDIDATEAPS, (const struct OCRepPayload **)repPayload, dimensions);
694 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_DEVCONF))
697 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_DEVICE_TYPE, g_SCProperties.deviceType);
698 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_DEVICE_SUBTYPE, g_SCProperties.deviceSubType);
699 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_REGISTER_SET_DEV, g_SCProperties.regSetDev);
700 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_REGISTER_MOBILE_DEV, g_SCProperties.regMobileDev);
701 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_NETWORK_PROV_INFO, g_SCProperties.nwProvInfo);
702 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_SSO_LIST, g_SCProperties.ssoList);
703 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_PNP_PIN, g_SCProperties.pnpPin);
704 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_MODEL_NUMBER, g_SCProperties.modelNumber);
705 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_COUNTRY, g_SCProperties.country);
706 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_LANGUAGE, g_SCProperties.language);
707 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_GPSLOCATION, g_SCProperties.gpsLocation);
708 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_UTC_DATE_TIME, g_SCProperties.utcDateTime);
709 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_REGIONAL_DATE_TIME, g_SCProperties.regionalDateTime);
710 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_ES_PROTOCOL_VERSION, g_SCProperties.esProtocolVersion);
711 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_HUB_ID, g_SCProperties.hubId);
713 if(g_SCProperties.deviceType != NULL)
715 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_DEVICE_TYPE, g_SCProperties.deviceType);
717 if(g_SCProperties.deviceSubType != NULL)
719 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_DEVICE_SUBTYPE, g_SCProperties.deviceSubType);
721 if(g_SCProperties.regSetDev != NULL)
723 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_REGISTER_SET_DEV, g_SCProperties.regSetDev);
725 if(g_SCProperties.regMobileDev != NULL)
727 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_REGISTER_MOBILE_DEV, g_SCProperties.regMobileDev);
729 if(g_SCProperties.nwProvInfo!= NULL)
731 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_NETWORK_PROV_INFO, g_SCProperties.nwProvInfo);
733 if(g_SCProperties.ssoList!= NULL)
735 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_SSO_LIST, g_SCProperties.ssoList);
737 if(g_SCProperties.pnpPin != NULL)
739 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_PNP_PIN, g_SCProperties.pnpPin);
741 if(g_SCProperties.modelNumber != NULL)
743 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_MODEL_NUMBER, g_SCProperties.modelNumber);
745 if(g_SCProperties.country != NULL)
747 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_COUNTRY, g_SCProperties.country);
749 if(g_SCProperties.language != NULL)
751 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_LANGUAGE, g_SCProperties.language);
753 if(g_SCProperties.gpsLocation != NULL)
755 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_GPSLOCATION, g_SCProperties.gpsLocation);
757 if(g_SCProperties.esProtocolVersion != NULL)
759 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_ES_PROTOCOL_VERSION, g_SCProperties.esProtocolVersion);
761 if (g_SCProperties.hubId != NULL)
763 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_HUB_ID, g_SCProperties.hubId);
767 else if(strstr(resourceType, OC_RSRVD_ES_RES_TYPE_COAPCLOUDCONF))
769 // x.com.samsung.deployenv
770 if (g_SCProperties.deployEnv != NULL)
772 OCRepPayloadSetPropString(payload, SC_RSRVD_ES_VENDOR_DEPLOY_ENVIRONMENT, g_SCProperties.deployEnv);
775 // x.com.samsung.iatt
776 OCRepPayloadSetPropInt(payload, SC_RSRVD_ES_VENDOR_IATT, g_SCProperties.iatt);
780 WriteTnCdata(payload, resourceType);
781 WriteWifiData(payload, resourceType);
783 OIC_LOG(INFO, SC_ENROLLEE_TAG, "WriteUserdataCb OUT");