Skip to content

Commit

Permalink
Changed allocation for clientId as this sometimes was empty
Browse files Browse the repository at this point in the history
  • Loading branch information
elpinjo committed Nov 4, 2020
1 parent e293eb9 commit e1796e4
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 17 deletions.
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=Cumulocity IoT client
version=0.1.2
version=0.1.3
author=Misja Heuveling <misja.heuveling@softwareag.com>
maintainer=Misja Heuveling <misja.heuveling@softwareag.com>
sentence=A client library to connect your Arduino to Cumulocity IoT cloud over MQTT.
Expand Down
25 changes: 14 additions & 11 deletions src/CumulocityClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ bool CumulocityClient::connect(char* host, char* tenant, char* user, char* passw

String myClientId = "d:";
myClientId += _deviceId;
_clientId = myClientId.c_str();

_clientId = (char*) malloc(myClientId.length() +1);
strcpy(_clientId,myClientId.c_str());

_client.setServer(_host, 1883);

Expand All @@ -51,7 +53,9 @@ bool CumulocityClient::connect(char* host, char* tenant, char* user, char* passw
myClientId += _deviceId;
myClientId += ":";
myClientId += defaultTemplate;
_clientId = myClientId.c_str();

_clientId = (char*) malloc(myClientId.length() +1);
strcpy(_clientId,myClientId.c_str());

_client.setServer(_host, 1883);

Expand Down Expand Up @@ -158,25 +162,26 @@ void CumulocityClient::setKeepAlive(int keepAlive) {
_keepAlive = keepAlive;
}

void CumulocityClient::setDeviceId(const char* deviceId) {
void CumulocityClient::setDeviceId(char* deviceId) {
_deviceId = deviceId;

String myClientId = "d:";
myClientId += _deviceId;

_clientId = myClientId.c_str();
_clientId = (char*) malloc(myClientId.length() +1);
strcpy(_clientId,myClientId.c_str());
}

void CumulocityClient::setDeviceId(const char* deviceId, char* defaultTemplate) {
void CumulocityClient::setDeviceId(char* deviceId, char* defaultTemplate) {
_deviceId = deviceId;

String myClientId = "d:";
myClientId += _deviceId;
myClientId += ":";
myClientId += defaultTemplate;
_clientId = myClientId.c_str();

_clientId = myClientId.c_str();
myClientId += defaultTemplate;
_clientId = (char*) malloc(myClientId.length() +1);
strcpy(_clientId,myClientId.c_str());
}

void CumulocityClient::callbackHandler(const char* topic, byte* payload, unsigned int length) {
Expand Down Expand Up @@ -204,10 +209,8 @@ void CumulocityClient::parseCredentials(char* payload) {
Serial.println("parseCredentials()");

char** elements = parseCSV(payload);
Serial.printf("tenant before update: %s\n", _credentials.tenant);
free(elements[0]);
_credentials.tenant = elements[1];
Serial.println("Pointing tenant to element 1");
_credentials.username = elements[2];
_credentials.password = elements[3];
Serial.println("copied credentials");
Expand Down
10 changes: 5 additions & 5 deletions src/CumulocityClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ typedef struct Credentials {
class CumulocityClient {

public:
CumulocityClient(Client& networkClient, const char* deviceId);
CumulocityClient(Client& networkClient, char* deviceId);
bool reconnect();
bool connect(char* host, char* tenant, char* user, char* password);
bool connect(char* host, char* tenant, char* user, char* password, char* defaultTemplate);
Expand All @@ -33,8 +33,8 @@ class CumulocityClient {
bool checkCredentialsReceived();
void createMeasurement(char* fragment, char* series, char* value, char* unit);
void setKeepAlive(int keepAlive);
void setDeviceId(const char* deviceId);
void setDeviceId(const char* deviceId, char* defaultTemplate);
void setDeviceId(char* deviceId);
void setDeviceId(char* deviceId, char* defaultTemplate);
void loop();

private:
Expand All @@ -49,10 +49,10 @@ class CumulocityClient {

char* _host;
Credentials _credentials;
const char* _clientId;
char* _clientId;
bool _credentialsReceived;
int _keepAlive = 600;
const char* _deviceId;
char* _deviceId;
};

#endif

0 comments on commit e1796e4

Please sign in to comment.