30 struct _lws_mqtt_related;
31 typedef struct _lws_mqtt_related lws_mqtt_related_t;
32 struct lws_mqtt_str_st;
33 typedef struct lws_mqtt_str_st lws_mqtt_str_t;
35 #define MQTT_VER_3_1_1 4
37 #define LWS_MQTT_FINAL_PART 1
44 FAILURE_QOS_LEVEL = 0x80
45 } lws_mqtt_qos_levels_t;
52 uint8_t ctrl_pkt_type:4;
63 const char *client_id;
72 lws_mqtt_qos_levels_t qos;
90 lws_mqtt_qos_levels_t qos;
101 lws_mqtt_qos_levels_t qos;
127 LMQCP_CTOS_SUBSCRIBE,
129 LMQCP_CTOS_UNSUBSCRIBE,
135 } lws_mqtt_control_packet_t;
139 LMQCFT_USERNAME = (1 << 7),
140 LMQCFT_PASSWORD = (1 << 6),
141 LMQCFT_WILL_RETAIN = (1 << 5),
142 LMQCFT_WILL_QOS = (1 << 3),
143 LMQCFT_WILL_FLAG = (1 << 2),
144 LMQCFT_CLEAN_START = (1 << 1),
145 LMQCFT_RESERVED = (1 << 0),
147 LMQCFT_WILL_QOS_MASK = (3 << 3),
148 } lws_mqtt_connect_flags_t;
152 LMQCFT_SESSION_PRESENT = (1 << 0),
153 } lws_mqtt_connack_flags_t;
156 LMQCP_REASON_SUCCESS = 0x00,
157 LMQCP_REASON_NORMAL_DISCONNECTION = 0x00,
158 LMQCP_REASON_GRANTED_QOS0 = 0x00,
159 LMQCP_REASON_GRANTED_QOS1 = 0x01,
160 LMQCP_REASON_GRANTED_QOS2 = 0x02,
161 LMQCP_REASON_DISCONNECT_WILL = 0x04,
162 LMQCP_REASON_NO_MATCHING_SUBSCRIBER = 0x10,
163 LMQCP_REASON_NO_SUBSCRIPTION_EXISTED = 0x11,
164 LMQCP_REASON_CONTINUE_AUTHENTICATION = 0x18,
165 LMQCP_REASON_RE_AUTHENTICATE = 0x19,
167 LMQCP_REASON_UNSPECIFIED_ERROR = 0x80,
168 LMQCP_REASON_MALFORMED_PACKET = 0x81,
169 LMQCP_REASON_PROTOCOL_ERROR = 0x82,
170 LMQCP_REASON_IMPLEMENTATION_SPECIFIC_ERROR = 0x83,
173 LMQCP_REASON_UNSUPPORTED_PROTOCOL = 0x84,
174 LMQCP_REASON_CLIENT_ID_INVALID = 0x85,
175 LMQCP_REASON_BAD_CREDENTIALS = 0x86,
176 LMQCP_REASON_NOT_AUTHORIZED = 0x87,
179 LMQCP_REASON_SERVER_UNAVAILABLE = 0x88,
180 LMQCP_REASON_SERVER_BUSY = 0x89,
181 LMQCP_REASON_BANNED = 0x8a,
182 LMQCP_REASON_SERVER_SHUTTING_DOWN = 0x8b,
183 LMQCP_REASON_BAD_AUTHENTICATION_METHOD = 0x8c,
184 LMQCP_REASON_KEEPALIVE_TIMEOUT = 0x8d,
185 LMQCP_REASON_SESSION_TAKEN_OVER = 0x8e,
186 LMQCP_REASON_TOPIC_FILTER_INVALID = 0x8f,
187 LMQCP_REASON_TOPIC_NAME_INVALID = 0x90,
188 LMQCP_REASON_PACKET_ID_IN_USE = 0x91,
189 LMQCP_REASON_PACKET_ID_NOT_FOUND = 0x92,
190 LMQCP_REASON_MAX_RX_EXCEEDED = 0x93,
191 LMQCP_REASON_TOPIC_ALIAS_INVALID = 0x94,
192 LMQCP_REASON_PACKET_TOO_LARGE = 0x95,
193 LMQCP_REASON_RATELIMIT = 0x96,
194 LMQCP_REASON_QUOTA_EXCEEDED = 0x97,
195 LMQCP_REASON_ADMINISTRATIVE_ACTION = 0x98,
196 LMQCP_REASON_PAYLOAD_FORMAT_INVALID = 0x99,
197 LMQCP_REASON_RETAIN_NOT_SUPPORTED = 0x9a,
198 LMQCP_REASON_QOS_NOT_SUPPORTED = 0x9b,
199 LMQCP_REASON_USE_ANOTHER_SERVER = 0x9c,
200 LMQCP_REASON_SERVER_MOVED = 0x9d,
201 LMQCP_REASON_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 0x9e,
202 LMQCP_REASON_CONNECTION_RATE_EXCEEDED = 0x9f,
203 LMQCP_REASON_MAXIMUM_CONNECT_TIME = 0xa0,
204 LMQCP_REASON_SUBSCRIPTION_IDS_NOT_SUPPORTED = 0xa1,
205 LMQCP_REASON_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED = 0xa2,
210 LMQPROP_PAYLOAD_FORMAT_INDICATOR = 0x01,
211 LMQPROP_MESSAGE_EXPIRY_INTERVAL = 0x02,
212 LMQPROP_CONTENT_TYPE = 0x03,
213 LMQPROP_RESPONSE_TOPIC = 0x08,
214 LMQPROP_CORRELATION_DATA = 0x09,
215 LMQPROP_SUBSCRIPTION_IDENTIFIER = 0x0b,
216 LMQPROP_SESSION_EXPIRY_INTERVAL = 0x11,
217 LMQPROP_ASSIGNED_CLIENT_IDENTIFIER = 0x12,
218 LMQPROP_SERVER_KEEP_ALIVE = 0x13,
219 LMQPROP_AUTHENTICATION_METHOD = 0x15,
220 LMQPROP_AUTHENTICATION_DATA = 0x16,
221 LMQPROP_REQUEST_PROBLEM_INFORMATION = 0x17,
222 LMQPROP_WILL_DELAY_INTERVAL = 0x18,
223 LMQPROP_REQUEST_RESPONSE_INFORMATION = 0x19,
224 LMQPROP_RESPONSE_INFORMATION = 0x1a,
225 LMQPROP_SERVER_REFERENCE = 0x1c,
226 LMQPROP_REASON_STRING = 0x1f,
227 LMQPROP_RECEIVE_MAXIMUM = 0x21,
228 LMQPROP_TOPIC_ALIAS_MAXIMUM = 0x22,
229 LMQPROP_TOPIC_ALIAS = 0x23,
230 LMQPROP_MAXIMUM_QOS = 0x24,
231 LMQPROP_RETAIN_AVAILABLE = 0x25,
232 LMQPROP_USER_PROPERTY = 0x26,
233 LMQPROP_MAXIMUM_PACKET_SIZE = 0x27,
234 LMQPROP_WILDCARD_SUBSCRIPTION_AVAIL = 0x28,
235 LMQPROP_SUBSCRIPTION_IDENTIFIER_AVAIL = 0x29,
236 LMQPROP_SHARED_SUBSCRIPTION_AVAIL = 0x2a
240 lws_read_mqtt(
struct lws *wsi,
unsigned char *buf, lws_filepos_t len);
243 LWS_VISIBLE LWS_EXTERN
int
244 lws_mqtt_bindata_cmp(
const lws_mqtt_str_t *bd1,
const lws_mqtt_str_t *bd2);
246 LWS_VISIBLE LWS_EXTERN
void
247 lws_mqtt_str_init(lws_mqtt_str_t *s, uint8_t *buf, uint16_t lim,
char nf);
249 LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t *
250 lws_mqtt_str_create(uint16_t lim);
252 LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t *
253 lws_mqtt_str_create_init(uint8_t *buf, uint16_t len, uint16_t lim);
255 LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t *
256 lws_mqtt_str_create_cstr_dup(
const char *buf, uint16_t lim);
258 LWS_VISIBLE LWS_EXTERN uint8_t *
259 lws_mqtt_str_next(lws_mqtt_str_t *s, uint16_t *budget);
261 LWS_VISIBLE LWS_EXTERN
int
262 lws_mqtt_str_advance(lws_mqtt_str_t *s,
int n);
264 LWS_VISIBLE LWS_EXTERN
void
265 lws_mqtt_str_free(lws_mqtt_str_t **s);
295 LWS_VISIBLE LWS_EXTERN
int
297 const void *buf, uint32_t len,
int final);
312 LWS_VISIBLE LWS_EXTERN
int
329 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
330 lws_mqtt_client_send_unsubcribe(
struct lws *wsi,
Definition: lws-mqtt.h:62
Definition: lws-mqtt.h:83
Definition: lws-mqtt.h:110
Definition: lws-mqtt.h:99
Definition: lws-mqtt.h:47