65 |
65 |
66 |
66 |
67 void my_disconnect_callback(struct mosquitto *my_mosq, void *obj, int rc) |
67 void my_disconnect_callback(struct mosquitto *my_mosq, void *obj, int rc) |
68 { |
68 { |
69 if (mqtt_my_shutdown) { |
69 if (mqtt_my_shutdown) { |
70 syslog(LOG_NOTICE, "MQTT: acknowledged DISCONNECT from %s", Config.mosq_host); |
70 syslog(LOG_NOTICE, "MQTT: acknowledged DISCONNECT from %s", Config.mqtt_host); |
71 mqtt_connected = FALSE; |
71 mqtt_connected = FALSE; |
72 } else { |
72 } else { |
73 /* |
73 /* |
74 * The remote server was brought down. We must keep running |
74 * The remote server was brought down. We must keep running |
75 */ |
75 */ |
76 syslog(LOG_NOTICE, "MQTT: received DISCONNECT from %s, connection lost", Config.mosq_host); |
76 syslog(LOG_NOTICE, "MQTT: received DISCONNECT from %s, connection lost", Config.mqtt_host); |
77 mqtt_connect_lost = TRUE; |
77 mqtt_connect_lost = TRUE; |
78 } |
78 } |
79 } |
79 } |
80 |
80 |
81 |
81 |
159 mosquitto_max_inflight_messages_set(mosq, max_inflight); |
159 mosquitto_max_inflight_messages_set(mosq, max_inflight); |
160 mosquitto_connect_callback_set(mosq, my_connect_callback); |
160 mosquitto_connect_callback_set(mosq, my_connect_callback); |
161 mosquitto_disconnect_callback_set(mosq, my_disconnect_callback); |
161 mosquitto_disconnect_callback_set(mosq, my_disconnect_callback); |
162 mosquitto_publish_callback_set(mosq, my_publish_callback); |
162 mosquitto_publish_callback_set(mosq, my_publish_callback); |
163 |
163 |
164 if ((rc = mosquitto_connect(mosq, Config.mosq_host, Config.mosq_port, keepalive))) { |
164 if ((rc = mosquitto_connect(mosq, Config.mqtt_host, Config.mqtt_port, keepalive))) { |
165 if (rc == MOSQ_ERR_ERRNO) { |
165 if (rc == MOSQ_ERR_ERRNO) { |
166 strerror_r(errno, err, 1024); |
166 strerror_r(errno, err, 1024); |
167 syslog(LOG_NOTICE, "MQTT: mosquitto_connect: error: %s", err); |
167 syslog(LOG_NOTICE, "MQTT: mosquitto_connect: error: %s", err); |
168 } else { |
168 } else { |
169 syslog(LOG_NOTICE, "MQTT: mosquitto_connect: unable to connect (%d)", rc); |
169 syslog(LOG_NOTICE, "MQTT: mosquitto_connect: unable to connect (%d)", rc); |
170 } |
170 } |
171 mosquitto_lib_cleanup(); |
171 mosquitto_lib_cleanup(); |
172 syslog(LOG_NOTICE, "MQTT: will run without an MQTT broker."); |
172 syslog(LOG_NOTICE, "MQTT: will run without an MQTT broker."); |
173 } else { |
173 } else { |
174 mqtt_use = TRUE; |
174 mqtt_use = TRUE; |
175 syslog(LOG_NOTICE, "MQTT: connected with %s:%d", Config.mosq_host, Config.mosq_port); |
175 syslog(LOG_NOTICE, "MQTT: connected with %s:%d", Config.mqtt_host, Config.mqtt_port); |
176 |
176 |
177 /* |
177 /* |
178 * Initialise is complete, report our presence state |
178 * Initialise is complete, report our presence state |
179 */ |
179 */ |
180 mosquitto_loop_start(mosq); |
180 mosquitto_loop_start(mosq); |