--- http_load.c.bak Fri Jul 15 23:49:26 2005 +++ http_load.c Fri Jul 15 23:49:33 2005 @@ -655,11 +655,11 @@ (void) memset( &hints, 0, sizeof(hints) ); hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; - (void) snprintf( portstr, sizeof(portstr), "%d", (int) urls[url_num].port ); - if ( (gaierr = getaddrinfo( urls[url_num].hostname, portstr, &hints, &ai )) != 0 ) + (void) snprintf( portstr, sizeof(portstr), "%d", (int) port ); + if ( (gaierr = getaddrinfo( hostname, portstr, &hints, &ai )) != 0 ) { (void) fprintf( - stderr, "%s: getaddrinfo %s - %s\n", argv0, urls[url_num].hostname, + stderr, "%s: getaddrinfo %s - %s\n", argv0, hostname, gai_strerror( gaierr ) ); exit( 1 ); } @@ -724,15 +724,15 @@ (void) fprintf( stderr, "%s: no valid address found for host %s\n", argv0, - urls[url_num].hostname ); + hostname ); exit( 1 ); #else /* USE_IPV6 */ - he = gethostbyname( urls[url_num].hostname ); + he = gethostbyname( hostname ); if ( he == (struct hostent*) 0 ) { - (void) fprintf( stderr, "%s: unknown host - %s\n", argv0, urls[url_num].hostname ); + (void) fprintf( stderr, "%s: unknown host - %s\n", argv0, hostname ); exit( 1 ); } urls[url_num].sock_family = urls[url_num].sa.sin_family = he->h_addrtype; @@ -825,6 +825,7 @@ ClientData client_data; int flags; int sip_num; + int rcv_bytes, error; /* Start filling in the connection slot. */ connections[cnum].url_num = url_num; @@ -863,6 +864,16 @@ perror( urls[url_num].url_str ); (void) close( connections[cnum].conn_fd ); return; + } + + /* Shrink the recieve window to better imitate a slow connection. */ + if ( do_throttle ) + { + rcv_bytes = 2048; + error = setsockopt(connections[cnum].conn_fd, SOL_SOCKET, SO_RCVBUF, + (void *)&rcv_bytes, sizeof(rcv_bytes)); + if (error) + perror("Setsockopt problem:"); } if ( num_sips > 0 )