version 1.369, 2021/02/11 08:28:45 |
version 1.370, 2021/02/17 07:18:36 |
|
|
|
|
free(c->term_name); |
free(c->term_name); |
free(c->term_type); |
free(c->term_type); |
|
tty_term_free_list(c->term_caps, c->term_ncaps); |
|
|
status_free(c); |
status_free(c); |
|
|
|
|
datalen = imsg->hdr.len - IMSG_HEADER_SIZE; |
datalen = imsg->hdr.len - IMSG_HEADER_SIZE; |
|
|
switch (imsg->hdr.type) { |
switch (imsg->hdr.type) { |
|
case MSG_IDENTIFY_CLIENTPID: |
|
case MSG_IDENTIFY_CWD: |
|
case MSG_IDENTIFY_ENVIRON: |
case MSG_IDENTIFY_FEATURES: |
case MSG_IDENTIFY_FEATURES: |
case MSG_IDENTIFY_FLAGS: |
case MSG_IDENTIFY_FLAGS: |
case MSG_IDENTIFY_LONGFLAGS: |
case MSG_IDENTIFY_LONGFLAGS: |
case MSG_IDENTIFY_TERM: |
|
case MSG_IDENTIFY_TTYNAME: |
|
case MSG_IDENTIFY_CWD: |
|
case MSG_IDENTIFY_STDIN: |
case MSG_IDENTIFY_STDIN: |
case MSG_IDENTIFY_STDOUT: |
case MSG_IDENTIFY_STDOUT: |
case MSG_IDENTIFY_ENVIRON: |
case MSG_IDENTIFY_TERM: |
case MSG_IDENTIFY_CLIENTPID: |
case MSG_IDENTIFY_TERMINFO: |
|
case MSG_IDENTIFY_TTYNAME: |
case MSG_IDENTIFY_DONE: |
case MSG_IDENTIFY_DONE: |
server_client_dispatch_identify(c, imsg); |
server_client_dispatch_identify(c, imsg); |
break; |
break; |
|
|
else |
else |
c->term_name = xstrdup(data); |
c->term_name = xstrdup(data); |
log_debug("client %p IDENTIFY_TERM %s", c, data); |
log_debug("client %p IDENTIFY_TERM %s", c, data); |
|
break; |
|
case MSG_IDENTIFY_TERMINFO: |
|
if (datalen == 0 || data[datalen - 1] != '\0') |
|
fatalx("bad MSG_IDENTIFY_TERMINFO string"); |
|
c->term_caps = xreallocarray(c->term_caps, c->term_ncaps + 1, |
|
sizeof *c->term_caps); |
|
c->term_caps[c->term_ncaps++] = xstrdup(data); |
|
log_debug("client %p IDENTIFY_TERMINFO %s", c, data); |
break; |
break; |
case MSG_IDENTIFY_TTYNAME: |
case MSG_IDENTIFY_TTYNAME: |
if (datalen == 0 || data[datalen - 1] != '\0') |
if (datalen == 0 || data[datalen - 1] != '\0') |