469
469
so->so_state &= ~SS_ISFCONNECTING;
471
ret = send(so->s, &ret, 0, 0);
471
ret = send(so->s, (const void *) &ret, 0, 0);
473
473
/* XXXXX Must fix, zero bytes is a NOP */
474
474
if (errno == EAGAIN || errno == EWOULDBLOCK ||
737
static void _slirp_redir_loop(void (*func)(void *opaque, int is_udp,
738
struct in_addr *laddr, u_int lport,
739
struct in_addr *faddr, u_int fport),
740
void *opaque, int is_udp)
742
struct socket *head = (is_udp ? &udb : &tcb);
745
for (so = head->so_next; so != head; so = so->so_next) {
747
&so->so_laddr, ntohs(so->so_lport),
748
&so->so_faddr, ntohs(so->so_fport));
752
void slirp_redir_loop(void (*func)(void *opaque, int is_udp,
753
struct in_addr *laddr, u_int lport,
754
struct in_addr *faddr, u_int fport),
757
_slirp_redir_loop(func, opaque, 0);
758
_slirp_redir_loop(func, opaque, 1);
761
/* Unlistens a redirection
763
* Return value: number of redirs removed */
764
int slirp_redir_rm(int is_udp, int host_port)
767
struct socket *head = (is_udp ? &udb : &tcb);
768
int fport = htons(host_port);
772
for (so = head->so_next; so != head; so = so->so_next) {
773
if (so->so_fport == fport) {
737
784
int slirp_redir(int is_udp, int host_port,
738
785
struct in_addr guest_addr, int guest_port)