Revision c1261d8d slirp/slirp.c

b/slirp/slirp.c
734 734
    }
735 735
}
736 736

  
737
/* Unlistens a redirection
738
 *
739
 * Return value: number of redirs removed */
740
int slirp_redir_rm(int is_udp, int host_port)
741
{
742
    struct socket *so;
743
    struct socket *head = (is_udp ? &udb : &tcb);
744
    int fport = htons(host_port);
745
    int n = 0;
746

  
747
 loop_again:
748
    for (so = head->so_next; so != head; so = so->so_next) {
749
        if (so->so_fport == fport) {
750
            close(so->s);
751
            sofree(so);
752
            n++;
753
            goto loop_again;
754
        }
755
    }
756

  
757
    return n;
758
}
759

  
737 760
int slirp_redir(int is_udp, int host_port,
738 761
                struct in_addr guest_addr, int guest_port)
739 762
{

Also available in: Unified diff