Chromium Code Reviews| Index: ipc/ipc_channel_posix.h |
| diff --git a/ipc/ipc_channel_posix.h b/ipc/ipc_channel_posix.h |
| index 645a1303713116f188b037c5f537bee272444607..0b884f428a111f8d50a17fd708d12f51c1ea5f8d 100644 |
| --- a/ipc/ipc_channel_posix.h |
| +++ b/ipc/ipc_channel_posix.h |
| @@ -10,6 +10,7 @@ |
| #include <sys/socket.h> // for CMSG macros |
| #include <queue> |
| +#include <set> |
| #include <string> |
| #include <vector> |
| @@ -80,6 +81,8 @@ class Channel::ChannelImpl : public internal::ChannelReader, |
| void ClosePipeOnError(); |
| int GetHelloMessageProcId(); |
| void QueueHelloMessage(); |
| + void CloseFileDescriptors(Message* msg); |
| + void QueueCloseFDMessage(int fd, int hops); |
| // ChannelReader implementation. |
| virtual ReadState ReadData(char* buffer, |
| @@ -87,7 +90,7 @@ class Channel::ChannelImpl : public internal::ChannelReader, |
| int* bytes_read) OVERRIDE; |
| virtual bool WillDispatchInputMessage(Message* msg) OVERRIDE; |
| virtual bool DidEmptyInputBuffers() OVERRIDE; |
| - virtual void HandleHelloMessage(const Message& msg) OVERRIDE; |
| + virtual void HandleInternalMessage(const Message& msg) OVERRIDE; |
| #if defined(IPC_USES_READWRITE) |
| // Reads the next message from the fd_pipe_ and appends them to the |
| @@ -184,6 +187,13 @@ class Channel::ChannelImpl : public internal::ChannelReader, |
| // implementation! |
| std::vector<int> input_fds_; |
| +#if defined(OS_MACOSX) |
| + // On OSX, sent FDs must not be closed until we get an ack. |
| + // keep track of sent FDs here to make sure the remote is not |
| + // trying to bamboozle us. |
|
Scott Hess - ex-Googler
2013/10/09 20:18:33
Capitalize Keep.
hubbe
2013/10/09 21:34:12
Done.
|
| + std::set<int> fds_to_close_; |
| +#endif |
| + |
| // True if we are responsible for unlinking the unix domain socket file. |
| bool must_unlink_; |