It seems to me that the `SetDeadline()` calls should be happening immediately before this `clientConn.Do()` call. The first time through it's not so bad, but for subsequent requests the deadline is set before returning from this function. Theoretically we could end up burning through our timeout interval before the next call to `Index()` even happens.