]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: Handle "cannot happen" Async results by raising an exception
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 3 Dec 2021 15:51:50 +0000 (16:51 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 3 Dec 2021 15:51:50 +0000 (16:51 +0100)
pdns/pdns_recursor.cc

index 3d4315d06a2a603f8854068d8b9716d1702a47cb..3ae4df679d364cee1d346ba9abee62693ac185ae 100644 (file)
@@ -497,6 +497,9 @@ LWResult::Result arecvtcp(PacketBuffer& data, const size_t len, shared_ptr<TCPIO
       break;
     case IOState::NeedWrite:
       break;
+    case IOState::Async:
+      throw std::runtime_error("TLS async mode not supported");
+      break;
     }
   }
   catch (const std::exception& e) {
@@ -4418,6 +4421,9 @@ static void TCPIOHandlerStateChange(IOState oldstate, IOState newstate, std::sha
       TCPLOG(pid->tcpsock, "Done -> removeReadFD" << endl);
       t_fdm->removeReadFD(pid->tcpsock);
       break;
+    case IOState::Async:
+      throw std::runtime_error("TLS async mode not supported");
+      break;
     }
     break;
 
@@ -4434,6 +4440,9 @@ static void TCPIOHandlerStateChange(IOState oldstate, IOState newstate, std::sha
       TCPLOG(pid->tcpsock, "Done -> removeWriteFD" << endl);
       t_fdm->removeWriteFD(pid->tcpsock);
       break;
+    case IOState::Async:
+      throw std::runtime_error("TLS async mode not supported");
+      break;
     }
     break;
 
@@ -4449,8 +4458,15 @@ static void TCPIOHandlerStateChange(IOState oldstate, IOState newstate, std::sha
       break;
     case IOState::Done:
       break;
+    case IOState::Async:
+      throw std::runtime_error("TLS async mode not supported");
+      break;
     }
     break;
+
+  case IOState::Async:
+    throw std::runtime_error("TLS async mode not supported");
+    break;
   }
 
 }
@@ -4489,6 +4505,9 @@ static void TCPIOHandlerIO(int fd, FDMultiplexer::funcparam_t& var)
         break;
       case IOState::NeedWrite:
         break;
+      case IOState::Async:
+        throw std::runtime_error("TLS async mode not supported");
+        break;
       }
     }
     catch (const std::exception& e) {
@@ -4520,6 +4539,9 @@ static void TCPIOHandlerIO(int fd, FDMultiplexer::funcparam_t& var)
       case IOState::NeedWrite:
         TCPLOG(pid->tcpsock, "tryWrite: NeedWrite" << endl);
         break;
+      case IOState::Async:
+        throw std::runtime_error("TLS async mode not supported");
+        break;
       }
     }
     catch (const std::exception& e) {