slirp: replace ex_pty with ex_chardev

do_pty == 3 means to talk to a chardev.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
Marc-André Lureau 2018-11-10 17:45:38 +04:00 committed by Samuel Thibault
parent 43bc7340b5
commit 7765bee0e3
4 changed files with 5 additions and 5 deletions

View File

@ -53,7 +53,7 @@ int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec,
*ex_ptr = g_new(struct ex_list, 1); *ex_ptr = g_new(struct ex_list, 1);
(*ex_ptr)->ex_fport = port; (*ex_ptr)->ex_fport = port;
(*ex_ptr)->ex_addr = addr; (*ex_ptr)->ex_addr = addr;
(*ex_ptr)->ex_pty = do_pty; (*ex_ptr)->ex_chardev = do_pty == 3;
(*ex_ptr)->ex_exec = (do_pty == 3) ? exec : g_strdup(exec); (*ex_ptr)->ex_exec = (do_pty == 3) ? exec : g_strdup(exec);
(*ex_ptr)->ex_next = tmp_ptr; (*ex_ptr)->ex_next = tmp_ptr;
return 0; return 0;

View File

@ -9,7 +9,7 @@
#define MISC_H #define MISC_H
struct ex_list { struct ex_list {
int ex_pty; /* Do we want a pty? */ int ex_chardev;
struct in_addr ex_addr; /* Server address */ struct in_addr ex_addr; /* Server address */
int ex_fport; /* Port to telnet to */ int ex_fport; /* Port to telnet to */
const char *ex_exec; /* Command line of what to exec */ const char *ex_exec; /* Command line of what to exec */

View File

@ -1455,7 +1455,7 @@ static void slirp_state_save(QEMUFile *f, void *opaque)
struct ex_list *ex_ptr; struct ex_list *ex_ptr;
for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next)
if (ex_ptr->ex_pty == 3) { if (ex_ptr->ex_chardev) {
struct socket *so; struct socket *so;
so = slirp_find_ctl_socket(slirp, ex_ptr->ex_addr, so = slirp_find_ctl_socket(slirp, ex_ptr->ex_addr,
ntohs(ex_ptr->ex_fport)); ntohs(ex_ptr->ex_fport));
@ -1490,7 +1490,7 @@ static int slirp_state_load(QEMUFile *f, void *opaque, int version_id)
return -EINVAL; return -EINVAL;
} }
for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) { for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) {
if (ex_ptr->ex_pty == 3 && if (ex_ptr->ex_chardev &&
so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr && so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr &&
so->so_fport == ex_ptr->ex_fport) { so->so_fport == ex_ptr->ex_fport) {
break; break;

View File

@ -960,7 +960,7 @@ int tcp_ctl(struct socket *so)
for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) { for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) {
if (ex_ptr->ex_fport == so->so_fport && if (ex_ptr->ex_fport == so->so_fport &&
so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr) { so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr) {
if (ex_ptr->ex_pty == 3) { if (ex_ptr->ex_chardev) {
so->s = -1; so->s = -1;
so->extra = (void *)ex_ptr->ex_exec; so->extra = (void *)ex_ptr->ex_exec;
return 1; return 1;