diff -urwNp iperf-2.0.5-original/src/Client.cpp iperf-2.0.5/src/Client.cpp --- iperf-2.0.5-original/src/Client.cpp 2011-03-31 11:41:38.000000000 +0600 +++ iperf-2.0.5/src/Client.cpp 2011-03-31 11:43:32.000000000 +0600 @@ -403,11 +403,15 @@ void Client::Connect( ) { SockAddr_localAddr( mSettings ); + + // XXX: escape port conflict (boco) + mSettings->local.sin_port = 0; + if ( mSettings->mLocalhost != NULL ) { // bind socket to local address rc = bind( mSettings->mSock, (sockaddr*) &mSettings->local, SockAddr_get_sizeof_sockaddr( &mSettings->local ) ); - WARN_errno( rc == SOCKET_ERROR, "bind" ); + FAIL_errno( rc == SOCKET_ERROR, "bind", mSettings ); } // connect socket