--- 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 )
