Lines Matching defs:wsi

51 secstream_mqtt_subscribe(struct lws *wsi)
56 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
66 if (!h->policy->u.mqtt.subscribe || wsi->mqtt->done_subscribe)
127 if (lws_mqtt_client_send_subcribe(wsi, &h->u.mqtt.sub_info)) {
137 if (lws_change_pollfd(wsi, 0, LWS_POLLIN)) {
145 secstream_mqtt_publish(struct lws *wsi, uint8_t *buf, size_t buf_len,
150 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
204 if (lws_mqtt_client_send_publish(wsi, &mqpp,
226 secstream_mqtt_birth(struct lws *wsi, uint8_t *buf, size_t buflen) {
229 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
240 wsi->mqtt->inside_birth = 1;
241 return secstream_mqtt_publish(wsi, buf,
249 secstream_mqtt_resend(struct lws *wsi, uint8_t *buf) {
253 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
268 if (wsi->mqtt->inside_birth) {
269 r = secstream_mqtt_publish(wsi, buffered, len, 0,
275 r = secstream_mqtt_publish(wsi, buffered, len,
288 if (wsi->mqtt->inside_birth) {
295 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
350 secstream_mqtt_is_shadow_matched(struct lws *wsi, const char *topic)
352 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
364 lwsl_wsi_warn(wsi, "Failed to expand Shadow topic");
381 secstream_mqtt_shadow_cleanup(struct lws *wsi)
383 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
398 secstream_mqtt_shadow_unsubscribe(struct lws *wsi)
400 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
403 wsi->mqtt->send_shadow_unsubscribe = 0;
404 wsi->mqtt->inside_shadow = 0;
405 wsi->mqtt->done_shadow_subscribe = 0;
410 if (lws_mqtt_client_send_unsubcribe(wsi, &h->u.mqtt.shadow_sub)) {
411 lwsl_wsi_err(wsi, "Failed to send MQTT unsubsribe");
416 if (lws_change_pollfd(wsi, 0, LWS_POLLIN)) {
417 lwsl_wsi_err(wsi, "Unable to set LWS_POLLIN");
421 wsi->mqtt->send_shadow_unsubscribe = 0;
427 secstream_mqtt_shadow_subscribe(struct lws *wsi)
429 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
435 if (!h->policy->u.mqtt.topic || wsi->mqtt->inside_shadow)
439 secstream_mqtt_shadow_cleanup(wsi);
454 secstream_mqtt_shadow_cleanup(wsi);
463 if (lws_mqtt_client_send_subcribe(wsi, &h->u.mqtt.shadow_sub)) {
464 lwsl_wsi_notice(wsi, "Unable to subscribe Shadow topics");
470 if (lws_change_pollfd(wsi, 0, LWS_POLLIN)) {
474 wsi->mqtt->inside_shadow = 1;
480 secstream_mqtt(struct lws *wsi, enum lws_callback_reasons reason, void *user,
483 lws_ss_handle_t *h = (lws_ss_handle_t *)lws_get_opaque_user_data(wsi);
511 h->wsi = NULL;
516 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
520 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
535 if (h->wsi)
536 lws_set_opaque_user_data(h->wsi, NULL);
537 h->wsi = NULL;
542 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
545 !h->txn_ok && !wsi->a.context->being_destroyed) {
548 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
554 * Make sure the handle wsi points to the stream wsi not the
557 h->wsi = wsi;
562 !wsi->mqtt->done_birth) {
563 struct lws *nwsi = lws_get_network_wsi(wsi);
565 if (w != wsi &&
572 wsi->mqtt->done_birth = 1;
585 wsi->mqtt->done_subscribe = 1;
587 wsi->mqtt->session_resumed) {
588 wsi->mqtt->inside_resume_session = 1;
593 if (!secstream_mqtt_subscribe(wsi))
594 wsi->mqtt->done_subscribe = 1;
595 wsi->mqtt->inside_resume_session = 0;
597 !wsi->mqtt->done_subscribe) {
603 lws_callback_on_writable(wsi);
608 !wsi->mqtt->done_birth) {
614 lws_callback_on_writable(wsi);
626 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
628 lws_callback_on_writable(wsi);
646 if (wsi->mqtt->inside_shadow) {
680 if (wsi->mqtt->inside_shadow)
685 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
687 if (wsi->mqtt->inside_shadow) {
709 lws_sul_cancel(&wsi->mqtt->sul_shadow_wait);
710 wsi->mqtt->send_shadow_unsubscribe = 1;
711 lws_callback_on_writable(wsi);
720 if (wsi->mqtt->inside_shadow) {
721 wsi->mqtt->done_shadow_subscribe = 1;
722 lws_callback_on_writable(wsi);
730 if (!wsi->mqtt->done_subscribe && !h->policy->u.mqtt.birth_topic) {
734 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
736 wsi->mqtt->done_subscribe = 1;
737 lws_callback_on_writable(wsi);
747 if (wsi->mqtt->inside_birth) {
752 wsi->mqtt->inside_birth = 0;
753 wsi->mqtt->done_birth = 1;
756 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
757 lws_callback_on_writable(wsi);
762 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
776 lws_callback_on_writable(wsi);
784 if (wsi->mqtt->inside_birth) {
792 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
806 if (!wsi->mqtt->done_subscribe && h->policy->u.mqtt.subscribe)
807 return secstream_mqtt_subscribe(wsi);
810 return secstream_mqtt_resend(wsi, buf + LWS_PRE);
812 if (!wsi->mqtt->done_birth && h->policy->u.mqtt.birth_topic)
813 return secstream_mqtt_birth(wsi, buf + LWS_PRE, buflen);
816 if (secstream_mqtt_is_shadow_matched(wsi,
818 if (!wsi->mqtt->done_shadow_subscribe)
819 return secstream_mqtt_shadow_subscribe(wsi);
820 if (wsi->mqtt->send_shadow_unsubscribe)
821 return secstream_mqtt_shadow_unsubscribe(wsi);
829 if (wsi->mqtt->done_shadow_subscribe) {
830 return secstream_mqtt_shadow_unsubscribe(wsi);
841 if (lws_mqtt_client_send_unsubcribe(wsi,
852 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
854 if (secstream_mqtt_publish(wsi, buf + LWS_PRE, buflen,
861 return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
868 struct lws *nwsi = lws_get_network_wsi(wsi);
870 if (wsi->mqtt->inside_shadow) {
871 secstream_mqtt_shadow_cleanup(wsi);
872 wsi->mqtt->inside_shadow = 0;
873 wsi->mqtt->done_shadow_subscribe = 0;
882 if (!wsi->mqtt)
885 if (wsi->mqtt->inside_shadow) {
886 secstream_mqtt_shadow_cleanup(wsi);
887 wsi->mqtt->inside_shadow = 0;
888 wsi->mqtt->done_shadow_subscribe = 0;
894 if (wsi->mqtt->inside_unsubscribe) {
902 if (!wsi->mqtt)
905 if (wsi->mqtt->inside_shadow) {
908 wsi->mqtt->send_shadow_unsubscribe = 1;
909 lws_callback_on_writable(wsi);
917 return lws_callback_http_dummy(wsi, reason, user, in, len);