| Index: runtime/bin/socket.cc
|
| diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc
|
| index dcacf6ac34b1bb42783b03a8e1978a324dbdf84a..29b0ec7cd3e086274bfcd8a473c7a5e026ddc040 100644
|
| --- a/runtime/bin/socket.cc
|
| +++ b/runtime/bin/socket.cc
|
| @@ -57,6 +57,25 @@ void FUNCTION_NAME(Socket_CreateConnect)(Dart_NativeArguments args) {
|
| }
|
|
|
|
|
| +void FUNCTION_NAME(Socket_CreateBindConnect)(Dart_NativeArguments args) {
|
| + RawAddr addr;
|
| + SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 1), &addr);
|
| + Dart_Handle port_arg = Dart_GetNativeArgument(args, 2);
|
| + int64_t port = DartUtils::GetInt64ValueCheckRange(port_arg, 0, 65535);
|
| + RawAddr sourceAddr;
|
| + SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 3), &sourceAddr);
|
| + intptr_t socket = Socket::CreateBindConnect(
|
| + addr, static_cast<intptr_t>(port), sourceAddr);
|
| + OSError error;
|
| + if (socket >= 0) {
|
| + Socket::SetSocketIdNativeField(Dart_GetNativeArgument(args, 0), socket);
|
| + Dart_SetReturnValue(args, Dart_True());
|
| + } else {
|
| + Dart_SetReturnValue(args, DartUtils::NewDartOSError(&error));
|
| + }
|
| +}
|
| +
|
| +
|
| void FUNCTION_NAME(Socket_CreateBindDatagram)(Dart_NativeArguments args) {
|
| RawAddr addr;
|
| SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 1), &addr);
|
|
|