Index: base/sync_socket_win.cc |
diff --git a/base/sync_socket_win.cc b/base/sync_socket_win.cc |
index 26e76ec2738e6629fbf4b0c41cc61ac0b7e7d6ec..3c40ebaa6f1a9a8a296909153aeabdabb384f569 100644 |
--- a/base/sync_socket_win.cc |
+++ b/base/sync_socket_win.cc |
@@ -207,6 +207,23 @@ bool SyncSocket::CreatePair(SyncSocket* socket_a, SyncSocket* socket_b) { |
return CreatePairImpl(&socket_a->handle_, &socket_b->handle_, false); |
} |
+// static |
+SyncSocket::Handle SyncSocket::UnwrapHandle( |
+ const TransitDescriptor& descriptor) { |
+ return descriptor; |
+} |
+ |
+bool SyncSocket::PrepareTransitDescriptor(ProcessHandle peer_process_handle, |
+ TransitDescriptor* descriptor) { |
+ DCHECK(descriptor); |
+ if (!::DuplicateHandle(GetCurrentProcess(), handle(), peer_process_handle, |
+ descriptor, 0, FALSE, DUPLICATE_SAME_ACCESS)) { |
+ DPLOG(ERROR) << "Cannot duplicate socket handle for peer process."; |
+ return false; |
+ } |
+ return true; |
+} |
+ |
bool SyncSocket::Close() { |
if (handle_ == kInvalidHandle) |
return true; |