提交 4ef7b894 编写于 作者: M MORITA Kazutaka 提交者: Stefan Hajnoczi

slirp/tcp_subr.c: fix coding style in tcp_connect

Fix coding style in tcp_connect before the next patch.
Signed-off-by: NMORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
上级 2c20e711
...@@ -384,83 +384,87 @@ int tcp_fconnect(struct socket *so) ...@@ -384,83 +384,87 @@ int tcp_fconnect(struct socket *so)
* the time it gets to accept(), so... We simply accept * the time it gets to accept(), so... We simply accept
* here and SYN the local-host. * here and SYN the local-host.
*/ */
void void tcp_connect(struct socket *inso)
tcp_connect(struct socket *inso)
{ {
Slirp *slirp = inso->slirp; Slirp *slirp = inso->slirp;
struct socket *so; struct socket *so;
struct sockaddr_in addr; struct sockaddr_in addr;
socklen_t addrlen = sizeof(struct sockaddr_in); socklen_t addrlen = sizeof(struct sockaddr_in);
struct tcpcb *tp; struct tcpcb *tp;
int s, opt; int s, opt;
DEBUG_CALL("tcp_connect"); DEBUG_CALL("tcp_connect");
DEBUG_ARG("inso = %lx", (long)inso); DEBUG_ARG("inso = %lx", (long)inso);
/* /*
* If it's an SS_ACCEPTONCE socket, no need to socreate() * If it's an SS_ACCEPTONCE socket, no need to socreate()
* another socket, just use the accept() socket. * another socket, just use the accept() socket.
*/ */
if (inso->so_state & SS_FACCEPTONCE) { if (inso->so_state & SS_FACCEPTONCE) {
/* FACCEPTONCE already have a tcpcb */ /* FACCEPTONCE already have a tcpcb */
so = inso; so = inso;
} else { } else {
if ((so = socreate(slirp)) == NULL) { so = socreate(slirp);
/* If it failed, get rid of the pending connection */ if (so == NULL) {
closesocket(accept(inso->s,(struct sockaddr *)&addr,&addrlen)); /* If it failed, get rid of the pending connection */
return; closesocket(accept(inso->s, (struct sockaddr *)&addr, &addrlen));
} return;
if (tcp_attach(so) < 0) { }
free(so); /* NOT sofree */ if (tcp_attach(so) < 0) {
return; free(so); /* NOT sofree */
} return;
so->so_laddr = inso->so_laddr; }
so->so_lport = inso->so_lport; so->so_laddr = inso->so_laddr;
} so->so_lport = inso->so_lport;
}
(void) tcp_mss(sototcpcb(so), 0); tcp_mss(sototcpcb(so), 0);
if ((s = accept(inso->s,(struct sockaddr *)&addr,&addrlen)) < 0) { s = accept(inso->s, (struct sockaddr *)&addr, &addrlen);
tcp_close(sototcpcb(so)); /* This will sofree() as well */ if (s < 0) {
return; tcp_close(sototcpcb(so)); /* This will sofree() as well */
} return;
socket_set_nonblock(s); }
opt = 1; socket_set_nonblock(s);
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)); opt = 1;
opt = 1; setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); opt = 1;
opt = 1; setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *)&opt,sizeof(int)); opt = 1;
setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char *)&opt, sizeof(int));
so->so_fport = addr.sin_port;
so->so_faddr = addr.sin_addr; so->so_fport = addr.sin_port;
/* Translate connections from localhost to the real hostname */ so->so_faddr = addr.sin_addr;
if (so->so_faddr.s_addr == 0 || /* Translate connections from localhost to the real hostname */
(so->so_faddr.s_addr & loopback_mask) == if (so->so_faddr.s_addr == 0 ||
(loopback_addr.s_addr & loopback_mask)) { (so->so_faddr.s_addr & loopback_mask) ==
so->so_faddr = slirp->vhost_addr; (loopback_addr.s_addr & loopback_mask)) {
} so->so_faddr = slirp->vhost_addr;
}
/* Close the accept() socket, set right state */ /* Close the accept() socket, set right state */
if (inso->so_state & SS_FACCEPTONCE) { if (inso->so_state & SS_FACCEPTONCE) {
closesocket(so->s); /* If we only accept once, close the accept() socket */ /* If we only accept once, close the accept() socket */
so->so_state = SS_NOFDREF; /* Don't select it yet, even though we have an FD */ closesocket(so->s);
/* if it's not FACCEPTONCE, it's already NOFDREF */
} /* Don't select it yet, even though we have an FD */
so->s = s; /* if it's not FACCEPTONCE, it's already NOFDREF */
so->so_state |= SS_INCOMING; so->so_state = SS_NOFDREF;
}
so->s = s;
so->so_state |= SS_INCOMING;
so->so_iptos = tcp_tos(so); so->so_iptos = tcp_tos(so);
tp = sototcpcb(so); tp = sototcpcb(so);
tcp_template(tp); tcp_template(tp);
tp->t_state = TCPS_SYN_SENT; tp->t_state = TCPS_SYN_SENT;
tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT;
tp->iss = slirp->tcp_iss; tp->iss = slirp->tcp_iss;
slirp->tcp_iss += TCP_ISSINCR/2; slirp->tcp_iss += TCP_ISSINCR/2;
tcp_sendseqinit(tp); tcp_sendseqinit(tp);
tcp_output(tp); tcp_output(tp);
} }
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册