Added DNS support.
This commit is contained in:
parent
e4fdabf4db
commit
f328d0849f
@ -5,8 +5,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PubSubClient.h"
|
#include "PubSubClient.h"
|
||||||
#include "EthernetClient.h"
|
#include <EthernetClient.h>
|
||||||
#include "string.h"
|
#include <string.h>
|
||||||
|
|
||||||
PubSubClient::PubSubClient() : _client() {
|
PubSubClient::PubSubClient() : _client() {
|
||||||
}
|
}
|
||||||
@ -16,13 +16,30 @@ PubSubClient::PubSubClient(uint8_t *ip, uint16_t port, void (*callback)(char*,ui
|
|||||||
this->ip = ip;
|
this->ip = ip;
|
||||||
this->port = port;
|
this->port = port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PubSubClient::PubSubClient(String domain, uint16_t port, void (*callback)(char*,uint8_t*,int)) : _client() {
|
||||||
|
this->callback = callback;
|
||||||
|
this->domain = domain;
|
||||||
|
this->port = port;
|
||||||
|
}
|
||||||
|
|
||||||
int PubSubClient::connect(char *id) {
|
int PubSubClient::connect(char *id) {
|
||||||
return connect(id,0,0,0,0);
|
return connect(id,0,0,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int PubSubClient::connect(char *id, char* willTopic, uint8_t willQos, uint8_t willRetain, char* willMessage) {
|
int PubSubClient::connect(char *id, char* willTopic, uint8_t willQos, uint8_t willRetain, char* willMessage) {
|
||||||
if (!connected()) {
|
if (!connected()) {
|
||||||
if (_client.connect(this->ip, this->port)) {
|
int result = 0;
|
||||||
|
|
||||||
|
if (domain != NULL) {
|
||||||
|
char c[40];
|
||||||
|
this->domain.toCharArray(c, 40);
|
||||||
|
result = _client.connect(c, this->port);
|
||||||
|
} else {
|
||||||
|
result = _client.connect(this->ip, this->port);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result) {
|
||||||
nextMsgId = 1;
|
nextMsgId = 1;
|
||||||
uint8_t d[9] = {0x00,0x06,'M','Q','I','s','d','p',MQTTPROTOCOLVERSION};
|
uint8_t d[9] = {0x00,0x06,'M','Q','I','s','d','p',MQTTPROTOCOLVERSION};
|
||||||
uint8_t length = 0;
|
uint8_t length = 0;
|
||||||
|
@ -45,10 +45,12 @@ private:
|
|||||||
int write(uint8_t header, uint8_t* buf, uint8_t length);
|
int write(uint8_t header, uint8_t* buf, uint8_t length);
|
||||||
uint8_t writeString(char* string, uint8_t* buf, uint8_t pos);
|
uint8_t writeString(char* string, uint8_t* buf, uint8_t pos);
|
||||||
uint8_t *ip;
|
uint8_t *ip;
|
||||||
|
String domain;
|
||||||
uint16_t port;
|
uint16_t port;
|
||||||
public:
|
public:
|
||||||
PubSubClient();
|
PubSubClient();
|
||||||
PubSubClient(uint8_t *, uint16_t, void(*)(char*,uint8_t*,int));
|
PubSubClient(uint8_t *, uint16_t, void(*)(char*,uint8_t*,int));
|
||||||
|
PubSubClient(String, uint16_t, void(*)(char*,uint8_t*,int));
|
||||||
int connect(char *);
|
int connect(char *);
|
||||||
int connect(char*, char*, uint8_t, uint8_t, char*);
|
int connect(char*, char*, uint8_t, uint8_t, char*);
|
||||||
void disconnect();
|
void disconnect();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user