static void tcp_chr_accept(void *opaque)

{

    CharDriverState *chr = opaque;

    TCPCharDriver *s = chr->opaque;

    struct sockaddr_in saddr;

#ifndef _WIN32

    struct sockaddr_un uaddr;

#endif

    struct sockaddr *addr;

    socklen_t len;

    int fd;



    for(;;) {

#ifndef _WIN32

	if (s->is_unix) {

	    len = sizeof(uaddr);

	    addr = (struct sockaddr *)&uaddr;

	} else

#endif

	{

	    len = sizeof(saddr);

	    addr = (struct sockaddr *)&saddr;

	}

        fd = accept(s->listen_fd, addr, &len);

        if (fd < 0 && errno != EINTR) {

            return;

        } else if (fd >= 0) {

            if (s->do_telnetopt)

                tcp_chr_telnet_init(fd);

            break;

        }

    }

    socket_set_nonblock(fd);

    if (s->do_nodelay)

        socket_set_nodelay(fd);

    s->fd = fd;

    qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL);

    tcp_chr_connect(chr);

}

static void tcp_chr_accept(void *opaque)

{

    CharDriverState *chr = opaque;

    TCPCharDriver *s = chr->opaque;

    struct sockaddr_in saddr;

#ifndef _WIN32

    struct sockaddr_un uaddr;

#endif

    struct sockaddr *addr;

    socklen_t len;

    int fd;



    for(;;) {

#ifndef _WIN32

	if (s->is_unix) {

	    len = sizeof(uaddr);

	    addr = (struct sockaddr *)&uaddr;

	} else

#endif

	{

	    len = sizeof(saddr);

	    addr = (struct sockaddr *)&saddr;

	}

        fd = accept(s->listen_fd, addr, &len);

        if (fd < 0 && errno != EINTR) {

            return;

        } else if (fd >= 0) {

            if (s->do_telnetopt)

                tcp_chr_telnet_init(fd);

            break;

        }

    }

    socket_set_nonblock(fd);

    if (s->do_nodelay)

        socket_set_nodelay(fd);

    s->fd = fd;

    qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL);

    tcp_chr_connect(chr);

}

        fd = accept(s->listen_fd, addr, &len);
static void FUNC_0(void *VAR_0)

{

    CharDriverState *chr = VAR_0;

    TCPCharDriver *s = chr->VAR_0;

    struct sockaddr_in VAR_1;

#ifndef _WIN32

    struct sockaddr_un VAR_2;

#endif

    struct sockaddr *VAR_3;

    socklen_t len;

    int VAR_4;



    for(;;) {

#ifndef _WIN32

	if (s->is_unix) {

	    len = sizeof(VAR_2);

	    VAR_3 = (struct sockaddr *)&VAR_2;

	} else

#endif

	{

	    len = sizeof(VAR_1);

	    VAR_3 = (struct sockaddr *)&VAR_1;

	}

        VAR_4 = accept(s->listen_fd, VAR_3, &len);

        if (VAR_4 < 0 && errno != EINTR) {

            return;

        } else if (VAR_4 >= 0) {

            if (s->do_telnetopt)

                tcp_chr_telnet_init(VAR_4);

            break;

        }

    }

    socket_set_nonblock(VAR_4);

    if (s->do_nodelay)

        socket_set_nodelay(VAR_4);

    s->VAR_4 = VAR_4;

    qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL);

    tcp_chr_connect(chr);

}

static void FUNC_0(void *VAR_0)
{ CharDriverState *chr = VAR_0; TCPCharDriver *s = chr->VAR_0; struct sockaddr_in VAR_1; #ifndef _WIN32
struct sockaddr_un VAR_2; #endif
struct sockaddr *VAR_3; socklen_t len; int VAR_4; for(;;) { #ifndef _WIN32
if (s->is_unix) { len = sizeof(VAR_2); VAR_3 = (struct sockaddr *)&VAR_2; } else #endif
{ len = sizeof(VAR_1); VAR_3 = (struct sockaddr *)&VAR_1; } VAR_4 = accept(s->listen_fd, VAR_3, &len); if (VAR_4 < 0 && errno != EINTR) { return; } else if (VAR_4 >= 0) { if (s->do_telnetopt)
tcp_chr_telnet_init(VAR_4); break; } } socket_set_nonblock(VAR_4); if (s->do_nodelay)
socket_set_nodelay(VAR_4); s->VAR_4 = VAR_4; qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); tcp_chr_connect(chr); }