parent
ee30733e24
commit
2d053d2df0
@ -165,15 +165,21 @@ boolean PubSubClient::connect(const char *id, const char *user, const char *pass
|
|||||||
|
|
||||||
buffer[length++] = ((MQTT_KEEPALIVE) >> 8);
|
buffer[length++] = ((MQTT_KEEPALIVE) >> 8);
|
||||||
buffer[length++] = ((MQTT_KEEPALIVE) & 0xFF);
|
buffer[length++] = ((MQTT_KEEPALIVE) & 0xFF);
|
||||||
|
|
||||||
|
CHECK_STRING_LENGTH(length,id)
|
||||||
length = writeString(id,buffer,length);
|
length = writeString(id,buffer,length);
|
||||||
if (willTopic) {
|
if (willTopic) {
|
||||||
|
CHECK_STRING_LENGTH(length,willTopic)
|
||||||
length = writeString(willTopic,buffer,length);
|
length = writeString(willTopic,buffer,length);
|
||||||
|
CHECK_STRING_LENGTH(length,willMessage)
|
||||||
length = writeString(willMessage,buffer,length);
|
length = writeString(willMessage,buffer,length);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(user != NULL) {
|
if(user != NULL) {
|
||||||
|
CHECK_STRING_LENGTH(length,user)
|
||||||
length = writeString(user,buffer,length);
|
length = writeString(user,buffer,length);
|
||||||
if(pass != NULL) {
|
if(pass != NULL) {
|
||||||
|
CHECK_STRING_LENGTH(length,pass)
|
||||||
length = writeString(pass,buffer,length);
|
length = writeString(pass,buffer,length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,6 +83,8 @@
|
|||||||
#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*, uint8_t*, unsigned int)
|
#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*, uint8_t*, unsigned int)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define CHECK_STRING_LENGTH(l,s) if (l+2+strlen(s) > MQTT_MAX_PACKET_SIZE) {_client->stop();return false;}
|
||||||
|
|
||||||
class PubSubClient : public Print {
|
class PubSubClient : public Print {
|
||||||
private:
|
private:
|
||||||
Client* _client;
|
Client* _client;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user