[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kdecore/network
From:       Thiago Macieira <thiago.macieira () kdemail ! net>
Date:       2005-01-13 21:31:28
Message-ID: 20050113213128.668851CF8A () office ! kde ! org
[Download RAW message or body]

CVS commit by thiago: 

Adding one more error code, indicating remotely disconnection.
Also emit gotError when getting an error in KBufferedSocket buffer-handling
routines.

BUG:96946


  M +7 -3      kbufferedsocket.cpp   1.10
  M +5 -0      ksocketbase.cpp   1.10
  M +3 -1      ksocketbase.h   1.20
  M +4 -0      ksocketdevice.cpp   1.22


--- kdelibs/kdecore/network/kbufferedsocket.cpp  #1.9:1.10
@@ -1,4 +1,4 @@
 /*  -*- C++ -*-
- *  Copyright (C) 2003 Thiago Macieira <thiago.macieira@kdemail.net>
+ *  Copyright (C) 2003,2004 Thiago Macieira <thiago.macieira@kdemail.net>
  *
  *
@@ -320,4 +320,5 @@ void KBufferedSocket::slotReadActivity()
               copyError();
               mutex()->unlock();
+              emit gotError(error());
               closeNow();       // emits closed
               return;
@@ -327,6 +328,7 @@ void KBufferedSocket::slotReadActivity()
         {
           // remotely closed
-          resetError();
+          setError(IO_ReadError, RemotelyDisconnected);
           mutex()->unlock();
+          emit gotError(error());
           closeNow();           // emits closed
           return;
@@ -366,4 +368,5 @@ void KBufferedSocket::slotWriteActivity(
               copyError();
               mutex()->unlock();
+              emit gotError(error());
               closeNow();
               return;
@@ -373,6 +376,7 @@ void KBufferedSocket::slotWriteActivity(
         {
           // remotely closed
-          resetError();
+          setError(IO_ReadError, RemotelyDisconnected);
           mutex()->unlock();
+          emit gotError(error());
           closeNow();
           return;

--- kdelibs/kdecore/network/ksocketbase.cpp  #1.9:1.10
@@ -243,4 +243,9 @@ QString KSocketBase::errorString(KSocket
       break;
 
+    case RemotelyDisconnected:
+      reason = i18n("Socket error code RemotelyDisconnected",
+                    "remote host closed connection");
+      break;
+
     default:
       reason = QString::null;

--- kdelibs/kdecore/network/ksocketbase.h  #1.19:1.20
@@ -146,4 +146,5 @@ public:
    * - Timeout: a timed operation timed out
    * - UnknownError: an unknown/unexpected error has happened
+   * - RemotelyDisconnected: when a connection is disconnected by the other end (since 3.4)
    *
    * @sa error, errorString
@@ -167,5 +168,6 @@ public:
       NotSupported,
       Timeout,
-      UnknownError
+      UnknownError,
+      RemotelyDisconnected
     };
 

--- kdelibs/kdecore/network/ksocketdevice.cpp  #1.21:1.22
@@ -402,4 +402,6 @@ static int do_read_common(int sockfd, ch
         return KSocketDevice::UnknownError;
     }
+  if (retval == 0)
+    return KSocketDevice::RemotelyDisconnected;
 
   if (from)
@@ -515,4 +517,6 @@ Q_LONG KSocketDevice::writeBlock(const c
       return -1;                // nothing written
     }
+  else if (retval == 0)
+    setError(IO_WriteError, RemotelyDisconnected);
 
   return retval;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic