time(¤t_time);
current = localtime(¤t_time);
midnight = (struct tm* )malloc(sizeof(struct tm));
+
+ if(midnight == NULL)
+ {
+ printf("ERROR; Memory allocation fails\n");
+ return 0;
+ }
+
memcpy(midnight, current, sizeof(struct tm));
midnight->tm_hour = 0;
delayed_time = getRelativeSecondsOfDayofweek(current->tm_wday, tp->tm_wday) - delayed_time;
delayed_time = delayed_time + getSeconds(tp);
+ free(midnight);
+
return delayed_time;
}
void unregisterTimer(int idx)
{
- if( 0 <= idx && idx <= TIMEOUTS)
+ if( 0 <= idx && idx < TIMEOUTS)
timeout_list[idx].timeout_state = TIMEOUT_UNUSED;
}
OCFREE(*value)
}
+ OCFREE(actionSetStr);
+
return result;
}
OCStackResult ExtractActionSetNameAndDelaytime(char *pChar, char **setName,
long int *pa)
{
- char *token, *tokenPtr;
+ char *token = NULL, *tokenPtr = NULL;
OCStackResult result = OC_STACK_OK;
token = (char*) strtok_r(pChar, ACTION_DELIMITER, &tokenPtr);
+ VARIFY_POINTER_NULL(token, result, exit)
+
*setName = (char *) OICMalloc(strlen(token) + 1);
VARIFY_POINTER_NULL(*setName, result, exit)
VARIFY_PARAM_NULL(token, result, exit)
iterToken = (char *) strtok_r(NULL, ACTION_DELIMITER, &iterTokenPtr);
VARIFY_PARAM_NULL(iterToken, result, exit)
#ifndef WITH_ARDUINO
- sscanf(iterToken, "%ld %u", &(*set)->timesteps, &(*set)->type);
+ if( 2 != sscanf(iterToken, "%ld %u", &(*set)->timesteps, &(*set)->type) )
+ {
+ // If the return value should be 2, the number of items in the argument. Otherwise, it fails.
+ goto exit;
+ }
#endif
OC_LOG_V(INFO, TAG, "ActionSet Name : %s", (*set)->actionsetName);
attrIterToken = (char *) strtok_r(attr, ATTR_ASSIGN,
&attrIterTokenPtr);
+ VARIFY_POINTER_NULL(attrIterToken, result, exit);
+
key = (char *) OICMalloc(strlen(attrIterToken) + 1);
VARIFY_POINTER_NULL(key, result, exit)
VARIFY_PARAM_NULL(attrIterToken, result, exit)
sizeof(ClientRequestInfo));
if( info == NULL )
+ {
+ OCFREE(payload);
return OC_STACK_NO_MEMORY;
+ }
memset(info, 0, sizeof(ClientRequestInfo));
{
stackRet = OC_STACK_ERROR;
}
+
+ OICFree(schedule);
}
}
}
return stackRet;
}
-
private final String CONFIGURATION_RESOURCE_URI = "/oic/con";
private final String MAINTENANCE_RESOURCE_URI = "/oic/mnt";
- private final String FACTORYSET_RESOURCE_URI = "/factorySet";
+ private final String FACTORYSET_RESOURCE_URI = "/factoryset";
private ListView list;
private ArrayAdapter<String> configurationApis;
private Map<String, ResourceInformation> collectionList = null;
public boolean configurationResourceFlag = false;
- public boolean factorySetResourceFlag = false;
+ public boolean factorysetResourceFlag = false;
public boolean maintenanceResourceFlag = false;
public static Context mcontext;
messageCount++;
resourceTypes.clear();
- resourceTypes.add("factorySet");
+ resourceTypes.add("factoryset");
findCandidateResources(resourceTypes);
messageCount++;
resourceList.put(uri + host, resourceInfo);
maintenanceResourceFlag = true;
- } else if (uri.equalsIgnoreCase("/factorySet")) {
+ } else if (uri.equalsIgnoreCase("/factoryset")) {
ResourceInformation factorysetResource = collectionList
.get(FACTORYSET_COLLECTION_RESOURCE_URI);
if (null == factorysetResource
resource, handle);
resourceList.put(uri + host, resourceInfo);
- factorySetResourceFlag = true;
+ factorysetResourceFlag = true;
} else {
Log.e(LOG_TAG, "Resource is of different type: " + uri);
return;
private ThingsMaintenance thingsmnt = null;
private ConfigurationResource conResource = null;
private MaintenanceResource mntResource = null;
- private FactorySetResource factorySetResource = null;
+ private FactorySetResource factorysetResource = null;
private final ThingsConfigurationListener thingConfigurationListener;
private final ThingsMaintenanceListener thingsMaintenanceListener;
mntResource = new MaintenanceResource();
mntResource.createResource(requestHandler);
- factorySetResource = new FactorySetResource();
- factorySetResource.createResource(requestHandler);
+ factorysetResource = new FactorySetResource();
+ factorysetResource.createResource(requestHandler);
} catch (OcException e) {
Log.e(LOG_TAG, "OcException occured: " + e.toString());
}
conResource.deleteResource();
if (null != mntResource)
mntResource.deleteResource();
- if (null != factorySetResource)
- factorySetResource.deleteResource();
+ if (null != factorysetResource)
+ factorysetResource.deleteResource();
}
private class RequestHandler implements OcPlatform.EntityHandler {
} else if (request.getResourceUri().equalsIgnoreCase(
mntResource.getUri())) {
- String factorySetAtt = rep.getValueString("fr");
- if (factorySetAtt.equalsIgnoreCase("true")) {
+ String factorysetAtt = rep.getValueString("fr");
+ if (factorysetAtt.equalsIgnoreCase("true")) {
conResource.factoryReset();
}
mntResource.setDiagnosticsRepresentation(rep);
public FactorySetResource() {
Log.i(LOG_TAG, "FactorySetCollection: enter");
- configurationUri = "/factorySet"; // uri of the resource
+ configurationUri = "/factoryset"; // uri of the resource
configurationTypes.clear();
- configurationTypes.add("factorySet");
+ configurationTypes.add("factoryset");
configurationRep.setUri(configurationUri);
configurationRep.setResourceTypes(configurationTypes);
}
FactorySetResource::FactorySetResource()
{
- m_configurationUri = "/factorySet"; // URI of the resource
+ m_configurationUri = "/factoryset"; // URI of the resource
m_configurationTypes.clear();
- m_configurationTypes.push_back("factorySet"); // resource type name.
+ m_configurationTypes.push_back("factoryset"); // resource type name.
m_configurationRep.setUri(m_configurationUri);
m_configurationRep.setResourceTypes(m_configurationTypes);
}
std::cout << "Exception: " << e.what() << std::endl;
}
+ pthread_mutex_lock(&mutex_lock);
isWaiting = 0;
+ pthread_mutex_unlock(&mutex_lock);
}
// Callback to found resources
if (g_maintenanceResource == NULL)
g_maintenanceResource = resource;
}
- else if (resource->uri() == "/factorySet")
+ else if (resource->uri() == "/factoryset")
{
OCPlatform::bindResource(setCollectionHandle, foundResourceHandle);
if (g_setResource == NULL)
types.push_back("oic.wk.con");
types.push_back("oic.wk.mnt");
- types.push_back("factorySet");
+ types.push_back("factoryset");
std::cout << "Finding Configuration Resource... " << std::endl;
std::cout << "Finding Maintenance Resource... " << std::endl;
FactorySetResource::FactorySetResource()
{
- m_configurationUri = "/factorySet"; // URI of the resource
+ m_configurationUri = "/factoryset"; // URI of the resource
m_configurationTypes.clear();
- m_configurationTypes.push_back("factorySet"); // resource type name.
+ m_configurationTypes.push_back("factoryset"); // resource type name.
m_configurationRep.setUri(m_configurationUri);
m_configurationRep.setResourceTypes(m_configurationTypes);
}
string CONFIGURATION_RESOURCE_URI = "/oic/con";
string MAINTENANCE_RESOURCE_URI = "/oic/mnt";
-string FACTORYSET_RESOURCE_URI = "/factorySet";
+string FACTORYSET_RESOURCE_URI = "/factoryset";
GroupManager *g_groupManager = nullptr;
ThingsConfiguration *g_thingsConfig = nullptr;
}
resourceTypes.clear();
- resourceTypes.push_back("factorySet");
+ resourceTypes.push_back("factoryset");
if (NULL != g_groupManager)
{
g_groupManager->findCandidateResources(resourceTypes, &onFoundCandidateResource,