Mike Goslin 25 лет назад
Родитель
Сommit
0bd04fc0dc
1 измененных файлов с 12 добавлено и 5 удалено
  1. 12 5
      panda/src/downloader/downloader.cxx

+ 12 - 5
panda/src/downloader/downloader.cxx

@@ -389,6 +389,7 @@ safe_send(int socket, const char *data, int length, long timeout) {
 ////////////////////////////////////////////////////////////////////
 int Downloader::
 safe_receive(int socket, char *data, int length, long timeout) {
+  char *data_ptr = data;
   if (length == 0) {
     downloader_cat.error()
       << "Downloader::safe_receive() - requested 0 length receive!" << endl;
@@ -413,12 +414,18 @@ safe_receive(int socket, char *data, int length, long timeout) {
 	<< "Downloader::safe_receive() - error: " << strerror(errno) << endl;
       return bytes;
     }
-    int ret = recv(socket, data, length, 0);
-    if (ret > 0)
+    int ret = recv(socket, data_ptr, length - bytes, 0);
+    if (ret > 0) {
+      downloader_cat.debug()
+	<< "Downloader::safe_receive() - recv() got: " << ret << " bytes"
+	<< endl;
       bytes += ret;
-    else if (ret == 0)
-      return 0;
-    else {
+      data_ptr += ret;
+    } else if (ret == 0) {
+      downloader_cat.debug()
+	<< "Downloader::safe_receive() - End of file" << endl;
+      return bytes;
+    } else {
       downloader_cat.error()
 	<< "Downloader::safe_receive() - error: " << strerror(errno) << endl;
       return bytes;