static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,

                            const char *model, const char *name,

                            const char *ifname, const char *script,

                            const char *downscript, const char *vhostfdname,

                            int vnet_hdr, int fd)

{

    TAPState *s;



    s = net_tap_fd_init(peer, model, name, fd, vnet_hdr);

    if (!s) {

        close(fd);

        return -1;

    }



    if (tap_set_sndbuf(s->fd, tap) < 0) {

        return -1;

    }



    if (tap->has_fd || tap->has_fds) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd);

    } else if (tap->has_helper) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s",

                 tap->helper);

    } else {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str),

                 "ifname=%s,script=%s,downscript=%s", ifname, script,

                 downscript);



        if (strcmp(downscript, "no") != 0) {

            snprintf(s->down_script, sizeof(s->down_script), "%s", downscript);

            snprintf(s->down_script_arg, sizeof(s->down_script_arg),

                     "%s", ifname);

        }

    }



    if (tap->has_vhost ? tap->vhost :

        vhostfdname || (tap->has_vhostforce && tap->vhostforce)) {

        int vhostfd;



        if (tap->has_vhostfd) {

            vhostfd = monitor_handle_fd_param(cur_mon, vhostfdname);

            if (vhostfd == -1) {

                return -1;

            }

        } else {

            vhostfd = -1;

        }



        s->vhost_net = vhost_net_init(&s->nc, vhostfd,

                                      tap->has_vhostforce && tap->vhostforce);

        if (!s->vhost_net) {

            error_report("vhost-net requested but could not be initialized");

            return -1;

        }

    } else if (tap->has_vhostfd || tap->has_vhostfds) {

        error_report("vhostfd= is not valid without vhost");

        return -1;

    }



    return 0;

}

static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,

                            const char *model, const char *name,

                            const char *ifname, const char *script,

                            const char *downscript, const char *vhostfdname,

                            int vnet_hdr, int fd)

{

    TAPState *s;



    s = net_tap_fd_init(peer, model, name, fd, vnet_hdr);

    if (!s) {

        close(fd);

        return -1;

    }



    if (tap_set_sndbuf(s->fd, tap) < 0) {

        return -1;

    }



    if (tap->has_fd || tap->has_fds) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd);

    } else if (tap->has_helper) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s",

                 tap->helper);

    } else {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str),

                 "ifname=%s,script=%s,downscript=%s", ifname, script,

                 downscript);



        if (strcmp(downscript, "no") != 0) {

            snprintf(s->down_script, sizeof(s->down_script), "%s", downscript);

            snprintf(s->down_script_arg, sizeof(s->down_script_arg),

                     "%s", ifname);

        }

    }



    if (tap->has_vhost ? tap->vhost :

        vhostfdname || (tap->has_vhostforce && tap->vhostforce)) {

        int vhostfd;



        if (tap->has_vhostfd) {

            vhostfd = monitor_handle_fd_param(cur_mon, vhostfdname);

            if (vhostfd == -1) {

                return -1;

            }

        } else {

            vhostfd = -1;

        }



        s->vhost_net = vhost_net_init(&s->nc, vhostfd,

                                      tap->has_vhostforce && tap->vhostforce);

        if (!s->vhost_net) {

            error_report("vhost-net requested but could not be initialized");

            return -1;

        }

    } else if (tap->has_vhostfd || tap->has_vhostfds) {

        error_report("vhostfd= is not valid without vhost");

        return -1;

    }



    return 0;

}

static int FUNC_0(const NetdevTapOptions *VAR_0, NetClientState *VAR_1,

                            const char *VAR_2, const char *VAR_3,

                            const char *VAR_4, const char *VAR_5,

                            const char *VAR_6, const char *VAR_7,

                            int VAR_8, int VAR_9)

{

    TAPState *s;



    s = net_tap_fd_init(VAR_1, VAR_2, VAR_3, VAR_9, VAR_8);

    if (!s) {

        close(VAR_9);

        return -1;

    }



    if (tap_set_sndbuf(s->VAR_9, VAR_0) < 0) {

        return -1;

    }



    if (VAR_0->has_fd || VAR_0->has_fds) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "VAR_9=%d", VAR_9);

    } else if (VAR_0->has_helper) {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s",

                 VAR_0->helper);

    } else {

        snprintf(s->nc.info_str, sizeof(s->nc.info_str),

                 "VAR_4=%s,VAR_5=%s,VAR_6=%s", VAR_4, VAR_5,

                 VAR_6);



        if (strcmp(VAR_6, "no") != 0) {

            snprintf(s->down_script, sizeof(s->down_script), "%s", VAR_6);

            snprintf(s->down_script_arg, sizeof(s->down_script_arg),

                     "%s", VAR_4);

        }

    }



    if (VAR_0->has_vhost ? VAR_0->vhost :

        VAR_7 || (VAR_0->has_vhostforce && VAR_0->vhostforce)) {

        int VAR_10;



        if (VAR_0->has_vhostfd) {

            VAR_10 = monitor_handle_fd_param(cur_mon, VAR_7);

            if (VAR_10 == -1) {

                return -1;

            }

        } else {

            VAR_10 = -1;

        }



        s->vhost_net = vhost_net_init(&s->nc, VAR_10,

                                      VAR_0->has_vhostforce && VAR_0->vhostforce);

        if (!s->vhost_net) {

            error_report("vhost-net requested but could not be initialized");

            return -1;

        }

    } else if (VAR_0->has_vhostfd || VAR_0->has_vhostfds) {

        error_report("VAR_10= is not valid without vhost");

        return -1;

    }



    return 0;

}

static int FUNC_0(const NetdevTapOptions *VAR_0, NetClientState *VAR_1,
const char *VAR_2, const char *VAR_3,
const char *VAR_4, const char *VAR_5,
const char *VAR_6, const char *VAR_7,
int VAR_8, int VAR_9)
{ TAPState *s; s = net_tap_fd_init(VAR_1, VAR_2, VAR_3, VAR_9, VAR_8); if (!s) { close(VAR_9); return -1; } if (tap_set_sndbuf(s->VAR_9, VAR_0) < 0) { return -1; } if (VAR_0->has_fd || VAR_0->has_fds) { snprintf(s->nc.info_str, sizeof(s->nc.info_str), "VAR_9=%d", VAR_9); } else if (VAR_0->has_helper) { snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s",
VAR_0->helper); } else { snprintf(s->nc.info_str, sizeof(s->nc.info_str),
"VAR_4=%s,VAR_5=%s,VAR_6=%s", VAR_4, VAR_5,
VAR_6); if (strcmp(VAR_6, "no") != 0) { snprintf(s->down_script, sizeof(s->down_script), "%s", VAR_6); snprintf(s->down_script_arg, sizeof(s->down_script_arg),
"%s", VAR_4); } } if (VAR_0->has_vhost ? VAR_0->vhost :
VAR_7 || (VAR_0->has_vhostforce && VAR_0->vhostforce)) { int VAR_10; if (VAR_0->has_vhostfd) { VAR_10 = monitor_handle_fd_param(cur_mon, VAR_7); if (VAR_10 == -1) { return -1; } } else { VAR_10 = -1; } s->vhost_net = vhost_net_init(&s->nc, VAR_10,
VAR_0->has_vhostforce && VAR_0->vhostforce); if (!s->vhost_net) { error_report("vhost-net requested but could not be initialized"); return -1; } } else if (VAR_0->has_vhostfd || VAR_0->has_vhostfds) { error_report("VAR_10= is not valid without vhost"); return -1; } return 0; }