30 struct _lws_mqtt_related;
32 struct lws_mqtt_str_st;
35 #define MQTT_VER_3_1_1 4
37 #define LWS_MQTT_FINAL_PART 1
39 #define LWS_MQTT_MAX_AWSIOT_TOPICLEN 256
40 #define LWS_MQTT_MAX_TOPICLEN 65535
41 #define LWS_MQTT_MAX_CIDLEN 128
42 #define LWS_MQTT_RANDOM_CIDLEN 23
45 #define LWS_MQTT_SHADOW_MAX_THING_LEN 128
46 #define LWS_MQTT_SHADOW_MAX_SHADOW_LEN 64
47 #define LWS_MQTT_SHADOW_UPDATE_STR "/update"
48 #define LWS_MQTT_SHADOW_DELETE_STR "/delete"
49 #define LWS_MQTT_SHADOW_GET_STR "/get"
50 #define LWS_MQTT_SHADOW_RESP_ACCEPTED_STR "/accepted"
51 #define LWS_MQTT_SHADOW_RESP_REJECTED_STR "/rejected"
52 #define LWS_MQTT_SHADOW_RESP_DELTA_STR "/delta"
53 #define LWS_MQTT_SHADOW_RESP_DOCUMENT_STR "/documents"
54 #define LWS_MQTT_SHADOW_UPDATE_ACCEPTED_STR LWS_MQTT_SHADOW_UPDATE_STR LWS_MQTT_SHADOW_RESP_ACCEPTED_STR
55 #define LWS_MQTT_SHADOW_UPDATE_REJECTED_STR LWS_MQTT_SHADOW_UPDATE_STR LWS_MQTT_SHADOW_RESP_REJECTED_STR
56 #define LWS_MQTT_SHADOW_UPDATE_DELTA_STR LWS_MQTT_SHADOW_UPDATE_STR LWS_MQTT_SHADOW_RESP_DELTA_STR
57 #define LWS_MQTT_SHADOW_UPDATE_DOCUMENT_STR LWS_MQTT_SHADOW_UPDATE_STR LWS_MQTT_SHADOW_RESP_DOCUMENT_STR
58 #define LWS_MQTT_SHADOW_DELETE_ACCEPTED_STR LWS_MQTT_SHADOW_DELETE_STR LWS_MQTT_SHADOW_RESP_ACCEPTED_STR
59 #define LWS_MQTT_SHADOW_DELETE_REJECTED_STR LWS_MQTT_SHADOW_DELETE_STR LWS_MQTT_SHADOW_RESP_REJECTED_STR
60 #define LWS_MQTT_SHADOW_GET_ACCEPTED_STR LWS_MQTT_SHADOW_GET_STR LWS_MQTT_SHADOW_RESP_ACCEPTED_STR
61 #define LWS_MQTT_SHADOW_GET_REJECTED_STR LWS_MQTT_SHADOW_GET_STR LWS_MQTT_SHADOW_RESP_REJECTED_STR
62 #define LWS_MQTT_SHADOW_PREFIX_FORMAT "$aws/things/%s"
63 #define LWS_MQTT_SHADOW_NAMED_SHADOW_TOPIC_FORMAT LWS_MQTT_SHADOW_PREFIX_FORMAT "/shadow/name/%s%s"
64 #define LWS_MQTT_SHADOW_UNNAMED_SHADOW_TOPIC_FORMAT LWS_MQTT_SHADOW_PREFIX_FORMAT "/shadow%s"
65 #define LWS_MQTT_SHADOW_UNNAMED_TOPIC_MATCH "$aws/things/+/shadow/+"
66 #define LWS_MQTT_SHADOW_NAMED_TOPIC_MATCH "$aws/things/+/shadow/name/+/+"
345 const void *buf,
uint32_t len,
int final);
#define LWS_WARN_UNUSED_RESULT
unsigned long long lws_filepos_t
struct lws_mqtt_str_st lws_mqtt_str_t
struct lws_mqtt_client_connect_param_s::@31 birth_param
@ LMQCFT_CLIENT_ID_NOFREE
int lws_read_mqtt(struct lws *wsi, unsigned char *buf, lws_filepos_t len)
LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * lws_mqtt_str_create_init(uint8_t *buf, uint16_t len, uint16_t lim)
struct lws_mqtt_publish_param_s lws_mqtt_publish_param_t
lws_mqtt_topic_elem_t * topic
lws_mqtt_control_packet_t
LWS_VISIBLE LWS_EXTERN void lws_mqtt_str_free(lws_mqtt_str_t **s)
LWS_VISIBLE LWS_EXTERN int lws_mqtt_str_advance(lws_mqtt_str_t *s, int n)
struct _lws_mqtt_related lws_mqtt_related_t
LWS_VISIBLE LWS_EXTERN void lws_mqtt_str_init(lws_mqtt_str_t *s, uint8_t *buf, uint16_t lim, char nf)
@ LMQCP_REASON_USE_ANOTHER_SERVER
@ LMQCP_REASON_TOPIC_NAME_INVALID
@ LMQCP_REASON_RE_AUTHENTICATE
@ LMQCP_REASON_SERVER_BUSY
@ LMQCP_REASON_CONNECTION_RATE_EXCEEDED
@ LMQCP_REASON_NOT_AUTHORIZED
@ LMQCP_REASON_RETAIN_NOT_SUPPORTED
@ LMQCP_REASON_SUBSCRIPTION_IDS_NOT_SUPPORTED
@ LMQCP_REASON_TOPIC_FILTER_INVALID
@ LMQCP_REASON_NORMAL_DISCONNECTION
@ LMQCP_REASON_BAD_CREDENTIALS
@ LMQCP_REASON_UNSPECIFIED_ERROR
@ LMQCP_REASON_GRANTED_QOS0
@ LMQCP_REASON_PACKET_TOO_LARGE
@ LMQCP_REASON_QUOTA_EXCEEDED
@ LMQCP_REASON_SESSION_TAKEN_OVER
@ LMQCP_REASON_PACKET_ID_NOT_FOUND
@ LMQCP_REASON_PAYLOAD_FORMAT_INVALID
@ LMQCP_REASON_PACKET_ID_IN_USE
@ LMQCP_REASON_UNSUPPORTED_PROTOCOL
@ LMQCP_REASON_NO_MATCHING_SUBSCRIBER
@ LMQCP_REASON_SERVER_MOVED
@ LMQCP_REASON_BAD_AUTHENTICATION_METHOD
@ LMQCP_REASON_DISCONNECT_WILL
@ LMQCP_REASON_QOS_NOT_SUPPORTED
@ LMQCP_REASON_TOPIC_ALIAS_INVALID
@ LMQCP_REASON_KEEPALIVE_TIMEOUT
@ LMQCP_REASON_MAX_RX_EXCEEDED
@ LMQCP_REASON_MAXIMUM_CONNECT_TIME
@ LMQCP_REASON_MALFORMED_PACKET
@ LMQCP_REASON_NO_SUBSCRIPTION_EXISTED
@ LMQCP_REASON_CONTINUE_AUTHENTICATION
@ LMQCP_REASON_SERVER_SHUTTING_DOWN
@ LMQCP_REASON_GRANTED_QOS1
@ LMQCP_REASON_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED
@ LMQCP_REASON_PROTOCOL_ERROR
@ LMQCP_REASON_SERVER_UNAVAILABLE
@ LMQCP_REASON_IMPLEMENTATION_SPECIFIC_ERROR
@ LMQCP_REASON_ADMINISTRATIVE_ACTION
@ LMQCP_REASON_GRANTED_QOS2
@ LMQCP_REASON_CLIENT_ID_INVALID
@ LMQCP_REASON_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED
struct topic_elem lws_mqtt_topic_elem_t
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_mqtt_client_send_unsubcribe(struct lws *wsi, const lws_mqtt_subscribe_param_t *unsub)
LWS_VISIBLE LWS_EXTERN int lws_mqtt_client_send_publish(struct lws *wsi, lws_mqtt_publish_param_t *pub, const void *buf, uint32_t len, int final)
LWS_VISIBLE LWS_EXTERN uint8_t * lws_mqtt_str_next(lws_mqtt_str_t *s, uint16_t *budget)
lws_mqtt_qos_levels_t qos
struct lws_mqtt_client_connect_param_s::@30 will_param
@ LMQPROP_RESPONSE_INFORMATION
@ LMQPROP_RETAIN_AVAILABLE
@ LMQPROP_RECEIVE_MAXIMUM
@ LMQPROP_AUTHENTICATION_DATA
@ LMQPROP_SERVER_KEEP_ALIVE
@ LMQPROP_PAYLOAD_FORMAT_INDICATOR
@ LMQPROP_REQUEST_RESPONSE_INFORMATION
@ LMQPROP_REQUEST_PROBLEM_INFORMATION
@ LMQPROP_CORRELATION_DATA
@ LMQPROP_ASSIGNED_CLIENT_IDENTIFIER
@ LMQPROP_MESSAGE_EXPIRY_INTERVAL
@ LMQPROP_SUBSCRIPTION_IDENTIFIER
@ LMQPROP_SESSION_EXPIRY_INTERVAL
@ LMQPROP_SERVER_REFERENCE
@ LMQPROP_MAXIMUM_PACKET_SIZE
@ LMQPROP_WILDCARD_SUBSCRIPTION_AVAIL
@ LMQPROP_AUTHENTICATION_METHOD
@ LMQPROP_SUBSCRIPTION_IDENTIFIER_AVAIL
@ LMQPROP_TOPIC_ALIAS_MAXIMUM
@ LMQPROP_SHARED_SUBSCRIPTION_AVAIL
@ LMQPROP_WILL_DELAY_INTERVAL
LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * lws_mqtt_str_create(uint16_t lim)
LWS_VISIBLE LWS_EXTERN int lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub)
LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * lws_mqtt_str_create_cstr_dup(const char *buf, uint16_t lim)
LWS_VISIBLE LWS_EXTERN int lws_mqtt_bindata_cmp(const lws_mqtt_str_t *bd1, const lws_mqtt_str_t *bd2)
struct lws_mqtt_client_connect_param_s lws_mqtt_client_connect_param_t
lws_mqtt_qos_levels_t qos
struct lws_mqtt_subscribe_param_s lws_mqtt_subscribe_param_t