Skip to content

Commit fa6c887

Browse files
committed
Fix uncommon bug where a partial message reciept is never completed, cutting communication
1 parent 801a64d commit fa6c887

File tree

4 files changed

+354
-3
lines changed

4 files changed

+354
-3
lines changed

dcc_client/dcc_client/P2PClient.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,8 @@ void P2P::ListenerThread(int update_interval)
256256

257257
remoteAddrLen = sizeof(remoteAddr);
258258

259-
if (setsockopt(localSocket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0)
260-
ERRORMSG("Failed to set socket options");
259+
//if (setsockopt(localSocket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0)
260+
// ERRORMSG("Failed to set socket options");
261261
int iResult = recvfrom(localSocket, buffer, BUFFERLENGTH, 0, (sockaddr*)&remoteAddr, &remoteAddrLen);
262262

263263
if (WalletSettingValues::verbose >= 9)
@@ -354,6 +354,7 @@ void P2P::ListenerThread(int update_interval)
354354
totalMessage = "";
355355
for (int part = 1; part <= maxSegments; part++)
356356
totalMessage += messageParts[part];
357+
pendingReceiveData = false;
357358
}
358359
else
359360
continue;
@@ -415,6 +416,7 @@ void P2P::ListenerThread(int update_interval)
415416
CONNECTED_TO_PEER = false;
416417
reqDat = -1;
417418
messageStatus = -1;
419+
pendingReceiveData = false;
418420
return;
419421
}
420422
// If the peer is requesting message received confirmation
@@ -566,8 +568,11 @@ void P2P::ListenerThread(int update_interval)
566568
std::string blockData = SplitString(totalMessage, "~")[3];
567569

568570
// Make sure this data is actually being requested; we don't want a forced download.
569-
if (reqDat != num)
571+
if (reqDat != num) {
572+
if (WalletSettingValues::verbose >= 5)
573+
console::WriteLine("\nAnswered block does not match request: " + std::to_string(reqDat) + " != " + std::to_string(num));
570574
continue;
575+
}
571576

