Merge pull request #51 from kkloesener/patch-1
add --mqtthost command line option (spelling still needs to be corrected)
This commit is contained in:
@@ -27,12 +27,14 @@ using namespace std;
|
|||||||
/** the definition of the MQTT arguments. */
|
/** the definition of the MQTT arguments. */
|
||||||
static const struct argp_option g_mqtt_argp_options[] = {
|
static const struct argp_option g_mqtt_argp_options[] = {
|
||||||
{NULL, 0, NULL, 0, "MQTT options:", 1 },
|
{NULL, 0, NULL, 0, "MQTT options:", 1 },
|
||||||
{"mqttport", 1, "PORT", 0, "Connect to MQTT broker on PORT (usually 1883), 0 to disable [0]", 0 },
|
{"mqtthost", 1, "PORT", 0, "Connect to MQTT broker on HOST [localhsot]", 0 },
|
||||||
{"mqtttopic", 2, "TOPIC", 0, "Use MQTT TOPIC (prefix before /%circuit/%name or complete format) [ebusd]", 0 },
|
{"mqttport", 2, "PORT", 0, "Connect to MQTT broker on PORT (usually 1883), 0 to disable [0]", 0 },
|
||||||
|
{"mqtttopic", 3, "TOPIC", 0, "Use MQTT TOPIC (prefix before /%circuit/%name or complete format) [ebusd]", 0 },
|
||||||
|
|
||||||
{NULL, 0, NULL, 0, NULL, 0 },
|
{NULL, 0, NULL, 0, NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char* g_host = "localhost"; //!< MQTT Host to use [localhost]
|
||||||
static uint16_t g_port = 0; //!< optional port of MQTT broker, 0 to disable [0]
|
static uint16_t g_port = 0; //!< optional port of MQTT broker, 0 to disable [0]
|
||||||
static const char* g_topic = PACKAGE; //!< MQTT topic to use (prefix if without wildcards) [ebusd]
|
static const char* g_topic = PACKAGE; //!< MQTT topic to use (prefix if without wildcards) [ebusd]
|
||||||
|
|
||||||
@@ -48,7 +50,15 @@ static error_t mqtt_parse_opt(int key, char *arg, struct argp_state *state)
|
|||||||
result_t result = RESULT_OK;
|
result_t result = RESULT_OK;
|
||||||
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 1: // --mqttport=1883
|
case 1: // --mqtthost=localhost
|
||||||
|
if (arg == NULL || arg[0] == 0 || arg[0]=='/' || arg[strlen(arg)-1]=='/') {
|
||||||
|
argp_error(state, "invalid mqtthost");
|
||||||
|
return EINVAL;
|
||||||
|
}
|
||||||
|
g_host = arg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // --mqttport=1883
|
||||||
g_port = (uint16_t)parseInt(arg, 10, 1, 65535, result);
|
g_port = (uint16_t)parseInt(arg, 10, 1, 65535, result);
|
||||||
if (result != RESULT_OK) {
|
if (result != RESULT_OK) {
|
||||||
argp_error(state, "invalid mqttport");
|
argp_error(state, "invalid mqttport");
|
||||||
@@ -56,7 +66,7 @@ static error_t mqtt_parse_opt(int key, char *arg, struct argp_state *state)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: // --mqtttopic=ebusd
|
case 3: // --mqtttopic=ebusd
|
||||||
if (arg == NULL || arg[0] == 0 || arg[0]=='/' || arg[strlen(arg)-1]=='/') {
|
if (arg == NULL || arg[0] == 0 || arg[0]=='/' || arg[strlen(arg)-1]=='/') {
|
||||||
argp_error(state, "invalid mqtttopic");
|
argp_error(state, "invalid mqtttopic");
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
@@ -207,7 +217,7 @@ MqttHandler::MqttHandler(BusHandler* busHandler, MessageMap* messages)
|
|||||||
true,
|
true,
|
||||||
#endif
|
#endif
|
||||||
willTopic.c_str(), (uint32_t)len, (uint8_t*)(willData.c_str()), 0, true);
|
willTopic.c_str(), (uint32_t)len, (uint8_t*)(willData.c_str()), 0, true);
|
||||||
if (mosquitto_connect(m_mosquitto, "localhost", g_port, 60
|
if (mosquitto_connect(m_mosquitto, g_host, g_port, 60
|
||||||
#if (LIBMOSQUITTO_MAJOR<1)
|
#if (LIBMOSQUITTO_MAJOR<1)
|
||||||
, true
|
, true
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user