Stupid typo fix
[senf.git] / Socket / ClientSocketHandle.ct
index 0c6b61b..33ef74b 100644 (file)
@@ -20,7 +20,9 @@
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-// Definition of non-inline template functions
+/** \file
+    \brief ClientSocketHandle non-inline template implementation
+ */
 
 //#include "ClientSocketHandle.ih"
 
@@ -98,8 +100,14 @@ prefix_ unsigned senf::ClientSocketHandle<Policy>::available()
 {
     unsigned nread = this->protocol().available();
     if (nread == 0 && this->blocking()) {
-            this->waitReadable();
-            nread = this->protocol().available();
+       // We have to block explicitly here so we can return the
+       // number of bytes available explicitly. If no more date can
+       // be expected to arive (i.e. the other end has closed the
+       // connection), the socket will always be in the readable
+       // state. This is the only case when available() will return
+       // 0.
+       this->waitReadable();
+       nread = this->protocol().available();
     }
     return nread;
 }