Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Unified Diff: runtime/bin/socket.cc

Issue 908873002: Add support to specify the source address for socket connect (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Added dart2js patch file Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « runtime/bin/socket.h ('k') | runtime/bin/socket_android.cc » ('j') | sdk/lib/io/socket.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698