int ff_listen_bind(int fd, const struct sockaddr *addr,

                   socklen_t addrlen, int timeout, URLContext *h)

{

    int ret;

    int reuse = 1;

    struct pollfd lp = { fd, POLLIN, 0 };

    if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) {

        av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n");

    }

    ret = bind(fd, addr, addrlen);

    if (ret)

        return ff_neterrno();



    ret = listen(fd, 1);

    if (ret)

        return ff_neterrno();



    ret = ff_poll_interrupt(&lp, 1, timeout, &h->interrupt_callback);

    if (ret < 0)

        return ret;



    ret = accept(fd, NULL, NULL);

    if (ret < 0)

        return ff_neterrno();



    closesocket(fd);



    ff_socket_nonblock(ret, 1);

    return ret;

}

int ff_listen_bind(int fd, const struct sockaddr *addr,

                   socklen_t addrlen, int timeout, URLContext *h)

{

    int ret;

    int reuse = 1;

    struct pollfd lp = { fd, POLLIN, 0 };

    if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) {

        av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n");

    }

    ret = bind(fd, addr, addrlen);

    if (ret)

        return ff_neterrno();



    ret = listen(fd, 1);

    if (ret)

        return ff_neterrno();



    ret = ff_poll_interrupt(&lp, 1, timeout, &h->interrupt_callback);

    if (ret < 0)

        return ret;



    ret = accept(fd, NULL, NULL);

    if (ret < 0)

        return ff_neterrno();



    closesocket(fd);



    ff_socket_nonblock(ret, 1);

    return ret;

}

int FUNC_0(int VAR_0, const struct sockaddr *VAR_1,

                   socklen_t VAR_2, int VAR_3, URLContext *VAR_4)

{

    int VAR_5;

    int VAR_6 = 1;

    struct pollfd VAR_7 = { VAR_0, POLLIN, 0 };

    if (setsockopt(VAR_0, SOL_SOCKET, SO_REUSEADDR, &VAR_6, sizeof(VAR_6))) {

        av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n");

    }

    VAR_5 = bind(VAR_0, VAR_1, VAR_2);

    if (VAR_5)

        return ff_neterrno();



    VAR_5 = listen(VAR_0, 1);

    if (VAR_5)

        return ff_neterrno();



    VAR_5 = ff_poll_interrupt(&VAR_7, 1, VAR_3, &VAR_4->interrupt_callback);

    if (VAR_5 < 0)

        return VAR_5;



    VAR_5 = accept(VAR_0, NULL, NULL);

    if (VAR_5 < 0)

        return ff_neterrno();



    closesocket(VAR_0);



    ff_socket_nonblock(VAR_5, 1);

    return VAR_5;

}

int FUNC_0(int VAR_0, const struct sockaddr *VAR_1,
socklen_t VAR_2, int VAR_3, URLContext *VAR_4)
{ int VAR_5; int VAR_6 = 1; struct pollfd VAR_7 = { VAR_0, POLLIN, 0 }; if (setsockopt(VAR_0, SOL_SOCKET, SO_REUSEADDR, &VAR_6, sizeof(VAR_6))) { av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n"); } VAR_5 = bind(VAR_0, VAR_1, VAR_2); if (VAR_5)
return ff_neterrno(); VAR_5 = listen(VAR_0, 1); if (VAR_5)
return ff_neterrno(); VAR_5 = ff_poll_interrupt(&VAR_7, 1, VAR_3, &VAR_4->interrupt_callback); if (VAR_5 < 0)
return VAR_5; VAR_5 = accept(VAR_0, NULL, NULL); if (VAR_5 < 0)
return ff_neterrno(); closesocket(VAR_0); ff_socket_nonblock(VAR_5, 1); return VAR_5; }