Chromium Code Reviews| Index: runtime/bin/socket.cc |
| diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc |
| index d9c20e7439305bfd0057e3b40d279b80d441678b..d32710e824c282f75ad0e98a5e46facf74829e99 100644 |
| --- a/runtime/bin/socket.cc |
| +++ b/runtime/bin/socket.cc |
| @@ -445,6 +445,36 @@ void FUNCTION_NAME(Socket_NewServicePort)(Dart_NativeArguments args) { |
| } |
| +void FUNCTION_NAME(Socket_SetOption)(Dart_NativeArguments args) { |
| + Dart_EnterScope(); |
| + Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
| + intptr_t socket = 0; |
| + bool result = false; |
| + Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
|
Søren Gjesse
2013/03/14 12:39:59
Use
if (Dart_IsError(err)) Dart_PropagateError(er
Anders Johnsen
2013/03/14 12:45:05
Done.
|
| + if (!Dart_IsError(err)) { |
| + Dart_Handle option_obj = Dart_GetNativeArgument(args, 1); |
| + int64_t option; |
| + err = Dart_IntegerToInt64(option_obj, &option); |
|
Søren Gjesse
2013/03/14 12:39:59
And here.
Anders Johnsen
2013/03/14 12:45:05
Done.
|
| + if (!Dart_IsError(err)) { |
| + Dart_Handle enabled_obj = Dart_GetNativeArgument(args, 2); |
| + bool enabled; |
| + err = Dart_BooleanValue(enabled_obj, &enabled); |
| + if (!Dart_IsError(err)) { |
| + switch (option) { |
| + case 0: // TCP_NODELAY. |
| + result = Socket::SetNoDelay(socket, enabled); |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + } |
| + } |
| + Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| + Dart_ExitScope(); |
| +} |
| + |
| + |
| Dart_Handle Socket::SetSocketIdNativeField(Dart_Handle socket, intptr_t id) { |
| return Dart_SetNativeInstanceField(socket, kSocketIdNativeField, id); |
| } |