Subject: sb_timeo
To: None <tech-net@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-net
Date: 06/28/2004 08:04:29
hi,

does anyone object if i bump sb_timeo to int?
with short sb_timeo and hz=1024, maximum SO_SND/RCVTIMEO is
about 31 seconds, which seems too short to me.

YAMAMOTO Takashi


Index: kern/uipc_socket.c
===================================================================
--- kern/uipc_socket.c	(revision 774)
+++ kern/uipc_socket.c	(revision 775)
@@ -1478,14 +1478,14 @@ sosetopt(struct socket *so, int level, i
 		case SO_RCVTIMEO:
 		    {
 			struct timeval *tv;
-			short val;
+			int val;
 
 			if (m == NULL || m->m_len < sizeof(*tv)) {
 				error = EINVAL;
 				goto bad;
 			}
 			tv = mtod(m, struct timeval *);
-			if (tv->tv_sec > (SHRT_MAX - tv->tv_usec / tick) / hz) {
+			if (tv->tv_sec > (INT_MAX - tv->tv_usec / tick) / hz) {
 				error = EDOM;
 				goto bad;
 			}
Index: sys/socketvar.h
===================================================================
--- sys/socketvar.h	(revision 774)
+++ sys/socketvar.h	(revision 775)
@@ -61,8 +61,8 @@ struct sockbuf {
 	struct mbuf *sb_mbtail;		/* the last mbuf in the chain */
 	struct mbuf *sb_lastrecord;	/* first mbuf of last record in
 					   socket buffer */
+	int	sb_timeo;		/* timeout for read/write */
 	short	sb_flags;		/* flags, see below */
-	short	sb_timeo;		/* timeout for read/write */
 };
 
 #ifndef SB_MAX