]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
The network backends now retry on more error conditions (Issue #5123)
authorMichael Sweet <michael.r.sweet@gmail.com>
Thu, 5 Oct 2017 19:04:19 +0000 (15:04 -0400)
committerMichael Sweet <michael.r.sweet@gmail.com>
Thu, 5 Oct 2017 19:04:19 +0000 (15:04 -0400)
CHANGES.md
backend/ipp.c
backend/lpd.c
backend/socket.c

index 1bdf177b22aad6e34c7c568bac15ed079ad1c118..19947a2efc199c34d844cf020ac0aaa10c13d802 100644 (file)
@@ -44,6 +44,7 @@ CHANGES IN CUPS V2.2.5
   directive in `cups-files.conf` to the list of deprecated configuration
   directives (Issue #5117)
 - Added USB quirk rule for HP LaserJet 1160 printer (Issue #5121)
+- The network backends now retry on more error conditions (Issue #5123)
 - `httpAddrConnect` leaked sockets in certain circumstances, causing some
   printers to hang (rdar://31965686)
 - Fixed an issue with Chinese localizations on macOS (rdar://32419311)
index 685d4d9dff602b55332bfba57262b043ed8cdfc7..588ad995ed572e7361dc62b31976a918f7076395 100644 (file)
@@ -743,8 +743,7 @@ main(int  argc,                             /* I - Number of command-line args */
 
       fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
 
-      if (errno == ECONNREFUSED || errno == EHOSTDOWN ||
-          errno == EHOSTUNREACH)
+      if (errno == ECONNREFUSED || errno == EHOSTDOWN || errno == EHOSTUNREACH || errno == ETIMEDOUT || errno == ENOTCONN)
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
@@ -763,13 +762,13 @@ main(int  argc,                           /* I - Number of command-line args */
              break;
 
          case EHOSTUNREACH :
+         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is unreachable at this "
                                     "time."));
              break;
 
          case ECONNREFUSED :
-         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is in use."));
              break;
index 835f9eaeeeeb82fc4efc38d775544c6e61bd0cd2..4325b7c78898db975ac34fbf1fbaaaea1ffdb55e 100644 (file)
@@ -867,8 +867,7 @@ lpd_queue(const char      *hostname,        /* I - Host to connect to */
 
       fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(error));
 
-      if (error == ECONNREFUSED || error == EHOSTDOWN ||
-          error == EHOSTUNREACH)
+      if (errno == ECONNREFUSED || errno == EHOSTDOWN || errno == EHOSTUNREACH || errno == ETIMEDOUT || errno == ENOTCONN)
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
@@ -886,13 +885,13 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
              break;
 
          case EHOSTUNREACH :
+         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is unreachable at "
                                     "this time."));
              break;
 
          case ECONNREFUSED :
-         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is in use."));
              break;
index 7fc0880f16fa8b3d25bd1be2d96ae0c1c1d5a05b..c16a1a097d2976d1e914158c936a71034d49f103 100644 (file)
@@ -330,8 +330,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
       fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(error));
 
-      if (error == ECONNREFUSED || error == EHOSTDOWN ||
-          error == EHOSTUNREACH)
+      if (errno == ECONNREFUSED || errno == EHOSTDOWN || errno == EHOSTUNREACH || errno == ETIMEDOUT || errno == ENOTCONN)
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
@@ -349,13 +348,13 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
              break;
 
          case EHOSTUNREACH :
+         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is unreachable at this "
                                     "time."));
              break;
 
          case ECONNREFUSED :
-         default :
              _cupsLangPrintFilter(stderr, "WARNING",
                                   _("The printer is in use."));
              break;