572577
// Save block data to file
573578
try {
@@ -598,6 +603,7 @@ void P2P::ListenerThread(int update_interval)
598603
messageAttempt = 0;
599604
otherAddrStr = "";
600605
noreceipt = 0;
606+
pendingReceiveData = false;
601607
}
602608
else {
603609
noreceipt++;

dcc_client/out-linux/_deps/curl-build/libcurl-target.cmake

Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,351 @@ unset(_cmake_targets_not_defined)
667667
unset(_cmake_expected_targets)
668668

669669

670+
# Create imported target CURL::libcurl
671+
add_library(CURL::libcurl SHARED IMPORTED)
672+
673+
set_target_properties(CURL::libcurl PROPERTIES
674+
INTERFACE_INCLUDE_DIRECTORIES "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-src/include"
675+
INTERFACE_LINK_LIBRARIES "dl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
676+
)
677+
678+
# Import target "CURL::libcurl" for configuration "Release"
679+
set_property(TARGET CURL::libcurl APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
680+
set_target_properties(CURL::libcurl PROPERTIES
681+
IMPORTED_LOCATION_RELEASE "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-build/lib/libcurl.so"
682+
IMPORTED_SONAME_RELEASE "libcurl.so"
683+
)
684+
685+
# This file does not depend on other imported targets which have
686+
# been exported from the same project but in a separate export set.
687+
688+
# Commands beyond this point should not need to know the version.
689+
set(CMAKE_IMPORT_FILE_VERSION)
690+
cmake_policy(POP)
691+
# Generated by CMake
692+
693+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
694+
message(FATAL_ERROR "CMake >= 2.8.0 required")
695+
endif()
696+
if(CMAKE_VERSION VERSION_LESS "2.8.3")
697+
message(FATAL_ERROR "CMake >= 2.8.3 required")
698+
endif()
699+
cmake_policy(PUSH)
700+
cmake_policy(VERSION 2.8.3...3.23)
701+
#----------------------------------------------------------------
702+
# Generated CMake target import file.
703+
#----------------------------------------------------------------
704+
705+
# Commands may need to know the format version.
706+
set(CMAKE_IMPORT_FILE_VERSION 1)
707+
708+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
709+
set(_cmake_targets_defined "")
710+
set(_cmake_targets_not_defined "")
711+
set(_cmake_expected_targets "")
712+
foreach(_cmake_expected_target IN ITEMS CURL::libcurl)
713+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
714+
if(TARGET "${_cmake_expected_target}")
715+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
716+
else()
717+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
718+
endif()
719+
endforeach()
720+
unset(_cmake_expected_target)
721+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
722+
unset(_cmake_targets_defined)
723+
unset(_cmake_targets_not_defined)
724+
unset(_cmake_expected_targets)
725+
unset(CMAKE_IMPORT_FILE_VERSION)
726+
cmake_policy(POP)
727+
return()
728+
endif()
729+
if(NOT _cmake_targets_defined STREQUAL "")
730+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
731+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
732+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
733+
endif()
734+
unset(_cmake_targets_defined)
735+
unset(_cmake_targets_not_defined)
736+
unset(_cmake_expected_targets)
737+
738+
739+
# Create imported target CURL::libcurl
740+
add_library(CURL::libcurl SHARED IMPORTED)
741+
742+
set_target_properties(CURL::libcurl PROPERTIES
743+
INTERFACE_INCLUDE_DIRECTORIES "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-src/include"
744+
INTERFACE_LINK_LIBRARIES "dl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
745+
)
746+
747+
# Import target "CURL::libcurl" for configuration "Release"
748+
set_property(TARGET CURL::libcurl APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
749+
set_target_properties(CURL::libcurl PROPERTIES
750+
IMPORTED_LOCATION_RELEASE "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-build/lib/libcurl.so"
751+
IMPORTED_SONAME_RELEASE "libcurl.so"
752+
)
753+
754+
# This file does not depend on other imported targets which have
755+
# been exported from the same project but in a separate export set.
756+
757+
# Commands beyond this point should not need to know the version.
758+
set(CMAKE_IMPORT_FILE_VERSION)
759+
cmake_policy(POP)
760+
# Generated by CMake
761+
762+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
763+
message(FATAL_ERROR "CMake >= 2.8.0 required")
764+
endif()
765+
if(CMAKE_VERSION VERSION_LESS "2.8.3")
766+
message(FATAL_ERROR "CMake >= 2.8.3 required")
767+
endif()
768+
cmake_policy(PUSH)
769+
cmake_policy(VERSION 2.8.3...3.23)
770+
#----------------------------------------------------------------
771+
# Generated CMake target import file.
772+
#----------------------------------------------------------------
773+
774+
# Commands may need to know the format version.
775+
set(CMAKE_IMPORT_FILE_VERSION 1)
776+
777+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
778+
set(_cmake_targets_defined "")
779+
set(_cmake_targets_not_defined "")
780+
set(_cmake_expected_targets "")
781+
foreach(_cmake_expected_target IN ITEMS CURL::libcurl)
782+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
783+
if(TARGET "${_cmake_expected_target}")
784+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
785+
else()
786+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
787+
endif()
788+
endforeach()
789+
unset(_cmake_expected_target)
790+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
791+
unset(_cmake_targets_defined)
792+
unset(_cmake_targets_not_defined)
793+
unset(_cmake_expected_targets)
794+
unset(CMAKE_IMPORT_FILE_VERSION)
795+
cmake_policy(POP)
796+
return()
797+
endif()
798+
if(NOT _cmake_targets_defined STREQUAL "")
799+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
800+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
801+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
802+
endif()
803+
unset(_cmake_targets_defined)
804+
unset(_cmake_targets_not_defined)
805+
unset(_cmake_expected_targets)
806+
807+
808+
# Create imported target CURL::libcurl
809+
add_library(CURL::libcurl SHARED IMPORTED)
810+
811+
set_target_properties(CURL::libcurl PROPERTIES
812+
INTERFACE_INCLUDE_DIRECTORIES "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-src/include"
813+
INTERFACE_LINK_LIBRARIES "dl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
814+
)
815+
816+
# Import target "CURL::libcurl" for configuration "Release"
817+
set_property(TARGET CURL::libcurl APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
818+
set_target_properties(CURL::libcurl PROPERTIES
819+
IMPORTED_LOCATION_RELEASE "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-build/lib/libcurl.so"
820+
IMPORTED_SONAME_RELEASE "libcurl.so"
821+
)
822+
823+
# This file does not depend on other imported targets which have
824+
# been exported from the same project but in a separate export set.
825+
826+
# Commands beyond this point should not need to know the version.
827+
set(CMAKE_IMPORT_FILE_VERSION)
828+
cmake_policy(POP)
829+
# Generated by CMake
830+
831+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
832+
message(FATAL_ERROR "CMake >= 2.8.0 required")
833+
endif()
834+
if(CMAKE_VERSION VERSION_LESS "2.8.3")
835+
message(FATAL_ERROR "CMake >= 2.8.3 required")
836+
endif()
837+
cmake_policy(PUSH)
838+
cmake_policy(VERSION 2.8.3...3.23)
839+
#----------------------------------------------------------------
840+
# Generated CMake target import file.
841+
#----------------------------------------------------------------
842+
843+
# Commands may need to know the format version.
844+
set(CMAKE_IMPORT_FILE_VERSION 1)
845+
846+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
847+
set(_cmake_targets_defined "")
848+
set(_cmake_targets_not_defined "")
849+
set(_cmake_expected_targets "")
850+
foreach(_cmake_expected_target IN ITEMS CURL::libcurl)
851+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
852+
if(TARGET "${_cmake_expected_target}")
853+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
854+
else()
855+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
856+
endif()
857+
endforeach()
858+
unset(_cmake_expected_target)
859+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
860+
unset(_cmake_targets_defined)
861+
unset(_cmake_targets_not_defined)
862+
unset(_cmake_expected_targets)
863+
unset(CMAKE_IMPORT_FILE_VERSION)
864+
cmake_policy(POP)
865+
return()
866+
endif()
867+
if(NOT _cmake_targets_defined STREQUAL "")
868+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
869+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
870+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
871+
endif()
872+
unset(_cmake_targets_defined)
873+
unset(_cmake_targets_not_defined)
874+
unset(_cmake_expected_targets)
875+
876+
877+
# Create imported target CURL::libcurl
878+
add_library(CURL::libcurl SHARED IMPORTED)
879+
880+
set_target_properties(CURL::libcurl PROPERTIES
881+
INTERFACE_INCLUDE_DIRECTORIES "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-src/include"
882+
INTERFACE_LINK_LIBRARIES "dl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
883+
)
884+
885+
# Import target "CURL::libcurl" for configuration "Release"
886+
set_property(TARGET CURL::libcurl APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
887+
set_target_properties(CURL::libcurl PROPERTIES
888+
IMPORTED_LOCATION_RELEASE "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-build/lib/libcurl.so"
889+
IMPORTED_SONAME_RELEASE "libcurl.so"
890+
)
891+
892+
# This file does not depend on other imported targets which have
893+
# been exported from the same project but in a separate export set.
894+
895+
# Commands beyond this point should not need to know the version.
896+
set(CMAKE_IMPORT_FILE_VERSION)
897+
cmake_policy(POP)
898+
# Generated by CMake
899+
900+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
901+
message(FATAL_ERROR "CMake >= 2.8.0 required")
902+
endif()
903+
if(CMAKE_VERSION VERSION_LESS "2.8.3")
904+
message(FATAL_ERROR "CMake >= 2.8.3 required")
905+
endif()
906+
cmake_policy(PUSH)
907+
cmake_policy(VERSION 2.8.3...3.23)
908+
#----------------------------------------------------------------
909+
# Generated CMake target import file.
910+
#----------------------------------------------------------------
911+
912+
# Commands may need to know the format version.
913+
set(CMAKE_IMPORT_FILE_VERSION 1)
914+
915+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
916+
set(_cmake_targets_defined "")
917+
set(_cmake_targets_not_defined "")
918+
set(_cmake_expected_targets "")
919+
foreach(_cmake_expected_target IN ITEMS CURL::libcurl)
920+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
921+
if(TARGET "${_cmake_expected_target}")
922+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
923+
else()
924+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
925+
endif()
926+
endforeach()
927+
unset(_cmake_expected_target)
928+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
929+
unset(_cmake_targets_defined)
930+
unset(_cmake_targets_not_defined)
931+
unset(_cmake_expected_targets)
932+
unset(CMAKE_IMPORT_FILE_VERSION)
933+
cmake_policy(POP)
934+
return()
935+
endif()
936+
if(NOT _cmake_targets_defined STREQUAL "")
937+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
938+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
939+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
940+
endif()
941+
unset(_cmake_targets_defined)
942+
unset(_cmake_targets_not_defined)
943+
unset(_cmake_expected_targets)
944+
945+
946+
# Create imported target CURL::libcurl
947+
add_library(CURL::libcurl SHARED IMPORTED)
948+
949+
set_target_properties(CURL::libcurl PROPERTIES
950+
INTERFACE_INCLUDE_DIRECTORIES "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-src/include"
951+
INTERFACE_LINK_LIBRARIES "dl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
952+
)
953+
954+
# Import target "CURL::libcurl" for configuration "Release"
955+
set_property(TARGET CURL::libcurl APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
956+
set_target_properties(CURL::libcurl PROPERTIES
957+
IMPORTED_LOCATION_RELEASE "/home/sam/Code/Distributed-Compute-Coin/dcc_client/out-linux/_deps/curl-build/lib/libcurl.so"
958+
IMPORTED_SONAME_RELEASE "libcurl.so"
959+
)
960+
961+
# This file does not depend on other imported targets which have
962+
# been exported from the same project but in a separate export set.
963+
964+
# Commands beyond this point should not need to know the version.
965+
set(CMAKE_IMPORT_FILE_VERSION)
966+
cmake_policy(POP)
967+
# Generated by CMake
968+
969+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
970+
message(FATAL_ERROR "CMake >= 2.8.0 required")
971+
endif()
972+
if(CMAKE_VERSION VERSION_LESS "2.8.3")
973+
message(FATAL_ERROR "CMake >= 2.8.3 required")
974+
endif()
975+
cmake_policy(PUSH)
976+
cmake_policy(VERSION 2.8.3...3.23)
977+
#----------------------------------------------------------------
978+
# Generated CMake target import file.
979+
#----------------------------------------------------------------
980+
981+
# Commands may need to know the format version.
982+
set(CMAKE_IMPORT_FILE_VERSION 1)
983+
984+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
985+
set(_cmake_targets_defined "")
986+
set(_cmake_targets_not_defined "")
987+
set(_cmake_expected_targets "")
988+
foreach(_cmake_expected_target IN ITEMS CURL::libcurl)
989+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
990+
if(TARGET "${_cmake_expected_target}")
991+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
992+
else()
993+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
994+
endif()
995+
endforeach()
996+
unset(_cmake_expected_target)
997+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
998+
unset(_cmake_targets_defined)
999+
unset(_cmake_targets_not_defined)
1000+
unset(_cmake_expected_targets)
1001+
unset(CMAKE_IMPORT_FILE_VERSION)
1002+
cmake_policy(POP)
1003+
return()
1004+
endif()
1005+
if(NOT _cmake_targets_defined STREQUAL "")
1006+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
1007+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
1008+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
1009+
endif()
1010+
unset(_cmake_targets_defined)
1011+
unset(_cmake_targets_not_defined)
1012+
unset(_cmake_expected_targets)
1013+
1014+
6701015
# Create imported target CURL::libcurl
6711016
add_library(CURL::libcurl SHARED IMPORTED)
6721017

Binary file not shown.
136 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)