Index: src/platform-macos.cc |
=================================================================== |
--- src/platform-macos.cc (revision 1531) |
+++ src/platform-macos.cc (working copy) |
@@ -599,14 +599,8 @@ |
} |
explicit MacOSSocket(int socket): socket_(socket) { } |
+ virtual ~MacOSSocket() { Close(); } |
- virtual ~MacOSSocket() { |
- if (IsValid()) { |
- // Close socket. |
- close(socket_); |
- } |
- } |
- |
// Server initialization. |
bool Bind(const int port); |
bool Listen(int backlog) const; |
@@ -615,6 +609,9 @@ |
// Client initialization. |
bool Connect(const char* host, const char* port); |
+ // Close. |
+ bool Close(); |
+ |
// Data Transimission |
int Send(const char* data, int len) const; |
int Receive(char* data, int len) const; |
@@ -696,6 +693,17 @@ |
} |
+bool MacOSSocket::Close() { |
+ if (IsValid()) { |
+ // Close socket. |
+ int status = close(socket_); |
+ socket_ = -1; |
+ return status == 0; |
+ } |
+ return true; |
+} |
+ |
+ |
int MacOSSocket::Send(const char* data, int len) const { |
int status = send(socket_, data, len, 0); |
return status; |