int net_init_socket(QemuOpts *opts,

                    Monitor *mon,

                    const char *name,

                    VLANState *vlan)

{

    if (qemu_opt_get(opts, "fd")) {

        int fd;



        if (qemu_opt_get(opts, "listen") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("listen=, connect=, mcast= and localaddr= is invalid with fd=");

            return -1;

        }



        fd = net_handle_fd_param(mon, qemu_opt_get(opts, "fd"));

        if (fd == -1) {

            return -1;

        }



        if (!net_socket_fd_init(vlan, "socket", name, fd, 1)) {

            close(fd);

            return -1;

        }

    } else if (qemu_opt_get(opts, "listen")) {

        const char *listen;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("fd=, connect=, mcast= and localaddr= is invalid with listen=");

            return -1;

        }



        listen = qemu_opt_get(opts, "listen");



        if (net_socket_listen_init(vlan, "socket", name, listen) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(opts, "connect")) {

        const char *connect;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "listen") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("fd=, listen=, mcast= and localaddr= is invalid with connect=");

            return -1;

        }



        connect = qemu_opt_get(opts, "connect");



        if (net_socket_connect_init(vlan, "socket", name, connect) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(opts, "mcast")) {

        const char *mcast, *localaddr;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "listen")) {

            error_report("fd=, connect= and listen= is invalid with mcast=");

            return -1;

        }



        mcast = qemu_opt_get(opts, "mcast");

        localaddr = qemu_opt_get(opts, "localaddr");



        if (net_socket_mcast_init(vlan, "socket", name, mcast, localaddr) == -1) {

            return -1;

        }

    } else {

        error_report("-socket requires fd=, listen=, connect= or mcast=");

        return -1;

    }



    return 0;

}

int net_init_socket(QemuOpts *opts,

                    Monitor *mon,

                    const char *name,

                    VLANState *vlan)

