diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2004-06-17 22:48:11 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2004-06-17 22:48:11 +0000 |
| commit | 9535efc00de36129762534223a2f5782cc5fe472 (patch) | |
| tree | 743d1903dca8bb885b1a5cafc69c5ea6ff190d62 /sys/netsmb | |
| parent | b2c082c98b71834582bad5480fdea168a89691c5 (diff) | |
Notes
Diffstat (limited to 'sys/netsmb')
| -rw-r--r-- | sys/netsmb/smb_trantcp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netsmb/smb_trantcp.c b/sys/netsmb/smb_trantcp.c index 5972dee7350b8..5029ad5a1ba64 100644 --- a/sys/netsmb/smb_trantcp.c +++ b/sys/netsmb/smb_trantcp.c @@ -238,7 +238,9 @@ nb_connect_in(struct nbpcb *nbp, struct sockaddr_in *to, struct thread *td) nbp->nbp_tso = so; so->so_upcallarg = (caddr_t)nbp; so->so_upcall = nb_upcall; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags |= SB_UPCALL; + SOCKBUF_UNLOCK(&so->so_rcv); so->so_rcv.sb_timeo = (5 * hz); so->so_snd.sb_timeo = (5 * hz); error = soreserve(so, nbp->nbp_sndbuf, nbp->nbp_rcvbuf); @@ -246,8 +248,12 @@ nb_connect_in(struct nbpcb *nbp, struct sockaddr_in *to, struct thread *td) goto bad; nb_setsockopt_int(so, SOL_SOCKET, SO_KEEPALIVE, 1); nb_setsockopt_int(so, IPPROTO_TCP, TCP_NODELAY, 1); + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags &= ~SB_NOINTR; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags &= ~SB_NOINTR; + SOCKBUF_UNLOCK(&so->so_snd); error = soconnect(so, (struct sockaddr*)to, td); if (error) goto bad; |
