version 1.71, 2001/04/06 21:00:12 |
version 1.72, 2001/04/14 16:33:20 |
|
|
session_pty_req(Session *s) |
session_pty_req(Session *s) |
{ |
{ |
u_int len; |
u_int len; |
char *term_modes; /* encoded terminal modes */ |
int n_bytes; |
|
|
if (no_pty_flag) |
if (no_pty_flag) |
return 0; |
return 0; |
|
|
s->row = packet_get_int(); |
s->row = packet_get_int(); |
s->xpixel = packet_get_int(); |
s->xpixel = packet_get_int(); |
s->ypixel = packet_get_int(); |
s->ypixel = packet_get_int(); |
term_modes = packet_get_string(&len); |
|
packet_done(); |
|
|
|
if (strcmp(s->term, "") == 0) { |
if (strcmp(s->term, "") == 0) { |
xfree(s->term); |
xfree(s->term); |
|
|
s->ptyfd = -1; |
s->ptyfd = -1; |
s->ttyfd = -1; |
s->ttyfd = -1; |
error("session_pty_req: session %d alloc failed", s->self); |
error("session_pty_req: session %d alloc failed", s->self); |
xfree(term_modes); |
|
return 0; |
return 0; |
} |
} |
debug("session_pty_req: session %d alloc %s", s->self, s->tty); |
debug("session_pty_req: session %d alloc %s", s->self, s->tty); |
|
|
/* Get window size from the packet. */ |
/* Get window size from the packet. */ |
pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); |
pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); |
|
|
|
/* Get tty modes from the packet. */ |
|
tty_parse_modes(s->ttyfd, &n_bytes); |
|
packet_done(); |
|
|
session_proctitle(s); |
session_proctitle(s); |
|
|
/* XXX parse and set terminal modes */ |
|
xfree(term_modes); |
|
return 1; |
return 1; |
} |
} |
|
|