]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Use ssize_t for the result of send() to DS in dnsdist UDP thread 3030/head
authorRemi Gacogne <rgacogne-github@coredump.fr>
Sun, 13 Dec 2015 20:40:54 +0000 (21:40 +0100)
committerRemi Gacogne <rgacogne-github@coredump.fr>
Sun, 13 Dec 2015 20:40:54 +0000 (21:40 +0100)
Otherwise we cannot detect error sending query to DS.
Remove useless assert() since len has been changed to uint16t_t.

pdns/dnsdist-ecs.cc
pdns/dnsdist.cc

index 91ac2a9924ba19354e6de32678ecf2f8de776af2..0f3bd9db30bfec0e2149ea453cd40a4f788ebf1e 100644 (file)
@@ -337,7 +337,6 @@ void handleEDNSClientSubnet(char * const packet, const size_t packetSize, const
 {
   assert(packet != NULL);
   assert(len != NULL);
-  assert(*len >= 0);
   assert(consumed <= (size_t) *len);
   assert(ednsAdded != NULL);
   char * optRRStart = NULL;
index 69ef44e8ab6a5fbfc5d752b17676c71802349e29..813e2a7902eaa231704439b38c11889bfca8269d 100644 (file)
@@ -480,7 +480,7 @@ try
 
   for(;;) {
     try {
-      int ret = recvmsg(cs->udpFD, &msgh, 0);
+      ssize_t ret = recvmsg(cs->udpFD, &msgh, 0);
 
       cs->queries++;
       g_stats.queries++;
@@ -638,14 +638,14 @@ try
       }
       
       if (largerQuery.empty()) {
-        len = send(ss->fd, packet, len, 0);
+        ret = send(ss->fd, packet, len, 0);
       }
       else {
-        len = send(ss->fd, largerQuery.c_str(), largerQuery.size(), 0);
+        ret = send(ss->fd, largerQuery.c_str(), largerQuery.size(), 0);
         largerQuery.clear();
       }
       
-      if(len < 0) {
+      if(ret < 0) {
        ss->sendErrors++;
        g_stats.downstreamSendErrors++;
       }