X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FSocket.hh;h=17e841cca87ba4170b82637fe0dd53aecb349581;hp=da8132acf62657d9cd688d03e09dd0f165ce487d;hb=2f239b9ba2a556a5ca810cfffc60552a56a4fe86;hpb=3fd6f206f0e64122b7cb289907a1a780b6ed2dc9 diff --git a/src/Moof/Socket.hh b/src/Moof/Socket.hh index da8132a..17e841c 100644 --- a/src/Moof/Socket.hh +++ b/src/Moof/Socket.hh @@ -111,7 +111,7 @@ public: mType(addr->ai_socktype) { memcpy(&mAddr.sa, addr->ai_addr, addr->ai_addrlen); - getNameAndService(mService, mName); + getNameAndService(mName, mService); } /** @@ -127,7 +127,7 @@ public: mType(type) { memcpy(&mAddr.sa, addr, size); - getNameAndService(mService, mName); + getNameAndService(mName, mService); } @@ -729,11 +729,13 @@ public: * \param flags The send options. * \return The number of bytes written. */ - ssize_t write(const void* bytes, size_t size, - const SocketAddress& address, int flags = 0) + ssize_t write(const void* bytes, + size_t size, + const SocketAddress& address, + int flags = 0) { return sendto(mImpl.fd, bytes, size, flags, - address.address(), address.size()); + address.address(), address.size()); } /** @@ -755,8 +757,9 @@ public: * \param flags The send options. * \return The number of bytes written. */ - ssize_t write(const Packet& packet, const SocketAddress& address, - int flags = 0) + ssize_t write(const Packet& packet, + const SocketAddress& address, + int flags = 0) { return write(packet.bytes(), packet.size(), address, flags); } @@ -771,7 +774,9 @@ public: */ ssize_t read(void* bytes, size_t size, int flags = 0) { - return recv(mImpl.fd, bytes, size, flags); + ssize_t result = recv(mImpl.fd, bytes, size, flags); + if (result == 0) mImpl.isConnected = false; + return result; } /** @@ -783,8 +788,10 @@ public: * \param flags The recv options. * \return The number of bytes read. */ - ssize_t read(void* bytes, size_t size, SocketAddress& address, - int flags = 0) + ssize_t read(void* bytes, + size_t size, + SocketAddress& address, + int flags = 0) { union { @@ -799,6 +806,10 @@ public: { address = SocketAddress(&addr.sa, length, mImpl.address.type()); } + else if (result == 0) + { + mImpl.isConnected = false; + } return result; }