1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "media/cast/test/utility/net_utility.h" 6 7#include "base/basictypes.h" 8#include "net/base/net_errors.h" 9#include "net/udp/udp_socket.h" 10 11namespace media { 12namespace cast { 13namespace test { 14 15// TODO(hubbe): Move to /net/. 16net::IPEndPoint GetFreeLocalPort() { 17 net::IPAddressNumber localhost; 18 localhost.push_back(127); 19 localhost.push_back(0); 20 localhost.push_back(0); 21 localhost.push_back(1); 22 scoped_ptr<net::UDPSocket> receive_socket( 23 new net::UDPSocket(net::DatagramSocket::DEFAULT_BIND, 24 net::RandIntCallback(), 25 NULL, 26 net::NetLog::Source())); 27 receive_socket->AllowAddressReuse(); 28 CHECK_EQ(net::OK, receive_socket->Bind(net::IPEndPoint(localhost, 0))); 29 net::IPEndPoint endpoint; 30 CHECK_EQ(net::OK, receive_socket->GetLocalAddress(&endpoint)); 31 return endpoint; 32} 33 34} // namespace test 35} // namespace cast 36} // namespace media 37