Date: Sun, 14 Jul 2002 10:49:56 -0400 (EDT) From: David Miller <dmiller@sparks.net> To: hackers@freebsd.org Subject: setsockopt() weirdness Message-ID: <Pine.BSF.4.21.0207141037280.13872-100000@search.sparks.net>
next in thread | raw e-mail | index | archive | help
I'm probably doing something basic wrong, but I'm getting a very
inconsistent response when using setsockopt to set the SO_RCVTIMEO to
seven seconds or more.
The program included works on a 4.3R system, a 4.4R and a 4.6stable system
SUPd June 24. The systems are a 486, 800 MHz P-III, and 1.1 GHz t-bird
respectively.
The program fails to work on a 1 GHz t-bird with 4.6S SUPd last night, and
an XP1700+ SUP'd several days ago.
"Works" is defined as:
bash-2.05$ ./x
Successfully set timeout to 6
Successfully set timeout to 7
"Not works" is defined as:
alex:c$ ./x
Successfully set timeout to 6
Error 33 trying to set socket timeout to 7
Clue greatly appreciated.
--- David
The program:
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/errno.h>
#include <netinet/in.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/time.h>
extern int errno;
main() {
int sock, timeout ;
struct itimerval s_timeout;
if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
printf("Couldn't get a socket, err %d\n",sock);
exit(-1);
}
s_timeout.it_interval.tv_usec = 0;
s_timeout.it_value.tv_usec = 0;
s_timeout.it_value.tv_sec = 0;
s_timeout.it_interval.tv_sec = 6;
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
&s_timeout, sizeof(s_timeout))) {
printf("Error %d trying to set socket timeout\n",errno);
}
else {
printf("Successfully set timeout to %d\n",
s_timeout.it_interval.tv_sec);
}
s_timeout.it_interval.tv_sec = 7;
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
&s_timeout, sizeof(s_timeout))) {
printf("Error %d trying to set socket timeout to %d\n",
errno, s_timeout.it_interval.tv_sec);
}
else {
printf("Successfully set timeout to %d\n",
s_timeout.it_interval.tv_sec);
}
}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0207141037280.13872-100000>