{

    if (qemu_opt_get(opts, "fd")) {

        int fd;



        if (qemu_opt_get(opts, "listen") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("listen=, connect=, mcast= and localaddr= is invalid with fd=");

            return -1;

        }



        fd = net_handle_fd_param(mon, qemu_opt_get(opts, "fd"));

        if (fd == -1) {

            return -1;

        }



        if (!net_socket_fd_init(vlan, "socket", name, fd, 1)) {

            close(fd);

            return -1;

        }

    } else if (qemu_opt_get(opts, "listen")) {

        const char *listen;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("fd=, connect=, mcast= and localaddr= is invalid with listen=");

            return -1;

        }



        listen = qemu_opt_get(opts, "listen");



        if (net_socket_listen_init(vlan, "socket", name, listen) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(opts, "connect")) {

        const char *connect;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "listen") ||

            qemu_opt_get(opts, "mcast") ||

            qemu_opt_get(opts, "localaddr")) {

            error_report("fd=, listen=, mcast= and localaddr= is invalid with connect=");

            return -1;

        }



        connect = qemu_opt_get(opts, "connect");



        if (net_socket_connect_init(vlan, "socket", name, connect) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(opts, "mcast")) {

        const char *mcast, *localaddr;



        if (qemu_opt_get(opts, "fd") ||

            qemu_opt_get(opts, "connect") ||

            qemu_opt_get(opts, "listen")) {

            error_report("fd=, connect= and listen= is invalid with mcast=");

            return -1;

        }



        mcast = qemu_opt_get(opts, "mcast");

        localaddr = qemu_opt_get(opts, "localaddr");



        if (net_socket_mcast_init(vlan, "socket", name, mcast, localaddr) == -1) {

            return -1;

        }

    } else {

        error_report("-socket requires fd=, listen=, connect= or mcast=");

        return -1;

    }



    return 0;

}

    } else {             close(fd);
int FUNC_0(QemuOpts *VAR_0,

                    Monitor *VAR_1,

                    const char *VAR_2,

                    VLANState *VAR_3)

{

    if (qemu_opt_get(VAR_0, "VAR_4")) {

        int VAR_4;



        if (qemu_opt_get(VAR_0, "VAR_5") ||

            qemu_opt_get(VAR_0, "VAR_6") ||

            qemu_opt_get(VAR_0, "VAR_7") ||

            qemu_opt_get(VAR_0, "VAR_8")) {

            error_report("VAR_5=, VAR_6=, VAR_7= and VAR_8= is invalid with VAR_4=");

            return -1;

        }



        VAR_4 = net_handle_fd_param(VAR_1, qemu_opt_get(VAR_0, "VAR_4"));

        if (VAR_4 == -1) {

            return -1;

        }



        if (!net_socket_fd_init(VAR_3, "socket", VAR_2, VAR_4, 1)) {

            close(VAR_4);

            return -1;

        }

    } else if (qemu_opt_get(VAR_0, "VAR_5")) {

        const char *VAR_5;



        if (qemu_opt_get(VAR_0, "VAR_4") ||

            qemu_opt_get(VAR_0, "VAR_6") ||

            qemu_opt_get(VAR_0, "VAR_7") ||

            qemu_opt_get(VAR_0, "VAR_8")) {

            error_report("VAR_4=, VAR_6=, VAR_7= and VAR_8= is invalid with VAR_5=");

            return -1;

        }



        VAR_5 = qemu_opt_get(VAR_0, "VAR_5");



        if (net_socket_listen_init(VAR_3, "socket", VAR_2, VAR_5) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(VAR_0, "VAR_6")) {

        const char *VAR_6;



        if (qemu_opt_get(VAR_0, "VAR_4") ||

            qemu_opt_get(VAR_0, "VAR_5") ||

            qemu_opt_get(VAR_0, "VAR_7") ||

            qemu_opt_get(VAR_0, "VAR_8")) {

            error_report("VAR_4=, VAR_5=, VAR_7= and VAR_8= is invalid with VAR_6=");

            return -1;

        }



        VAR_6 = qemu_opt_get(VAR_0, "VAR_6");



        if (net_socket_connect_init(VAR_3, "socket", VAR_2, VAR_6) == -1) {

            return -1;

        }

    } else if (qemu_opt_get(VAR_0, "VAR_7")) {

        const char *VAR_7, *VAR_8;



        if (qemu_opt_get(VAR_0, "VAR_4") ||

            qemu_opt_get(VAR_0, "VAR_6") ||

            qemu_opt_get(VAR_0, "VAR_5")) {

            error_report("VAR_4=, VAR_6= and VAR_5= is invalid with VAR_7=");

            return -1;

        }



        VAR_7 = qemu_opt_get(VAR_0, "VAR_7");

        VAR_8 = qemu_opt_get(VAR_0, "VAR_8");



        if (net_socket_mcast_init(VAR_3, "socket", VAR_2, VAR_7, VAR_8) == -1) {

            return -1;

        }

    } else {

        error_report("-socket requires VAR_4=, VAR_5=, VAR_6= or VAR_7=");

        return -1;

    }



    return 0;

}

int FUNC_0(QemuOpts *VAR_0,
Monitor *VAR_1,
const char *VAR_2,
VLANState *VAR_3)
{ if (qemu_opt_get(VAR_0, "VAR_4")) { int VAR_4; if (qemu_opt_get(VAR_0, "VAR_5") ||
qemu_opt_get(VAR_0, "VAR_6") ||
qemu_opt_get(VAR_0, "VAR_7") ||
qemu_opt_get(VAR_0, "VAR_8")) { error_report("VAR_5=, VAR_6=, VAR_7= and VAR_8= is invalid with VAR_4="); return -1; } VAR_4 = net_handle_fd_param(VAR_1, qemu_opt_get(VAR_0, "VAR_4")); if (VAR_4 == -1) { return -1; } if (!net_socket_fd_init(VAR_3, "socket", VAR_2, VAR_4, 1)) { close(VAR_4); return -1; } } else if (qemu_opt_get(VAR_0, "VAR_5")) { const char *VAR_5; if (qemu_opt_get(VAR_0, "VAR_4") ||
qemu_opt_get(VAR_0, "VAR_6") ||
qemu_opt_get(VAR_0, "VAR_7") ||
qemu_opt_get(VAR_0, "VAR_8")) { error_report("VAR_4=, VAR_6=, VAR_7= and VAR_8= is invalid with VAR_5="); return -1; } VAR_5 = qemu_opt_get(VAR_0, "VAR_5"); if (net_socket_listen_init(VAR_3, "socket", VAR_2, VAR_5) == -1) { return -1; } } else if (qemu_opt_get(VAR_0, "VAR_6")) { const char *VAR_6; if (qemu_opt_get(VAR_0, "VAR_4") ||
qemu_opt_get(VAR_0, "VAR_5") ||
qemu_opt_get(VAR_0, "VAR_7") ||
qemu_opt_get(VAR_0, "VAR_8")) { error_report("VAR_4=, VAR_5=, VAR_7= and VAR_8= is invalid with VAR_6="); return -1; } VAR_6 = qemu_opt_get(VAR_0, "VAR_6"); if (net_socket_connect_init(VAR_3, "socket", VAR_2, VAR_6) == -1) { return -1; } } else if (qemu_opt_get(VAR_0, "VAR_7")) { const char *VAR_7, *VAR_8; if (qemu_opt_get(VAR_0, "VAR_4") ||
qemu_opt_get(VAR_0, "VAR_6") ||
qemu_opt_get(VAR_0, "VAR_5")) { error_report("VAR_4=, VAR_6= and VAR_5= is invalid with VAR_7="); return -1; } VAR_7 = qemu_opt_get(VAR_0, "VAR_7"); VAR_8 = qemu_opt_get(VAR_0, "VAR_8"); if (net_socket_mcast_init(VAR_3, "socket", VAR_2, VAR_7, VAR_8) == -1) { return -1; } } else { error_report("-socket requires VAR_4=, VAR_5=, VAR_6= or VAR_7="); return -1; } return 0; }