mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
pugins: sshd: handle window-change request
Added processing of window-change request, according to RFC 4254 6.7 https://datatracker.ietf.org/doc/html/rfc4254#section-6.7 For processing called callback pty_req with empty terminal and modes.
This commit is contained in:
parent
e9c92ec161
commit
63db023f58
2 changed files with 39 additions and 0 deletions
|
@ -275,6 +275,11 @@ enum {
|
|||
|
||||
SSHS_NVC_CHRQ_SUBSYSTEM,
|
||||
|
||||
SSHS_NVC_CHRQ_WNDCHANGE_TW,
|
||||
SSHS_NVC_CHRQ_WNDCHANGE_TH,
|
||||
SSHS_NVC_CHRQ_WNDCHANGE_TWP,
|
||||
SSHS_NVC_CHRQ_WNDCHANGE_THP,
|
||||
|
||||
SSHS_NVC_CH_EOF,
|
||||
SSHS_NVC_CH_CLOSE,
|
||||
|
||||
|
|
|
@ -1483,6 +1483,12 @@ again:
|
|||
SSHS_NVC_CHRQ_SUBSYSTEM);
|
||||
break;
|
||||
}
|
||||
if (!strcmp(pss->name, "window-change")) {
|
||||
lwsl_info("%s: window-change\n", __func__);
|
||||
state_get_u32(pss,
|
||||
SSHS_NVC_CHRQ_WNDCHANGE_TW);
|
||||
break;
|
||||
}
|
||||
|
||||
if (pss->rq_want_reply)
|
||||
goto chrq_fail;
|
||||
|
@ -1638,6 +1644,34 @@ again:
|
|||
break;
|
||||
#endif
|
||||
|
||||
/* CHRQ window-change */
|
||||
|
||||
case SSHS_NVC_CHRQ_WNDCHANGE_TW:
|
||||
pss->args.pty.width_ch = pss->len;
|
||||
state_get_u32(pss, SSHS_NVC_CHRQ_WNDCHANGE_TH);
|
||||
break;
|
||||
case SSHS_NVC_CHRQ_WNDCHANGE_TH:
|
||||
pss->args.pty.height_ch = pss->len;
|
||||
state_get_u32(pss, SSHS_NVC_CHRQ_WNDCHANGE_TWP);
|
||||
break;
|
||||
case SSHS_NVC_CHRQ_WNDCHANGE_TWP:
|
||||
pss->args.pty.width_px = pss->len;
|
||||
state_get_u32(pss, SSHS_NVC_CHRQ_WNDCHANGE_THP);
|
||||
break;
|
||||
case SSHS_NVC_CHRQ_WNDCHANGE_THP:
|
||||
pss->args.pty.height_px = pss->len;
|
||||
pss->args.pty.term[0] = 0;
|
||||
pss->args.pty.modes = NULL;
|
||||
pss->args.pty.modes_len = 0;
|
||||
n = 0;
|
||||
if (pss->vhd->ops && pss->vhd->ops->pty_req)
|
||||
n = pss->vhd->ops->pty_req(pss->ch_temp->priv,
|
||||
&pss->args.pty);
|
||||
if (n)
|
||||
goto chrq_fail;
|
||||
pss->parser_state = SSHS_MSG_EAT_PADDING;
|
||||
break;
|
||||
|
||||
/* SSH_MSG_CHANNEL_DATA */
|
||||
|
||||
case SSHS_NVC_CD_RECIP:
|
||||
|
|
Loading…
Add table
Reference in a new issue