slirp: Adding family argument to tcp_fconnect()
This patch simply adds a unsigned short family argument to remove the hardcoded "AF_INET" in the call of qemu_socket(). This prepares for IPv6 support. Signed-off-by: Guillaume Subiron <maethor@subiron.org> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
9b5a30dc41
commit
cc573a6924
@ -327,7 +327,7 @@ void tcp_respond(struct tcpcb *, register struct tcpiphdr *, register struct mbu
|
|||||||
struct tcpcb * tcp_newtcpcb(struct socket *);
|
struct tcpcb * tcp_newtcpcb(struct socket *);
|
||||||
struct tcpcb * tcp_close(register struct tcpcb *);
|
struct tcpcb * tcp_close(register struct tcpcb *);
|
||||||
void tcp_sockclosed(struct tcpcb *);
|
void tcp_sockclosed(struct tcpcb *);
|
||||||
int tcp_fconnect(struct socket *);
|
int tcp_fconnect(struct socket *, unsigned short af);
|
||||||
void tcp_connect(struct socket *);
|
void tcp_connect(struct socket *);
|
||||||
int tcp_attach(struct socket *);
|
int tcp_attach(struct socket *);
|
||||||
uint8_t tcp_tos(struct socket *);
|
uint8_t tcp_tos(struct socket *);
|
||||||
|
@ -584,7 +584,7 @@ findso:
|
|||||||
goto cont_input;
|
goto cont_input;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tcp_fconnect(so) == -1) &&
|
if ((tcp_fconnect(so, so->so_ffamily) == -1) &&
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
socket_error() != WSAEWOULDBLOCK
|
socket_error() != WSAEWOULDBLOCK
|
||||||
#else
|
#else
|
||||||
|
@ -324,14 +324,15 @@ tcp_sockclosed(struct tcpcb *tp)
|
|||||||
* nonblocking. Connect returns after the SYN is sent, and does
|
* nonblocking. Connect returns after the SYN is sent, and does
|
||||||
* not wait for ACK+SYN.
|
* not wait for ACK+SYN.
|
||||||
*/
|
*/
|
||||||
int tcp_fconnect(struct socket *so)
|
int tcp_fconnect(struct socket *so, unsigned short af)
|
||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
|
|
||||||
DEBUG_CALL("tcp_fconnect");
|
DEBUG_CALL("tcp_fconnect");
|
||||||
DEBUG_ARG("so = %p", so);
|
DEBUG_ARG("so = %p", so);
|
||||||
|
|
||||||
if( (ret = so->s = qemu_socket(AF_INET,SOCK_STREAM,0)) >= 0) {
|
ret = so->s = qemu_socket(af, SOCK_STREAM, 0);
|
||||||
|
if (ret >= 0) {
|
||||||
int opt, s=so->s;
|
int opt, s=so->s;
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr_storage addr;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user