• Home
  • Raw
  • Download

Lines Matching refs:wsi

28 rops_handle_POLLIN_mqtt(struct lws_context_per_thread *pt, struct lws *wsi,  in rops_handle_POLLIN_mqtt()  argument
37 (unsigned int)wsi->wsistate, wsi->a.protocol->name, in rops_handle_POLLIN_mqtt()
55 if (lwsi_state(wsi) != LRS_ESTABLISHED) { in rops_handle_POLLIN_mqtt()
58 if (lwsi_state(wsi) == LRS_WAITING_SSL && in rops_handle_POLLIN_mqtt()
60 lws_change_pollfd(wsi, LWS_POLLOUT, 0)) { in rops_handle_POLLIN_mqtt()
66 lws_handle_POLLOUT_event(wsi, pollfd)) { in rops_handle_POLLIN_mqtt()
71 n = lws_mqtt_client_socket_service(wsi, pollfd, NULL); in rops_handle_POLLIN_mqtt()
81 lwsi_state_can_handle_POLLOUT(wsi) && in rops_handle_POLLIN_mqtt()
82 lws_handle_POLLOUT_event(wsi, pollfd)) { in rops_handle_POLLIN_mqtt()
83 if (lwsi_state(wsi) == LRS_RETURNED_CLOSE) in rops_handle_POLLIN_mqtt()
84 lwsi_set_state(wsi, LRS_FLUSHING_BEFORE_CLOSE); in rops_handle_POLLIN_mqtt()
93 ebuf.len = (int)lws_buflist_next_segment_len(&wsi->buflist, &ebuf.token); in rops_handle_POLLIN_mqtt()
109 if (!(lwsi_role_client(wsi) && lwsi_state(wsi) != LRS_ESTABLISHED)) { in rops_handle_POLLIN_mqtt()
122 ebuf.len = (int)wsi->a.context->pt_serv_buf_size; in rops_handle_POLLIN_mqtt()
124 if ((unsigned int)ebuf.len > wsi->a.context->pt_serv_buf_size) in rops_handle_POLLIN_mqtt()
125 ebuf.len = (int)wsi->a.context->pt_serv_buf_size; in rops_handle_POLLIN_mqtt()
130 ebuf.len = lws_ssl_capable_read(wsi, ebuf.token, in rops_handle_POLLIN_mqtt()
158 n = lws_read_mqtt(wsi, ebuf.token, (unsigned int)ebuf.len); in rops_handle_POLLIN_mqtt()
167 if (lws_buflist_aware_finished_consuming(wsi, &ebuf, ebuf.len, in rops_handle_POLLIN_mqtt()
175 pending = (unsigned int)lws_ssl_pending(wsi); in rops_handle_POLLIN_mqtt()
177 pending = pending > wsi->a.context->pt_serv_buf_size ? in rops_handle_POLLIN_mqtt()
178 wsi->a.context->pt_serv_buf_size : pending; in rops_handle_POLLIN_mqtt()
183 !lws_buflist_next_segment_len(&wsi->buflist, NULL)) { in rops_handle_POLLIN_mqtt()
184 lwsl_info("%s: %s flow buf: drained\n", __func__, lws_wsi_tag(wsi)); in rops_handle_POLLIN_mqtt()
189 __lws_rx_flow_control(wsi); in rops_handle_POLLIN_mqtt()
198 lws_close_free_wsi(wsi, LWS_CLOSE_STATUS_NOSTATUS, "mqtt svc fail"); in rops_handle_POLLIN_mqtt()
206 rops_adoption_bind_mqtt(struct lws *wsi, int type, const char *vh_prot_name)
213 lws_role_transition(wsi, 0, (type & LWS_ADOPT_ALLOW_SSL) ? LRS_SSL_INIT :
217 lws_bind_protocol(wsi, wsi->a.protocol, __func__);
220 lws_bind_protocol(wsi,
221 &wsi->a.vhost->protocols[wsi->a.vhost->mqtt_protocol_index],
229 rops_client_bind_mqtt(struct lws *wsi, const struct lws_client_connect_info *i) in rops_client_bind_mqtt() argument
236 if (!wsi->user_space && wsi->stash->cis[CIS_METHOD]) in rops_client_bind_mqtt()
237 if (lws_ensure_user_space(wsi)) in rops_client_bind_mqtt()
240 if (!wsi->stash->cis[CIS_METHOD] && !wsi->stash->cis[CIS_ALPN]) in rops_client_bind_mqtt()
241 wsi->stash->cis[CIS_ALPN] = "x-amzn-mqtt-ca"; in rops_client_bind_mqtt()
250 if (lws_header_table_attach(wsi, 0) < 0) in rops_client_bind_mqtt()
257 if (lws_header_table_attach(wsi, 0)) in rops_client_bind_mqtt()
267 if (lws_create_client_mqtt_object(i, wsi)) in rops_client_bind_mqtt()
270 lws_role_transition(wsi, LWSIFR_CLIENT, LRS_UNCONNECTED, in rops_client_bind_mqtt()
276 rops_handle_POLLOUT_mqtt(struct lws *wsi) in rops_handle_POLLOUT_mqtt() argument
283 if (wsi->mqtt && wsi->mqtt->send_pingreq && !wsi->mqtt->inside_payload) { in rops_handle_POLLOUT_mqtt()
291 wsi->mqtt->send_pingreq = 0; in rops_handle_POLLOUT_mqtt()
298 if (lws_write(wsi, (uint8_t *)&buf[LWS_PRE], 2, in rops_handle_POLLOUT_mqtt()
305 if (wsi->mqtt && !wsi->mqtt->inside_payload && in rops_handle_POLLOUT_mqtt()
306 (wsi->mqtt->send_pubrec || wsi->mqtt->send_pubrel || in rops_handle_POLLOUT_mqtt()
307 wsi->mqtt->send_pubcomp)) { in rops_handle_POLLOUT_mqtt()
311 if (wsi->mqtt->send_pubrec) { in rops_handle_POLLOUT_mqtt()
313 __func__, wsi->mqtt->peer_ack_pkt_id); in rops_handle_POLLOUT_mqtt()
317 wsi->mqtt->peer_ack_pkt_id); in rops_handle_POLLOUT_mqtt()
318 wsi->mqtt->send_pubrec = 0; in rops_handle_POLLOUT_mqtt()
319 } else if (wsi->mqtt->send_pubrel) { in rops_handle_POLLOUT_mqtt()
321 __func__, wsi->mqtt->ack_pkt_id); in rops_handle_POLLOUT_mqtt()
324 wsi->mqtt->ack_pkt_id); in rops_handle_POLLOUT_mqtt()
325 wsi->mqtt->send_pubrel = 0; in rops_handle_POLLOUT_mqtt()
328 __func__, wsi->mqtt->peer_ack_pkt_id); in rops_handle_POLLOUT_mqtt()
331 wsi->mqtt->peer_ack_pkt_id); in rops_handle_POLLOUT_mqtt()
332 wsi->mqtt->send_pubcomp = 0; in rops_handle_POLLOUT_mqtt()
334 if (lws_write(wsi, (uint8_t *)&buf[LWS_PRE], 4, in rops_handle_POLLOUT_mqtt()
340 wsi = lws_get_network_wsi(wsi); in rops_handle_POLLOUT_mqtt()
342 wsi->mux.requested_POLLOUT = 0; in rops_handle_POLLOUT_mqtt()
344 wsi2 = &wsi->mux.child_list; in rops_handle_POLLOUT_mqtt()
350 if (!wsi->mqtt) in rops_handle_POLLOUT_mqtt()
353 lws_wsi_mux_dump_waiting_children(wsi); in rops_handle_POLLOUT_mqtt()
362 if (!lwsi_state_can_handle_POLLOUT(wsi)) in rops_handle_POLLOUT_mqtt()
370 if (wsi->mqtt->inside_payload && !(*wsi2)->mqtt->inside_payload) in rops_handle_POLLOUT_mqtt()
379 wa = &wsi->mux.child_list; in rops_handle_POLLOUT_mqtt()
386 if (lwsi_state(wsi) == LRS_ESTABLISHED && in rops_handle_POLLOUT_mqtt()
387 !wsi->mqtt->inside_payload && in rops_handle_POLLOUT_mqtt()
388 wsi->mqtt->send_puback) { in rops_handle_POLLOUT_mqtt()
391 __func__, wsi->mqtt->ack_pkt_id); in rops_handle_POLLOUT_mqtt()
398 lws_ser_wu16be(&buf[LWS_PRE + 2], wsi->mqtt->peer_ack_pkt_id); in rops_handle_POLLOUT_mqtt()
400 if (lws_write(wsi, (uint8_t *)&buf[LWS_PRE], 4, in rops_handle_POLLOUT_mqtt()
404 wsi->mqtt->send_puback = 0; in rops_handle_POLLOUT_mqtt()
407 wa = &wsi->mux.child_list; in rops_handle_POLLOUT_mqtt()
415 wa = &wsi->mux.child_list; in rops_handle_POLLOUT_mqtt()
420 } while (wsi2 && *wsi2 && !lws_send_pipe_choked(wsi)); in rops_handle_POLLOUT_mqtt()
424 if (lws_wsi_mux_action_pending_writeable_reqs(wsi)) in rops_handle_POLLOUT_mqtt()
432 rops_issue_keepalive_mqtt(struct lws *wsi, int isvalid) in rops_issue_keepalive_mqtt() argument
434 struct lws *nwsi = lws_get_network_wsi(wsi); in rops_issue_keepalive_mqtt()
450 rops_close_role_mqtt(struct lws_context_per_thread *pt, struct lws *wsi) in rops_close_role_mqtt() argument
452 struct lws *nwsi = lws_get_network_wsi(wsi); in rops_close_role_mqtt()
456 if (!wsi->mqtt) in rops_close_role_mqtt()
459 c = &wsi->mqtt->client; in rops_close_role_mqtt()
461 lws_sul_cancel(&wsi->mqtt->sul_qos_puback_pubrec_wait); in rops_close_role_mqtt()
471 s = wsi->mqtt->subs_head; in rops_close_role_mqtt()
472 wsi->mqtt->subs_head = NULL; in rops_close_role_mqtt()
490 wsi->mqtt->rx_cpkt_param; in rops_close_role_mqtt()
495 lws_free_set_NULL(wsi->mqtt->rx_cpkt_param); in rops_close_role_mqtt()
497 lws_free_set_NULL(wsi->mqtt); in rops_close_role_mqtt()
503 rops_callback_on_writable_mqtt(struct lws *wsi) in rops_callback_on_writable_mqtt() argument
510 lwsl_debug("%s: %s (wsistate 0x%x)\n", __func__, lws_wsi_tag(wsi), in rops_callback_on_writable_mqtt()
511 (unsigned int)wsi->wsistate); in rops_callback_on_writable_mqtt()
513 if (wsi->mux.requested_POLLOUT in rops_callback_on_writable_mqtt()
515 && !wsi->client_h2_alpn in rops_callback_on_writable_mqtt()
523 if (wsi->upgraded_to_http2 && !wsi->h2.h2n->pps && in rops_callback_on_writable_mqtt()
524 !lws_h2_tx_cr_get(wsi)) { in rops_callback_on_writable_mqtt()
533 lwsl_notice("%s: %p: skint (%d)\n", __func__, wsi, in rops_callback_on_writable_mqtt()
534 wsi->h2.tx_cr); in rops_callback_on_writable_mqtt()
535 wsi->h2.skint = 1; in rops_callback_on_writable_mqtt()
539 wsi->h2.skint = 0; in rops_callback_on_writable_mqtt()
542 network_wsi = lws_get_network_wsi(wsi); in rops_callback_on_writable_mqtt()
544 already = lws_wsi_mux_mark_parents_needing_writeable(wsi); in rops_callback_on_writable_mqtt()
559 rops_close_kill_connection_mqtt(struct lws *wsi, enum lws_close_status reason) in rops_close_kill_connection_mqtt() argument
562 lws_wsi_tag(wsi), in rops_close_kill_connection_mqtt()
563 lws_wsi_tag(wsi->mux.parent_wsi), wsi->mux.child_list); in rops_close_kill_connection_mqtt()
566 if (wsi->mux_substream in rops_close_kill_connection_mqtt()
568 || wsi->client_mux_substream in rops_close_kill_connection_mqtt()
572 lws_wsi_tag(wsi), in rops_close_kill_connection_mqtt()
573 lws_wsi_tag(wsi->mux.parent_wsi), in rops_close_kill_connection_mqtt()
574 wsi->mux.child_list); in rops_close_kill_connection_mqtt()
576 if (wsi->mux.child_list && lwsl_visible(LLL_INFO)) { in rops_close_kill_connection_mqtt()
577 lwsl_info(" parent %s: closing children: list:\n", lws_wsi_tag(wsi)); in rops_close_kill_connection_mqtt()
578 lws_wsi_mux_dump_children(wsi); in rops_close_kill_connection_mqtt()
581 lws_wsi_mux_close_children(wsi, (int)reason); in rops_close_kill_connection_mqtt()
586 wsi->client_mux_substream || in rops_close_kill_connection_mqtt()
588 wsi->mux_substream) && in rops_close_kill_connection_mqtt()
589 wsi->mux.parent_wsi) { in rops_close_kill_connection_mqtt()
590 lws_wsi_mux_sibling_disconnect(wsi); in rops_close_kill_connection_mqtt()